Glass FM

IMPORTANT : Before updating, make sure to backup your preset files (they will appear as “preset0.txt” up to “preset16.txt” (that can vary if you didn’t fill all preset) in the patch folder). You can then copy them back to the new, updated patch folder and you’ll get to keep your presets. 


Here’s my take on FM synthesis, made for the Organelle using Pure Data Vanilla.

It’s a 1, 2, 3 or 4 operators synth, with 12 voices of polyphony. 

In 1 operator mode, the synth is simply a sine wave synth. 

It has 4 parameter pages and you switch pages using the AUX button. Each page has a different LED color.


Page 1 (red LED) : Oscillator

Here you can adjust operators 2, 3 and 4 ratio (the modulators), and the index. Operator 1 is the carrier oscillator and has no parameter.

Important: When an operator’s ratio value is 0, it will shut itself and subsequent operators down. So if you want a 1 operator synth (sine wave only), set operator 2’s ratio to 0, so that op 2, 3 and 4 are off. If you want a 2 operator synth, set operator 3’s ratio to 0 so that operators 3 and 4 are off. etc. 

That way, you have control over the complexity of the waveform. More operators mean more complex, and with a high index you’ll be able to get pretty noisy if you want to (particularly with low ratios).

Knob 1 : Op 2 Ratio (from 0 to 100)

Knob 2: Op 3 Ratio (from 0 to 100)

Knob 3 : Op 4 Ratio (from 0 to 100)

Knob 4 : Index (from 0 to 100)


Page 2 (yellow LED) : LFO (triangle wave LFO)

Knob 1 : LFO Rate (from 1 to 30 Hz) Controls the speed of the LFO

Knob 2: LFO Delay (from 0 to 5000 ms) The time it takes for the LFO to fade in when a note is pressed

Knob 3 : LFO->Pitch (from 0 to 100) How much influence the LFO will have on pitch

Knob 4 : LFO->Index (from 0 to 100) How much influence the LFO will have on index


Page 3 (green LED) : Amp Envelope

Knob 1 : Attack (from 1 to 3000 ms) Duration of the attack stage of the envelope

Knob 2: Decay (from 1 to 3000 ms) Duration of the decay stage of the envelope

Knob 3 : Sustain (from 0 to 100) Level of the sustain stage of the envelope

Knob 4 : Release (from 1 to 12000 ms) Duration of the release stage of the envelope (when a note key is released)


Page 4 (light blue LED) : Global

Knob 1 : Transpose (from -2 to 2 octaves) 

Knob 2: Portamento (from 0 to 1000 ms) Duration of the portamento (pitch slide from the last note played to the new note)

Knob 3 : Sub Mix (crossfade between the FM oscillator and the triangle sub oscillator)

Knob 4 : Volume (from 0 to 100) This is the patch volume. If the sound is crackling in a bad way, you may want to bring that parameter down a bit.


Page 5 (Dark blue LED) : Save a preset sound

Knob 1 : Slot (select slot destination to save to) (from 0 to 15 ) 

To save into the selected slot, hold down the Aux button for about 1 second, until the LED flashes to confirm.

A quick press of the Aux button will get you to the next page and will not save.


Page 6 (Pink LED) : Load a preset sound

Knob 1 : Slot (select preset slot to load from) (from 0 to 15 ) 

To load the selected preset, hold down the Aux button for about 1 second, until the LED flashes to confirm.

A quick press of the Aux button will get you back to the first page (oscillator) and will not load.


Please, let me know if you encounter a bug!

UPDATE 0.91 : Adjusted the smoothing of some parameters and added a sub oscillator, accessible via the knob 3 on page 4

UPDATE 0.92 : I added preset capability. You can now save and recall up to 16 presets sounds in this patch. See page 5 and page 6 above for details.

UPDATE 0.94: Polyphony would not be 12 voices when played from an external keyboard. Fixed. 

611 PM
  • Platform:
  • Category: Synthesizer
  • Revision: 0.94
  • License: GNUGPLv3
  • Views: 5,934
  • Modified: 4 years ago
Chat about this patch on Discord! Download (2006)
Appreciate 21
One comments on “Glass FM
  • ëlectrafa on said:

    Nice patch! But it doesn’t work on Organelle M without renaming files in it :
    4op_fm_osc.pd to 4op_FM_osc.pd
    LFO_tri.pd to lfo_tri.pd
    VCA.pd to vca.pd

  • Leave a Reply