At SoundEngine, Iโve dedicated hundreds of hours to Dexed via the โSoundEngine Dexed Ownerโs Manualโ – I think Dexed is great. Itโs free, it sounds just like a DX7, and it provides a great platform for learning FM synthesis. That said, Dexed isnโt perfect. There are a few areas for improvement, and this is a brief summary of what comes to mind. They key areas where Dexed can be improved are Poramento, the Filter, a โUnisonโ mode, and breaking free of the original DX7 โCARTโ format. Letโs get under the hood and have a look.
The Lack of Portamento

Note: In version 1.1 of Dexed, a portamento parameter has been added under the PARM button. Both portament Rate and Glassando are present. I haven’t had a chance to work with this new parameter fully yet, but in any case, this is good news!
The original DX7 had a Function Mode that provided access to various parameters, such as Master Tuning, the Pitch Bend Range, and the Poly / Mono switch.ย Other parameters, such as a memory cartridge selection switch and Battery Check, which are irrelevant to the Dexed software VST implementation. This improvement to Dexed will ensure more compatibility with the DX7.
The one parameter missing from the original DX7 and not in Dexed is the three Portamento parameters. These parameters included a MODE, GLISSANDO ON/OFF, and time. Since the DX7 was mono-timbral, these Function parameters are essentially Global parameters – not stored on a per-voice basis, but since they had direct front-panel access, they are used in performance and quickly accessed when needed.
The sound of Portamento is why synthesizers sound like synthesizers, especially on soaring leads and monophonic basses. It’s possible that the designers overlooked this parameter. Thereโs a TON of stuff going on in Dexed, from the implementation of FM oscillators to Envelopes to LFOs.ย
Implementing Portamento can be difficult
A more likely possibility is that, based on my own experiences, that Portamento and Glissando proved difficult to implement.ย My first synthesizer firmware design, the Peavey DPM3, didnโt have portamento. In juggling multiple priorities and short timelines, I didnโt have time to sit down and figure out how to do it. In addition, Iโll be candid and state that I didnโt know how to do it, either. At Ensoniq, for the MR-series, the team figured it out and implemented it.ย
All that said, I know the Dexed team is working on it. Dexed is an open source project, so observers can go online and see the bug logs, and the implementation discussions, There is an ongoing discussion and an attempt has been made to use the MIDI Standard Controller message to enable and program Portamento. I haven’t made it work yet (this very likely is that Iโm using the MIDI Control value incorrectly).
Adding Portamento and Glissando would be fantastic when the developers get to it. It will essentially complete the emulation of the DX7 and enable the creation of more accurate bass and lead sounds.
The Filter: NOT Time Variant

One of the cooler innovations that Digital Suburban has added to the emulation of the DX7 in Dexed is the addition of a low-pass Filter, with resonance. This filter is a Global filter, located in the settings in the lower left corner of the UI. While this is a great addition, itโs not very useful in its current implementation.
The Filter values are currently in the Global section – they are not per Voice. In fact, the Filter and Resonance values maintain their set values even as you switch patches.
The Filter values are not modulatable. Itโs possible that within a DAW, you can assign a MIDI controller to vary the Cutoff and Resonance, but essentially, this is a non-Time Variant filter, which isnโt very interesting. Yes, you can modify the tone of Dexed – โmuffle it upโ and add a little resonance at a global level, but thatโs it.
The Filter via selectable EG, LFO, and Breakpoint parameters, and storing those parameters within a patch. Reviewing the โdata structureโ of a DX7 patch, which Dexed uses as its patch format, I can see why this implementation hasnโt been done. There are no spare bytes of memory within the data to allow the storage of these programs, and really, there are only a few spare bits. Yamaha was very efficient in defining a DX7 patch. Decisions made at Yamaha in the early 1980s still affect Dexed development today.
I have a recommendation around these limitations – at least those related to the patch format of the DX7, because Iโm generally not a person who complains without offering some solution – more on this later.
No Unison OR Unison Detune Mode

