pentemelodica
pentemelodica · sourcesFive-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. The notch end is the true SVF identity (lp + hp = x − k·bp), so it nulls at the cutoff whatever the resonance; below it the level at cutoff rises with RESONANCE as 1/k. |
| Pentemelodica voices {n} | The five-voice picture in the faceplate's hero slot: one lane per voice, each drawing a single cycle of that voice's own morphed waveform from the same band-limited oscillator the audio uses, with its coarse and fine offset, its mixer level and its pan position beside it. It is a picture of the PATCH, not a trace of the output — this module makes no sound until a poly source gates it, so a live scope would be a flat line most of the time you are looking at it. Click a lane to read that voice's exact resolved tuning underneath; the selection is yours alone (it is not saved with the rack and no collaborator sees it), and it changes no sound. It is the one place all five voices are visible at once, which matters because the eight-band faceplate shows only one voice strip at a time. |
| 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.