dexed - FM Plugin Synth
Dexed is a multi platform, multi format plugin synth that is closely modeled on the Yamaha DX7. Dexed is also a midi cartridge librarian/manager for the DX7.
Dexed is free software and is licensed on the GPL v3.
- Multi platform (OS X, Windows or Linux) and multi format (VST, AU, LV2)
- The sound engine music-synthesizer-for-android is closely modeled on the original DX7 characteristics
- 144 DAW automatable DX7 parameters available from one single panel
- Fully supports DX7 input and output Sysex messages; including controller change. This means that you can use this with a native DX7/TX7 as a patch editor and sysex manager
- Each operator have a realtime VU meter to know which one is active
- Can load/save any DX7/TX7 sysex programs. It is also possible to save a single program into a different sysex file.
Credits & thanks
- DX Synth engine : Raph Levien and the msfa team
- Graphical design : AZur Studio
- LP Filter : Filatov Vadim (2DaT); taken from the excellent Obxd project
- PPPlay : Great OPL3 implementation, with documented code :D
- DX7 program compilation : Jean-Marc Desprez (author of SynprezFM)
- DX7 programs : Dave Benson, Frank Carvalho, Tim Conrardy, Jack Deckard, Chris Dodunski, Tim Garrett, Hitaye, Stephan Ibsen, Christian Jezreel, Narfman, Godric Wilkie
Any .syx file in the Cartridges directory will be available from the "CART" window. Find this directory by using the "CART" button and then the "SHOW DIR" button.
You can drag and drop any DX7 program from what is loaded in dexed and/or what you have loaded in the cartridge browser.
Double-clicking on a program will load the currently selected program in the plugin.
Use the context (right-click) menu to send the program/cartridge the DX7 or open your OS file browser from the directory context.
Hint: BlackWinny from kvraudio did a great DX7 compilation named Dexed_cart_1.0.zip. Simply unzip the content of this zipfile to your Cartridges directory.
Dexed can be configured to use some of the original math limitation of a DX synthesizer. This does not only apply to the DAC, it also involves the bit resolution of the sine waves and the way that the amplitude is applied to each operator. Since all of this is experimental, multiple engines will be available to be able to compare them easily.
Dexed comes with 3 engine types :
- Modern : this is the original 24-bit music-synthesizer-for-android implementation.
- Mark I : Based on the OPL Series but at a higher resolution (LUT are 10-bits). The target of this engine is to be closest to the real DX7.
- OPL Series : this is an experimental implementation of the reversed engineered OPL family chips. 8-bit. Keep in mind that the envelopes stills needs tuning.
- Does Dexed works on OS X 10.6 ?
No, Apple makes it difficult for us to release new software with this old OS version. You can use an older version of Dexed that supports this Mac OS version : dexed-0.9.0-osx.zip
- Does Dexed uses the same midi velocity range (0-100) as the original DX7 ?
No, the envelopes are based on the DX7II that are using the standard midi velocity range (0-127).
- Some notes seems stucked and/or generate sound indefinitly, is this a bug ?
The envelopes on the orignal DX7 can be programmed to played indefinitly. If you want to avoid any stuck notes, but sure to set L4 = 0 and R4 = 99.
- How can I find help/contact the author ?
If you have a generic question, you can use the kvraudio dedicated thread for dexed. If you have found a bug, use the github page to open a new issue. I'm asb2m10 on kvraudio.
- Programmer/dsp enthusiast: I was expecting floating based 0.0->1.0 DSP stuff but when I read dexed code, the only thing I see are bit shifts and adds. What is going on ?
msfa / Dexed is an integer based synth engine, it uses the Q** format.
Using as a DX7 editor
You can use this plugin to edit your real DX7 patchs. Since midi sysex send/receive are quirky for the majority of VST hosts, any sysex messages (editor messages) must be send or received with the external dexed midi interface. This is configurable in the "PARM" panel. By setting a DX7 in / DX7 out midi interface, dexed will listen to specific program/cartridge changes from your DX7 and send controller/program/cartridge you edit.
- Before you use this interface, your DX7 must be configured to send or receive sysex messages. Do this by hitting [FUNCTION] and  button
- Check the midi channel. By reading some of DX7 literature, most DX7 are supposed to support only 1 channel. Unless you are running a cluster of DX7, you should keep this to 1.
- Press  again and you should see: "SYS INFO AVAIL" or "SYS INFO UNAVAIL". Keep it to "SYS INFO AVAIL" to be able to receive sysex messages. This step is not required on a TX7.
- You need to remove MEMORY PROTECT on the internal or cartridge memory to be able to receive a dexed 32 voice bulk dump. This is done by using the [MEMORY PROTECT] button and then by pushing [NO].
To send to your DX7
- If the midi out port is configured, any parameter change will be sent to your DX7.
- You can send any program/cartridge in the "CART" window by using the context (right-click) menu.
To receive from your DX7
- The midi in port must be configured.
- Receive a program by using [MEMORY SELECT] then the program you want to transmit ( to ).
- Receive a cartridge by pressing [FUNCTION] then 3 times on  you should see " MIDI TRANSMIT ? ". If you hit yes, dexed should receive the complete cartridge.
- If you play on your DX7 keyboard, the |DX7 In| light should be flashing. Use this to test the midi in communication.
- If the data sent is corrupted (wrong checksum, DX7 crash), it might be the midi interface implementation. Default Windows USB midi driver are known to send corrupt sysex data. If it is the case, use a third party device (like the midiman uno) that have his own USB driver.
- If you are unable to open the interface (error message after the using the [PARM] dialog), it might be because the midi driver doesn't support multiple clients (common on Windows). Be sure that there are no other applications that are using the same midi interface.