If you are going down the built in envelope route maybe worth a peek at six sines, an clap/au/vst instrument I released recently which is a 6 op audio rate modulation synth with loads of modulation options. It’s also all open source
I just released 1.1 this morning actually after integrating the feedback from a one synth challenge group
May give you some ideas about what to do or what not to do
I’ve thought often about just lifting Dexed core into rack but keep coming back to the problem that it has hundreds of params so I don’t know what that voice module would even look like to be usable (Other than using dynamic params like host does)
It’s the same problem I faced when thinking if six sines could be a rack module. It’s an instrument not a module.
So, 2 different techniques with 2 different behaviours.
The Yamaha implementations of ‘FM’ are actually PM. So, just from that perspective any DX7 patch/sysex compatibility/interchange is highly unlikely.
But Spider’s implementation offers its own unique feature combination. With room for improvement, as with many things.
Also, the DX7 is a full featured (pre-wired/pre-routed) synthesizer. With modulation sources like envelopes, lfo, keyboard scaling and such integrated and pre-routed. It’s not just operators and a modulation matrix (algorithms).
Also, a full synth module somewhat conflicts with the whole modular concept of VCV Rack. Although there are examples of full featured synths in VCV Rack.
Smart routing modules do really adds something. Not just reducing complexity (modules/cables), but also because in VCV Rack each extra cable in the signal path adds 1 sample delay (thus potentially unwanted phase differences and, in feedback lines, potential tuning issues).
Just from an operator/algorithm persective the DX7 ‘FM’ programming relies heavily on relative operator frequency ratios (either integer/fractional multiples or fixed frequency). Including ratios greater then 2 (where Spider offers +/- 1 octave per operator/oscillator).
VCV Rack offers multiple FM/PM modules/options. Many are actually PM implementions. But some are explicitly true FM, like some of the Instruo oscillators.
For those who want to find out about the (inner) workings of the DX7: The Dexed project is a pretty accurate, sysex and patch compatible, free and open source Yamaha DX7 emulation (intended as a DAW plugin).
Yes, Spider’s operator intermodulation is indeed Through-Zero (linear) FM, and self-modulation phase-modulation (self-modulation with Linear FM, even thru-zero, detunes the output. I tried it.)
If all of Spider’s operators were set to pure sine waves (Spider uses a sine lookup table internally like early Digital FM synthesisers, but I digress), through-zero linear FM and Yamaha-style phase modulation are equivalent. It would be a relatively straight-forward translation. It would sound slightly different due to reasons Squinky outlined here (see the other reply to this thread)
For anybody unfamiliar, PM (linear through-zero phase modulation) is computationally cheaper than FM, because it uses addition rather than multiplication. That’s one of the main reasons earlier FM synths (and even a lot of modern-ish FM synths, I’m pretty sure FM8 uses PM?) use PM instead.
Ratios greater than 2 are indeed where things would become more complicated. I would have to modify the behaviour of the pitch input, which—to be fair—I am not fully opposed to.
Also, a full synth module somewhat conflicts with the whole modular concept of VCV Rack. Although there are examples of full featured synths in VCV Rack.
Exactly. This is actually almost word-for-word the justification in my dissertation for opting not to include envelope generators on the module itself, among other things. Expander modules seem like a clean solution to this, and I’d certainly be interested in experimenting with that.
Smart routing modules do really adds something. Not just reducing complexity (modules/cables), but also because in VCV Rack each extra cable in the signal path adds 1 sample delay (thus potentially unwanted phase differences and, in feedback lines, potential tuning issues).
I actually didn’t consider the sample delay. Interesting. Please consider putting this feedback (you could just copy and paste, tbh) in my survey if you have not already. It’s extremely valuable and could make for some really thorough evaluation.
PM might be computationally cheaper then FM. And this was surely an issue around 1980 (when FM/PM went mainstream). But in a realtime environments like VCV Rack it still is.
As seen in @Squinky 's article on FM vs PM, PM has some key advantages in implementation (code) and application (the actual generation of static and/or dynamic spectra, mostly in a musical context).
These advantages can reduce complexity and can add to both stability and flexibility. E.g. no DC offset/detuning issues, and the carrier frequency can go all the way down to 0 Hz. Also, you can easier/better control overall phase offset between operators (either static/initial or dynamic/modulated), which adds an extra dimension of spectral control.
To mention a common drawback of FM/PM. At higher frequencies/ratios/modulation levels, and way sooner if you start off with richer (non-single-sine) spectra (e.g. saw/square), you will run into aliasing territory. That’s @Squinky 's domain of expertise.
Sorry, but I couldn’zt reproduce it yet,
it was happening when I tried to change the V/oct input cable from one sequencer to another,
I can send yu the patch if you want.
That’s a great layout for an FM module. I’ve got a handful of Yamaha YM2203 chips that (someday) I’d like to design a board around and get a frontend in VCV Rack, similar to other Zoxnoxious modules I’ve done. The FM stuff is so different for interface versus subtractive synth interface. I think you’ve got a great idea here on how to tame it as a module.