- Audio
- Instruments
Synth
Purpose
Section titled “Purpose”Synth is a polyphonic subtractive synthesizer for leads, pads, and bass. It provides band-limited oscillators (saw, square, triangle, sine), a Cytomic TPT state-variable filter with key tracking and envelope modulation, unison detuning, a sub oscillator, ADSR envelope, drive, and stereo spread.
Wire note_voices_f32_v1 from MIDI Note, a chord voicer, an arpeggiator, or any note-voice source into the voices input. Choose a waveform, set the filter, shape the envelope, and wire the stereo audio output to Device Out, an effect chain, or a mixer.
Inputs and outputs
Section titled “Inputs and outputs”- Input 0: voices — note_voices_f32_v1 (required). Gate, pitch, velocity, and aftertouch per voice.
- Output 0: out — stereo audio (PCM f32).
Controls
Section titled “Controls”- Waveform — Oscillator shape: saw, square, triangle, or sine. All shapes are band-limited with PolyBLEP anti-aliasing.
- Gain — Master output level.
- Unison — Number of detuned oscillators per voice (1-7).
- Detune — Unison detune spread in cents.
- Sub — Sub oscillator level (sine, one octave below the fundamental).
- Pulsewidth — Pulse width for the square waveform (0.05-0.95).
- Cutoff — Filter cutoff (0-1, mapped to 20 Hz-20 kHz logarithmically).
- Resonance — Filter Q (0-1, mapped to 0.5-20).
- Filtermode — Filter type: lowpass, highpass, bandpass, or notch.
- Filterenv — Filter envelope modulation amount (-1 to +1). Positive values open the filter on attack; negative values close it.
- Attack / Decay / Sustain / Release — ADSR envelope (milliseconds for A/D/R, 0-1 for sustain level).
- Drive — Post-filter saturation.
- Width — Stereo spread of unison voices.
- Keytrack — Filter cutoff key tracking amount (0-1). At 1.0, the filter follows the keyboard pitch.
- Limiter — Output safety limiter.
- Up to 8 polyphonic voices.
- The filter is a topology-preserving Cytomic SVF that remains stable at high resonance and fast modulation.
- Velocity controls output amplitude (30% floor + 70% velocity scaling).
- Glide between notes uses a simple exponential smoothing (5% per sample step).
Inputs
-
voicesrow required
Outputs
-
outrow
Parameters
Section titled “Parameters” Gain (Gain) Float
op('synth').par.Gain - Default:
0.5- Range:
- 0 to 2
Unison (Unison) Int
op('synth').par.Unison - Default:
3- Range:
- 1 to 7
Detune (Detune) Float
op('synth').par.Detune - Default:
12- Range:
- 0 to 50
Sub (Sub) Float
op('synth').par.Sub - Default:
0.2- Range:
- 0 to 1
Pulsewidth (Pulsewidth) Float
op('synth').par.Pulsewidth - Default:
0.5- Range:
- 0.05 to 0.95
Cutoff (Cutoff) Float
op('synth').par.Cutoff - Default:
0.65- Range:
- 0 to 1
Resonance (Resonance) Float
op('synth').par.Resonance - Default:
0.2- Range:
- 0 to 1
Filterenv (Filterenv) Float
op('synth').par.Filterenv - Default:
0.3- Range:
- -1 to 1
Attack (Attack) Float
op('synth').par.Attack - Default:
5- Range:
- 0 to 5000
Decay (Decay) Float
op('synth').par.Decay - Default:
200- Range:
- 0 to 5000
Sustain (Sustain) Float
op('synth').par.Sustain - Default:
0.7- Range:
- 0 to 1
Release (Release) Float
op('synth').par.Release - Default:
300- Range:
- 0 to 10000
Drive (Drive) Float
op('synth').par.Drive - Default:
0.15- Range:
- 0 to 1
Width (Width) Float
op('synth').par.Width - Default:
0.7- Range:
- 0 to 1
Keytrack (Keytrack) Float
op('synth').par.Keytrack - Default:
0.5- Range:
- 0 to 1
Limiter (Limiter) Toggle
op('synth').par.Limiter - Default:
On- Options:
- Off, On