Disharmony Audio Patch
(now 20% cooler!)
Release Date Oct 13, 2011
Disharmony Audio Patch (in short, "Disharmony") is a replacement for the default audio system (will be referred to "Harmony" in the following) of RPG Maker 2000 and 2003. It is designed to be as compatible as possible, while fixing the worst flaws of Harmony and introducing new features.
- Full DirectSound playback of music (except MIDI) and sound effects. Due to that, all file formats for which a DirectShow filter is installed are supported. By default this includes MP3 and WMA.
- Playback of tracker files using a modified version of libmodplug. It supports the same tracker formats as libmodplug: MOD, S3M, XM, IT, 669, AMF, AMS, DBM, DMF, DSM, FAR, MDL, MED, MTM, OKT, PTM, STM, ULT, UMX, MT2, PSM, and Zip, Rar, and GZip packed variants of these. (Tracker playback requires libdiscord.dll to work)
- Reading access to special looping information in MIDI, MP3, WMA and OGG tags. This information can be written to MIDI and MP3 files using the included tool Loop Editor.
- Using effects like Chorus, Echo, etc. when playing non-MIDI music. Disharmony takes advantage of Cherry's work on Finder to read game Switches and Variables with which you can control those effects.
- Theoretical playback of an infinite number of sound effects simultaneously.
- Disharmony stops all currently playing sounds with a given file name if you play the same again at volume 0.
- "Played BGM Once" fork condition is supported for all audio formats.
- Midis are played back and a very similar way the original harmony.dll did it. That is, the beginning of songs are cut off if they are silent, and the controller 111 is supported as a loop starting point indicator. Furthermore, a few bugs with the original harmony.dll are fixed, most notably the one that made all MIDIs sound strange if a previously played MIDI made changes to some controllers.
- "MIDI Play Pos" will return the music playback position in MIDI ticks (for MIDI files), milliseconds (wave files) or the current row number (tracker files). "Current row number" means the row position in the current pattern plus the total numbers of rows in all preceding patterns.
- No link files have to be created like in Ineluki's patch. They are still supported, though.
- Full support for Ineluki's keypatch.
- No additional DLL required if you aren't using Ineluki's keypatch.
- Full compatibility to original harmony.dll (hopefully, that is): Volume (logarithmic volume control), Speed, Panpot and Fade-In / Fade-Out (also logarithmic) are all supported.
- Can save the pressed state of keyboard keys to game variables.
Disharmony is available in three different formats; download either:
- Automated installer (recommended)
- ZIP archive
- 7-Zip archive
Disharmony comes with several tools that enable special functionality. Please refer to the help file for more information.
Disharmony has been designed with greatest compatibility in mind. It behaves exactly like Harmony for normal usage, and just provides additional functionality. It is compatible with Ineluki's MP3 / key patch, but of course that is only needed if you require the additional "features" (I call them "bugs" or "insanity") of those patches. Disharmony has a built-in keyboard functionality that is much better than Ineluki's, so why would you use the keypatch with its annoying splash screen?
The automated installer handles installation perfectly well. If you don't want to install anything, you can download the zip file. It includes the help file (Disharmony.chm), which also explains manual installation.
Terms and Conditions
See the copying.txt in the installation directory / the zip file for restriction on copying / usage. In short, it is free to use as long as you provide two small text files along with your project. It would be nice if you mentioned my name in your games' credits, but this is not required. Only the textfiles are.
These people directly wrote software for Disharmony:
- Mason Wheeler (modified libmodplug library, Delphi libmodplug headers and help with port to new Delphi version)
- Cherry (reading / changing RPG Maker variables, determining a project's real executable and its version)
- Bananen-Joe (patching RPG Maker 2003 executables to use Disharmony)
I took advantage of the free software from the following people:
- Colin Wilson (most of the MIDI part)
- Carlos Barbadosa and Pavel Bibergal (most of the DirectShow part)
- Project JEDI (extra controls in the tools)
- Jurgen Faul (reading / writing Audio file tags)
- Daniel Wischnewski (tool translations framework)
The translation team:
- EN.I (Spanish translation)
- king kadelfek (French translation)
Bug reporters and testers:
- Mason Wheeler