SynthMaker Manual Open SynthMaker (opens in a new tab)
Code

Your sound as code

Every sound can be read as text, one module per line and one line per wire. Change the text and the sound changes with it; change a knob and the text follows.

New words

SMPL, SynthMaker Patch Language, is a sound as text: one module per line, one line per wire. The Code view shows it beside the Patch.

1Patch, Both or Code

Above the Patch, choose Both to see the code beside it, or Code for the code alone. On a phone, the Patch's Code button opens it.

In SynthMaker, choose a module in the Patch and its line lights; put the cursor on a line and its module is chosen.

Both: the Patch of Smooth Pluck on the left, and its code on the right: voice = Voice(), osc1 = Oscillator(fine: -6 ct), filter1 = Filter(cutoff: 300 Hz…), smooth = Smooth(cutoff: 1.2 kHz), then the wires voice -> osc1 -> filter1 -> smooth -> vca1.
Both: the Patch and its code.

2Reading it

  • A module: name = Module(setting: value). Settings left out are at their defaults.
  • A wire: a -> b, in chains (voice -> osc1 -> filter1), and with commas for several (a -> b, c). A port is named after a dot: voice.gate -> env1.
  • Values as the knobs show them: 300 Hz, 180 ms, -6 ct, Saw.
  • Sections: notes and effects say where the note modules and the effects begin.
  • The first comment, # SynthMaker · Smooth Pluck, is the sound's name.
Smooth Pluck · SMPL
# SynthMaker · Smooth Pluckvoice   = Voice()osc1    = Oscillator(fine: -6 ct)osc2    = Oscillator(fine: +6 ct)filter1 = Filter(cutoff: 300 Hz, resonance: 0.3, envAmount: +5 oct)env1    = Envelope(attack: 1 ms, decay: 180 ms, sustain: 0, release: 180 ms)env2    = Envelope(attack: 1 ms, decay: 500 ms, sustain: 0, release: 500 ms)vca1    = VCA(level: 0.223)smooth  = Smooth(cutoff: 1.2 kHz)  …voice -> osc1 -> filter1 -> smooth -> vca1 -> outvoice -> osc2 -> filter1voice.gate -> env1 -> filter1.envvoice.gate -> env2 -> vca1.gainvoice.velocity -> vca1.gain2  …effectsdelay1  = Delay(mix: 0.22)reverb1 = Reverb(decay: 2.4 s, mix: 0.24)master  = Master(volume: 1)  …voices -> delay1 -> reverb1 -> master
The Patch of the same sound: the Filter into Smooth into the VCA.
The line voice -> osc1 -> filter1 -> smooth -> vca1 -> out is this chain of wires.

3Type to change the sound

The sound changes as soon as the text reads. A line with a mistake turns red, with what's wrong (cutoff goes from 20 Hz to 20 kHz), and the sound keeps its last good version. Each pause in typing is one undo step.

The code with the line filter1 = Filter(cutoff: 90000 Hz, …) in red, and under it: Line 5: cutoff goes from 20 Hz to 20 kHz.
A value out of range: its line turns red, and the sound stays as it was.

Try it

  1. Open Smooth Pluck and choose Both.
  2. Change Filter(cutoff: 300 Hz to 900 Hz and play: brighter.
  3. Type 90000 Hz: the line turns red and the sound stays as it was.
Open the example sound: Smooth Pluck ↗ (opens in a new tab)

On the Mac, the Code view sits beside the Patch the same way, with the same text.

Remember