FM Synth with a twist
Posted: Fri Nov 01, 2019 9:15 pm
In my never-ending quest for an FM synth that's actually easy and pleasant to use, I got inspired by Yamaha's very first FM instrument, the GS1 (actually Yamaha first introduced FM in one of their Electone home organs). This beautiful instrument was housed in a furniture-quality wood cabinet that looked like 1/3 of a baby grand piano, complete with three foot pedals.
It's sound engine was eight-operator FM, but in a single fixed algorithm of four Modulator/Carrier pairs, like DX7's algo 5, but with an additional M/C pair. To quote Howard Massey in his 'Complete DX7', "...algorithms 5 and 6, with three modulator-carrier systems, seems to provide the most scope for creating rich sounds, and it's not surprising that they are the most popular algorithms amongst the ROM presets", and the GS1 had an additional pair of these.
So without the overwhelming array of algorithms (or, in the case of several FM plugins, an inscrutable box-of-knobs mod matrix), I figured this FM structure would very be interesting to build an synth around. The GS1 was a presets-only synth, and I could find almost no info on-line about the particulars of the programming computer that was used to create it's presets. I don't know if it had all the params of what was eventually put into the DX7, or was more complex (or simpler). I did find mention that the envelopes had many edit-points, rather than DX7's modified ADSR type, so the programmer's params may have been even more complex than DX7. But to keep this clean and simple, I included only basic FM operator functions and the controls provided on the GS1's panel - Vibrato, Tremolo, 4-way Detune and 3-band EQ. GS1 also had an 'Ensemble' effect, but given that so little details are available on what it actually was (probably some sort of bucket-brigade thing), and the plethora of very good 'ensemble-like' effects available (including Martin's recent efforts), I opted to leave it out.
I did the GUI up in a style meant to suggest an electronics schematic drawn on aged, yellowed paper, so I call it SkematicGS, with operators arranged they way they were always shown on Yamaha's FM synths.
One interesting aspect of the GS1's FM architecture that wasn't practical on the DX7 because of it's multiple algorithms, was cross-modulator feedback, where in each M/C pair, the modulators could self-feedback and/or feedback to the opposite modulator - this goes quite a ways toward compensating for the lack of stacked modulators, and indeed makes possible the DX7's algos 3, 28 and 29; with ops leftover, which may or may not make positive contributions to the sound depending on the patch. Algo 3 (two 3-op stacks) is an interesting case, because in the DX7, feedback was only available to the top modulator in the second stack; with the GS1, all four modulators could have feedback at once!
Since the GS1 had no wheels, I've pressed MIDI wheels into service to replicate the GS1's foot pedals. The left pedal activated vibrato, so I've made it triggered by raising the mod wheel above it's bottom position. The center pedal activated tremolo, so I've made it triggered by raising the pitch wheel above center. The right pedal activated the Sustain function, which imitated a piano's note decay with it's damper pedal down (all EG Release times set to appropriate settings); I've made this triggered by moving the pitch wheel down from center. Any of these can alternately be triggered by MIDI footswitch, if desired.
Twenty-some presets provided; they mostly demonstrate some of the range of timbres that can be made with 2-op FM, rather than being ready-to-play-music-with sounds.
The GS1 had both velocity and aftertouch; velo was on all the time, with sensitivity for each operator determined in the presets. Same with aftertouch, but AT had a panel button to toggle it OnOff.
The GS1's presets were contained on two mag-strip cards, each of which contained two M/C pairs connected together (the GS1's cheaper, simpler little brother, the GS2 had just one of these). So I've set this up as two M/C pairs, each connected through a panpot.
To see what Yamaha thought were the most useful operator ratios, the list from the DX100 can be displayed by pressing a button.
It's sound engine was eight-operator FM, but in a single fixed algorithm of four Modulator/Carrier pairs, like DX7's algo 5, but with an additional M/C pair. To quote Howard Massey in his 'Complete DX7', "...algorithms 5 and 6, with three modulator-carrier systems, seems to provide the most scope for creating rich sounds, and it's not surprising that they are the most popular algorithms amongst the ROM presets", and the GS1 had an additional pair of these.
So without the overwhelming array of algorithms (or, in the case of several FM plugins, an inscrutable box-of-knobs mod matrix), I figured this FM structure would very be interesting to build an synth around. The GS1 was a presets-only synth, and I could find almost no info on-line about the particulars of the programming computer that was used to create it's presets. I don't know if it had all the params of what was eventually put into the DX7, or was more complex (or simpler). I did find mention that the envelopes had many edit-points, rather than DX7's modified ADSR type, so the programmer's params may have been even more complex than DX7. But to keep this clean and simple, I included only basic FM operator functions and the controls provided on the GS1's panel - Vibrato, Tremolo, 4-way Detune and 3-band EQ. GS1 also had an 'Ensemble' effect, but given that so little details are available on what it actually was (probably some sort of bucket-brigade thing), and the plethora of very good 'ensemble-like' effects available (including Martin's recent efforts), I opted to leave it out.
I did the GUI up in a style meant to suggest an electronics schematic drawn on aged, yellowed paper, so I call it SkematicGS, with operators arranged they way they were always shown on Yamaha's FM synths.
One interesting aspect of the GS1's FM architecture that wasn't practical on the DX7 because of it's multiple algorithms, was cross-modulator feedback, where in each M/C pair, the modulators could self-feedback and/or feedback to the opposite modulator - this goes quite a ways toward compensating for the lack of stacked modulators, and indeed makes possible the DX7's algos 3, 28 and 29; with ops leftover, which may or may not make positive contributions to the sound depending on the patch. Algo 3 (two 3-op stacks) is an interesting case, because in the DX7, feedback was only available to the top modulator in the second stack; with the GS1, all four modulators could have feedback at once!
Since the GS1 had no wheels, I've pressed MIDI wheels into service to replicate the GS1's foot pedals. The left pedal activated vibrato, so I've made it triggered by raising the mod wheel above it's bottom position. The center pedal activated tremolo, so I've made it triggered by raising the pitch wheel above center. The right pedal activated the Sustain function, which imitated a piano's note decay with it's damper pedal down (all EG Release times set to appropriate settings); I've made this triggered by moving the pitch wheel down from center. Any of these can alternately be triggered by MIDI footswitch, if desired.
Twenty-some presets provided; they mostly demonstrate some of the range of timbres that can be made with 2-op FM, rather than being ready-to-play-music-with sounds.
The GS1 had both velocity and aftertouch; velo was on all the time, with sensitivity for each operator determined in the presets. Same with aftertouch, but AT had a panel button to toggle it OnOff.
The GS1's presets were contained on two mag-strip cards, each of which contained two M/C pairs connected together (the GS1's cheaper, simpler little brother, the GS2 had just one of these). So I've set this up as two M/C pairs, each connected through a panpot.
To see what Yamaha thought were the most useful operator ratios, the list from the DX100 can be displayed by pressing a button.