Envelope Timing display
My goal in building this editor was to make it easier to program and understand the Volca. That's why I wanted to lay out the operators and their envelopes to reflect the algorithm. The envelopes in particular area really important in FM as they indicate how an operator will impact the sound over time.
The envelopes on the DX7 / Volca FM are particularly interesting.
First of all they have 5 phases, not the regular 4 of ADSR. The extra phase is right before sustain, meaning you can have a particularly interesting attack phase.
Secondly, the start and end value of the envelope can be non-zero. This means an oscillator can continue forever after the sustain phase, which is particularly useful for ensuring modulators continue modulating during release.
Finally, there is the length of the phases. These envelopes have ludicrous ranges of up to 300s per phase! In fact they have a length of up to 317s when they are acting as a declining rate and 38s when acting as an increasing rate. Add to this that the timing of an envelope phase is dependent upon the levels that it is going between and you have very flexible, but incredibly complicated.
I tried several visualisations but never really got to something that did the range of milliseconds to 300s justice! So I stuck with my somewhat linear display, but now calculate the length of each phase and display it. At least that way you will have an idea of the time period over which an oscillator has an impact. I know I have found this useful!
Fixed frequency display
When you have an oscillator in fixed frequency mode, the coarse and fine frequency controls affect frequency according to the formula 10^(Coarse + Fine / 100). Not sure about you but I find decimal exponents a little hard to work out in my head, so now, when you are in Fixed mode, thew Oscillator Editor will show you the exact frequency the oscillator is tuned too.
DX7 Cart support!
This is the biggie. Before you could only load an individual patch SysEx file into the editor. And you could only choose presets from the Original DX7 Rom (in fact only the first half of it!) Now you can load any DX7 Cartridge SysEx. Each of these car ts contains 32 sounds and there are hundreds of them on the internet. You can even find a cart of patches that are alleged to have been programmed by Richard D James.
If that's not enough for you, the lovely people over at https://www.thisdx7cartdoesnotexist.com were kind enough to let me hit up their endpoint so you can get a unique computer-generated cart at the touch of a button.
Now that you can load new carts, you can obviously send them to your synth as well as edit the individual patches within a cart and then save a new version. So now you can really explore the world of FM sound design, see others work and share your own! [Coming soon, export the cart from your synth back to the computer. Should have it done in about a week or so]
I think in a week or so I might post about my experiences programming with Max. It's certainly very different trying to build a tool like this in an entirely graphical programming language and I feel like I had to bend it well beyond its intended purpose to get this to work, but programming is always fun.