Wouldnโt it be great to thicken up and fatten Dexed sounds with a Unison/Detune mode? Yes, it would. Again, this feature would have an impact on the data structures of a Dexed patch, but it would take Dexed to the next level and place it in a position of creating new tones, based on the DX7 engine.
What do I mean by unison/detune? Itโs the idea from Logic Sampler, Kontakt, and even DAW synthesizers – like those in Bitwig – that you can trigger multiple oscillators/ instances of a patch with a single MIDI note, and thicken up the sound via slight detuning between those instances. So, Unison values of โ2โ would trigger two FM Engine notes, with programmable detuning. Some implementations of this Unison go too far – too many voices – but an option of 2-4 simultaneous notes that are detuned up to 20 cents is a highly, highly useful feature – and fun.
Voice data chained to the old DX7 data format

Dexed is limited by its use of 100% compatible Yamaha DX7 System Exclusive (SysEx) as its file format. You can find the format of the DX7 SysEx messages in the TX7 Service Manual; unfortunately, itโs not in the DX7 User Manual. Itโs a mere 128 bytes in length – highly efficient and well designed, albeit with no room for spares or future feature additions.
In my second role in Audio, I realized that having spare bytes would come in handy. Specifically, the Peavey DPM3, which underwent several specification changes over its lifetime, included a few spare bytes in each patch data structure for future feature additions. This allowed us to use the same data formats throughout the product lifecycle and add features. This is how we added โlooping envelopesโ to the synthesizer engine in a firmware update.
There are a few spare โbitsโ in each voice memory block, which could be put to use, but this is, based on experience, a rather painful way to implement new features – unless there is just no other way. What ends up happening is that a program like Dexed, using those spare bits, corrupts a voice for use in a DX7, which would then be imported into another FM VST, such as DX7 V or FM8 – because no other program knows how to use those bits.
There is a possible solution, however. Read on.
get it in the repair shop
I try not to be the person who points out problems, then offers no solution. This behavior doesnโt feel productive to me. So, I have a proposal that could overcome the limitations of the old DX7 SysEx as a file format – interpreters on file input and output into Dexed. I had a colleague at Ensoniq who implemented this in PARIS, the digital audio workstation. His attitude was โit doesnโt matter if the file format changes, Iโll just interpret it on the way into memory.โ
The idea here is that there are file โreadโ operations that process the data before it goes into Dexedโs operational memory inside the VST. The same applies to file output. A programming routine could open a DX7 SysEx file and read the data into a larger data structure with more memory bytes; those bytes could then be used to enhance the Dexed engine with Time-Variant filter settings, per-voice Portamento, and Unison. Even looping envelopes and more!
Yes, this would break Dexedโs compatibility with the DX7, however, that compatibility could be maintained with an โExportโ function that parses out the spare, incompatible bits and saves a DX7 SysEx file in CART format. The new file format, with enhanced features could be a โ.dexedโ file, so that looking at it in the file browser, you would know what it was for.
Now, my intent is not to trivialize the amount of work that would be required to implement this – it would be sizeable. In my opinion, though, it would be well worth the effort to take the Dexed voice engine to its next logical plateau.
Wrap-up
Admittedly, that was a long, prepared rant. I highlighted several potential Dexed improvements. One is a feature in the DX7 that is not in Dexed, and the other two are โwish listโ items. I would be completely thrilled if the development team considered these solutions, but I know that they are certainly busy, and this may never happen – from what I can tell, most have โday jobsโ and work on Dexed as a passion.ย
In any case, to sum up, there really arenโt that many shortcomings in Dexed. Itโs a faithful representation of the DX7, and as Iโve said many times before, it sounds great. Kudos to the team for everything they have implemented so far – itโs brilliant.
If you are joining us for the first time, donโt forget to check out our step-by-step, hands-on โOwnerโs Manualโ tutorials. They are a great place to get started with Dexed, the free DX7 VST plug-in. Next time, we will start to look at the actual use of Dexed within a DAW – how to maximize the sound sculpting capabilities and add vintage FM to your tunes. Thanks for reading!
Resources:
- Theย Dexedย plug-in:
- Our custom programmed Flywheel: Dexed bank:
- Our custom programmed Crankshaft: Dexed bank:
- SoundEngine’s Complete Dexed Owner’s Manual Series:
- FM Synthesis:


Leave a Reply
You must be logged in to post a comment.