pentemelodica
pentemelodica · sources · schema v1Five-voice polyphonic analog-style synth. A POLY input (the polyPitchGate chord bus from MIDI LANE / POLYSEQZ / a chord sequencer) drives five band-limited VCO voices — lane i → voice i — each with TUNE (±36 st) / FINE (±100 ¢) / exponential FM / through-phase PM / pulse width and a continuous tri→saw→square WAVE morph. Each voice has its own gated amplitude envelope, but the A/D/S/R is SHARED across all five voices (one device-level ADSR; aligned with CUBE / WAVECEL / DX7); the gate edge comes from that voice's poly lane, and a released voice holds the played pitch through its release tail. The five post-envelope voices sum through a stereo mixer (per-voice LEVEL + equal-power PAN) and an embedded multimode filter — a continuous LP→BP→HP→Notch MODE dial on a TPT state-variable filter (CUTOFF / RESONANCE) with a WET/DRY bypass — to the stereo OUT_L / OUT_R pair. Each voice is also tapped pre-mixer (post-envelope) to a VOICE1..VOICE5 mono output, and each voice has its own audio-rate FM jack (fm1..fm5) that feeds both its FM and PM depths. 48 panel params (5 voices × 8 + 4 shared ADSR + 4 filter). DSP is own-code: a clean-room polyBLEP band-limited oscillator, a Cytomic/Zavalishin TPT state-variable filter, and a linear-ADSR envelope — not a port of any copyleft source (permissive only).
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
poly | polyPitchGate | The 5-lane poly pitch/gate chord bus that plays the voices: lane i drives voice i (fixed mapping). Patch a real poly source here — MIDI LANE in poly mode, POLYSEQZ, or SEQUENCER with chord steps — so each held note opens a voice's shared ADSR; a mono pitch source only plays voice 1. poly pitch+gate bus; 10-channel poly bus (5 pitch + 5 gate lanes) |
fm1 | audio | Voice 1's audio-rate modulator jack: it feeds both that voice's exponential FM and its phase modulation, with the depths set by voice 1's FM and PM faders — so one patched modulator gives either or both flavours. audio signal |
fm2 | audio | Voice 2's audio-rate FM/PM modulator jack (depths set by voice 2's FM/PM faders). audio signal |
fm3 | audio | Voice 3's audio-rate FM/PM modulator jack (depths set by voice 3's FM/PM faders). audio signal |
fm4 | audio | Voice 4's audio-rate FM/PM modulator jack (depths set by voice 4's FM/PM faders). audio signal |
fm5 | audio | Voice 5's audio-rate FM/PM modulator jack (depths set by voice 5's FM/PM faders). audio signal |
outputs
| id | cable | what it does |
|---|---|---|
out_l | audio | Left channel of the stereo mix: all five voices, post-ADSR, through the per-voice level/pan mixer and the embedded filter, at master level. (Pairs with out_r as the main stereo output.) audio signal; L/R stereo pair with out_r |
out_r | audio | Right channel of the stereo mix (the partner of out_l, carrying the per-voice pan spread). audio signal; L/R stereo pair with out_l |
voice1 | audio | Voice 1's individual signal, tapped post-ADSR but BEFORE the mixer's level/pan and the shared filter — patch it to send just this voice to its own VCA/filter/FX. audio signal |
voice2 | audio | Voice 2's pre-mixer mono tap (post-ADSR, before level/pan/filter). audio signal |
voice3 | audio | Voice 3's pre-mixer mono tap (post-ADSR, before level/pan/filter). audio signal |
voice4 | audio | Voice 4's pre-mixer mono tap (post-ADSR, before level/pan/filter). audio signal |
voice5 | audio | Voice 5's pre-mixer mono tap (post-ADSR, before level/pan/filter). audio signal |
params
| id | label | range | default | curve |
|---|---|---|---|---|
attack | A | 0.001..5s | 0.001 | log |
decay | D | 0.001..5s | 0.1 | log |
sustain | S | 0..1 | 1 | linear |
release | R | 0.001..5s | 0.005 | log |
cutoff | Cutoff | 20..20000Hz | 1000 | log |
resonance | Reso | 0..0.99 | 0.2 | linear |
mode | Mode | 0..1 | 0 | linear |
wetdry | Wet | 0..1 | 1 | linear |
controls
| control | what it does |
|---|---|
| A | Shared amplitude-envelope attack time (0.001–5 s, log): how fast each voice fades in when its poly lane's gate opens. One ADSR feeds all five voices. |
| Cutoff | Embedded filter cutoff frequency (20 Hz–20 kHz, log) applied to the summed five-voice mix. |
| D | Shared amplitude-envelope decay time (0.001–5 s, log): the fall from the attack peak down to the sustain level. |
| Mode | Embedded filter MODE dial (0..1): continuously morphs the SVF response low-pass → band-pass → high-pass → notch. |
| R | Shared amplitude-envelope release time (0.001–5 s, log): how long each voice takes to fade out after its gate closes. |
| Reso | Embedded filter resonance (0–0.99): emphasis at the cutoff, up to near self-oscillation. |
| S | Shared amplitude-envelope sustain level (0..1): the held level while a note's gate stays open. |
| V1 fine | Voice 1 fine tune in cents (-100 to +100) — for subtle detune/beating against the other voices. |
| V1 fm | Voice 1 exponential-FM depth (-1..+1) from its FM 1 jack — adds inharmonic/clangy modulation. |
| V1 level | Voice 1 mixer level (0..1) into the stereo bus. |
| V1 pan | Voice 1 stereo pan (-1 = left … +1 = right), equal-power, placing the voice in the OUT image. |
| V1 pm | Voice 1 phase-modulation depth (-1..+1) from its FM 1 jack — the DX-style PM flavour of the same modulator. |
| V1 pw | Voice 1 pulse width (0.05–0.95) — shapes the square end of the WAVE morph (50% is a true square). |
| V1 tune | Voice 1 coarse tune in semitones (-36 to +36) — set per voice for unison, octaves, or chord-spread detuning. |
| V1 wave | Voice 1 waveform morph (0..1): continuously blends triangle → saw → square; the per-voice scope shows the resulting shape. |
| V2 fine | Voice 2 fine tune in cents (-100 to +100). |
| V2 fm | Voice 2 exponential-FM depth (-1..+1) from its FM 2 jack. |
| V2 level | Voice 2 mixer level (0..1) into the stereo bus. |
| V2 pan | Voice 2 stereo pan (-1 left … +1 right). |
| V2 pm | Voice 2 phase-modulation depth (-1..+1) from its FM 2 jack. |
| V2 pw | Voice 2 pulse width (0.05–0.95). |
| V2 tune | Voice 2 coarse tune in semitones (-36 to +36). |
| V2 wave | Voice 2 waveform morph (triangle → saw → square). |
| V3 fine | Voice 3 fine tune in cents (-100 to +100). |
| V3 fm | Voice 3 exponential-FM depth (-1..+1) from its FM 3 jack. |
| V3 level | Voice 3 mixer level (0..1) into the stereo bus. |
| V3 pan | Voice 3 stereo pan (-1 left … +1 right). |
| V3 pm | Voice 3 phase-modulation depth (-1..+1) from its FM 3 jack. |
| V3 pw | Voice 3 pulse width (0.05–0.95). |
| V3 tune | Voice 3 coarse tune in semitones (-36 to +36). |
| V3 wave | Voice 3 waveform morph (triangle → saw → square). |
| V4 fine | Voice 4 fine tune in cents (-100 to +100). |
| V4 fm | Voice 4 exponential-FM depth (-1..+1) from its FM 4 jack. |
| V4 level | Voice 4 mixer level (0..1) into the stereo bus. |
| V4 pan | Voice 4 stereo pan (-1 left … +1 right). |
| V4 pm | Voice 4 phase-modulation depth (-1..+1) from its FM 4 jack. |
| V4 pw | Voice 4 pulse width (0.05–0.95). |
| V4 tune | Voice 4 coarse tune in semitones (-36 to +36). |
| V4 wave | Voice 4 waveform morph (triangle → saw → square). |
| V5 fine | Voice 5 fine tune in cents (-100 to +100). |
| V5 fm | Voice 5 exponential-FM depth (-1..+1) from its FM 5 jack. |
| V5 level | Voice 5 mixer level (0..1) into the stereo bus. |
| V5 pan | Voice 5 stereo pan (-1 left … +1 right). |
| V5 pm | Voice 5 phase-modulation depth (-1..+1) from its FM 5 jack. |
| V5 pw | Voice 5 pulse width (0.05–0.95). |
| V5 tune | Voice 5 coarse tune in semitones (-36 to +36). |
| V5 wave | Voice 5 waveform morph (triangle → saw → square). |
| Wet | Embedded filter wet/dry mix (0 = dry/bypassed … 1 = fully filtered). |
source
pentemelodica.ts on GitHub.