Oscillators
Synome features two independent oscillators with saw/pulse morphing, FM synthesis between them, hard sync, and a noise generator. Both oscillators feed into a mixer before the filter stage.
Oscillator 1
Section titled “Oscillator 1”| Parameter | ID | Range | Default | Unit | Description |
|---|---|---|---|---|---|
osc1_shape | 0 | 0.0–1.0 | 0.0 | — | Waveform morph: 0 = sawtooth, 1 = pulse |
osc1_coarse | 1 | -24–+24 | 0 | st | Coarse pitch in semitones |
osc1_fine | 2 | -100–+100 | 0 | cents | Fine pitch in cents |
osc1_mod_lfo | 3 | on/off | off | — | Enable LFO → pitch modulation |
osc1_mod_env | 4 | on/off | off | — | Enable Mod Envelope → pitch modulation |
osc1_fm_amount | 5 | 0.0–1.0 | 0.0 | % | FM depth (OSC2 → OSC1 frequency) |
osc1_fm_env | 6 | on/off | off | — | Mod Envelope → FM amount |
osc1_fm_lfo | 7 | on/off | off | — | LFO → FM amount |
FM Synthesis
Section titled “FM Synthesis”OSC2’s output modulates OSC1’s frequency. The FM amount is the modulation index:
osc1_freq_effective = osc1_freq × (1 + osc2_output × fm_amount)FM amount can be further modulated by the Mod Envelope and/or LFO for dynamic timbral changes.
Oscillator 2
Section titled “Oscillator 2”| Parameter | ID | Range | Default | Unit | Description |
|---|---|---|---|---|---|
osc2_shape | 13 | 0.0–1.0 | 0.0 | — | Waveform morph: 0 = sawtooth, 1 = pulse |
osc2_coarse | 14 | -24–+24 | 0 | st | Coarse pitch in semitones |
osc2_fine | 15 | -100–+100 | 0 | cents | Fine pitch in cents |
osc2_sync | 16 | on/off | off | — | Hard sync: OSC2 resets OSC1 phase |
osc2_mod_lfo | 17 | on/off | off | — | Enable LFO → pitch modulation |
osc2_mod_env | 18 | on/off | off | — | Enable Mod Envelope → pitch modulation |
Hard Sync
Section titled “Hard Sync”When enabled, OSC2’s phase wrap resets OSC1’s phase to zero. This creates complex harmonics that change with OSC1’s pitch. Classic sync sweep: tune OSC1 higher while synced to OSC2.
Waveform Morphing
Section titled “Waveform Morphing”Both oscillators morph continuously between sawtooth and pulse:
output = saw × (1 - shape) + pulse × shape| Shape Value | Waveform |
|---|---|
| 0.0 | Pure sawtooth |
| 0.25 | 75% saw / 25% pulse |
| 0.5 | 50/50 blend |
| 0.75 | 25% saw / 75% pulse |
| 1.0 | Pure pulse (50% duty cycle) |
Oscillator Modes (Future)
Section titled “Oscillator Modes (Future)”The oscillator engine supports pluggable synthesis modes:
| Mode | Index | Description | Status |
|---|---|---|---|
| Analog | 0 | Saw/pulse morphing (current) | ✅ Available |
| Wavetable | 1 | Scan through wavetable frames | 🔮 Planned |
| Granular | 2 | Granular cloud synthesis | 🔮 Planned |
| Physical | 3 | Physical modeling / Karplus-Strong | 🔮 Planned |
The mixer blends the two oscillators with a noise generator before the filter:
| Parameter | ID | Range | Default | Unit | Description |
|---|---|---|---|---|---|
mix_osc1 | 8 | 0.0–1.0 | 0.7 | % | OSC1 level |
mix_osc2 | 9 | 0.0–1.0 | 0.0 | % | OSC2 level |
mix_noise | 10 | 0.0–1.0 | 0.0 | % | Noise level |
mix_noise_type | 11 | 0–1 | 0 | — | 0 = white noise, 1 = pink noise |
pitch_mod_source | 12 | 0–1 | 0 | — | Pitch modulation source selector |
Noise Types
Section titled “Noise Types”| Type | Value | Spectrum | Use Case |
|---|---|---|---|
| White | 0 | Equal energy per frequency | Bright, hissy — cymbals, wind |
| Pink | 1 | Equal energy per octave (−3 dB/oct) | Warmer, natural — ocean, rain |
Pink noise uses a 7-stage Voss-McCartney algorithm for accurate 1/f spectral rolloff.
| Parameter | ID | Range | Default | Unit | Description |
|---|---|---|---|---|---|
pitch_bend_range | 67 | 0–24 | 2 | st | Pitch bend wheel range |
pitch_mod_amount | 68 | 0–24 | 0 | st | Pitch modulation depth |
vibrato_rate | 69 | 0.1–15 | 5.0 | Hz | Vibrato speed |
vibrato_depth | 70 | 0.0–1.0 | 0.0 | st | Vibrato depth |
Pitch Modulation Routing
Section titled “Pitch Modulation Routing”When osc1_mod_lfo or osc2_mod_lfo is enabled, the LFO modulates that oscillator’s pitch by pitch_mod_amount semitones. Similarly, osc1_mod_env / osc2_mod_env routes the Mod Envelope to pitch.
final_freq = base_freq × 2^((coarse + fine/100 + pitch_mod) / 12)Where pitch_mod is the sum of enabled modulation sources × pitch_mod_amount.
Output
Section titled “Output”| Parameter | ID | Range | Default | Unit | Description |
|---|---|---|---|---|---|
volume | 28 | 0.0–1.0 | 0.7 | % | Master volume |
mono | 29 | on/off | off | — | Mono mode (single voice) |
legato | 30 | on/off | off | — | Legato (no envelope retrigger on overlapping notes) |
unison_mode | 31 | 0–3 | 0 | — | Unison voice stacking |
pan | 32 | -1.0–+1.0 | 0.0 | — | Stereo pan (equal-power law) |
glide | 33 | 0–2000 | 0 | ms | Portamento time |
Unison Modes
Section titled “Unison Modes”| Value | Mode |
|---|---|
| 0 | Off |
| 1 | 2× unison |
| 2 | 4× unison |
| 3 | 8× unison |
Master
Section titled “Master”| Parameter | ID | Range | Default | Unit | Description |
|---|---|---|---|---|---|
master_drive | 71 | 0.0–1.0 | 0.0 | % | Soft saturation (tanh waveshaper) |
voice_count | 72 | 0–3 | 2 | — | Maximum polyphony (4/8/12/16) |
master_tune | 73 | -100–+100 | 0 | cents | Global tuning offset |
Related
Section titled “Related”- Synome Overview — Full synthesizer architecture
- Plugins — Plugin hosting system