pentemelodica

pentemelodica · sources · schema v1

Five-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).

A complete five-voice polyphonic analog-style synth in one card. A poly chord bus drives five independent VCO voices (lane i → voice i, a fixed 1:1 mapping with no allocator), each a band-limited oscillator with a continuous triangle→saw→square WAVE morph, coarse Tune + Fine detune, exponential FM and through-phase PM (from that voice's own FM jack), and a pulse-width control. The five voices share ONE amplitude ADSR (the gate edge comes from each poly lane), get summed through a per-voice level + pan stereo mixer, then pass through an embedded multimode filter (LP→BP→HP→Notch MODE dial, Cutoff/Resonance, Wet/Dry) to the stereo OUT. Each voice is also tapped pre-mixer to its own VOICE output for separate processing. To play chords you must feed the POLY input from a real poly source — patch MIDI LANE (in poly mode) or POLYSEQZ (or a SEQUENCER set to chord steps) into POLY; a single mono note source only lights one voice.

the faceplate

pentemelodicapolypolyPitchGatefm1audiofm2audiofm3audiofm4audiofm5audioout_laudioout_raudiovoice1audiovoice2audiovoice3audiovoice4audiovoice5audioaudiocvgatepitch
6 inputs · 7 outputs · 8 params

inputs

idcablewhat it does
polypolyPitchGateThe 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)
fm1audioVoice 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
fm2audioVoice 2's audio-rate FM/PM modulator jack (depths set by voice 2's FM/PM faders).
audio signal
fm3audioVoice 3's audio-rate FM/PM modulator jack (depths set by voice 3's FM/PM faders).
audio signal
fm4audioVoice 4's audio-rate FM/PM modulator jack (depths set by voice 4's FM/PM faders).
audio signal
fm5audioVoice 5's audio-rate FM/PM modulator jack (depths set by voice 5's FM/PM faders).
audio signal

outputs

idcablewhat it does
out_laudioLeft 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_raudioRight 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
voice1audioVoice 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
voice2audioVoice 2's pre-mixer mono tap (post-ADSR, before level/pan/filter).
audio signal
voice3audioVoice 3's pre-mixer mono tap (post-ADSR, before level/pan/filter).
audio signal
voice4audioVoice 4's pre-mixer mono tap (post-ADSR, before level/pan/filter).
audio signal
voice5audioVoice 5's pre-mixer mono tap (post-ADSR, before level/pan/filter).
audio signal

params

idlabelrangedefaultcurve
attackA0.001..5s0.001log
decayD0.001..5s0.1log
sustainS0..11linear
releaseR0.001..5s0.005log
cutoffCutoff20..20000Hz1000log
resonanceReso0..0.990.2linear
modeMode0..10linear
wetdryWet0..11linear

controls

controlwhat it does
AShared 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.
CutoffEmbedded filter cutoff frequency (20 Hz–20 kHz, log) applied to the summed five-voice mix.
DShared amplitude-envelope decay time (0.001–5 s, log): the fall from the attack peak down to the sustain level.
ModeEmbedded filter MODE dial (0..1): continuously morphs the SVF response low-pass → band-pass → high-pass → notch.
RShared amplitude-envelope release time (0.001–5 s, log): how long each voice takes to fade out after its gate closes.
ResoEmbedded filter resonance (0–0.99): emphasis at the cutoff, up to near self-oscillation.
SShared amplitude-envelope sustain level (0..1): the held level while a note's gate stays open.
V1 fineVoice 1 fine tune in cents (-100 to +100) — for subtle detune/beating against the other voices.
V1 fmVoice 1 exponential-FM depth (-1..+1) from its FM 1 jack — adds inharmonic/clangy modulation.
V1 levelVoice 1 mixer level (0..1) into the stereo bus.
V1 panVoice 1 stereo pan (-1 = left … +1 = right), equal-power, placing the voice in the OUT image.
V1 pmVoice 1 phase-modulation depth (-1..+1) from its FM 1 jack — the DX-style PM flavour of the same modulator.
V1 pwVoice 1 pulse width (0.05–0.95) — shapes the square end of the WAVE morph (50% is a true square).
V1 tuneVoice 1 coarse tune in semitones (-36 to +36) — set per voice for unison, octaves, or chord-spread detuning.
V1 waveVoice 1 waveform morph (0..1): continuously blends triangle → saw → square; the per-voice scope shows the resulting shape.
V2 fineVoice 2 fine tune in cents (-100 to +100).
V2 fmVoice 2 exponential-FM depth (-1..+1) from its FM 2 jack.
V2 levelVoice 2 mixer level (0..1) into the stereo bus.
V2 panVoice 2 stereo pan (-1 left … +1 right).
V2 pmVoice 2 phase-modulation depth (-1..+1) from its FM 2 jack.
V2 pwVoice 2 pulse width (0.05–0.95).
V2 tuneVoice 2 coarse tune in semitones (-36 to +36).
V2 waveVoice 2 waveform morph (triangle → saw → square).
V3 fineVoice 3 fine tune in cents (-100 to +100).
V3 fmVoice 3 exponential-FM depth (-1..+1) from its FM 3 jack.
V3 levelVoice 3 mixer level (0..1) into the stereo bus.
V3 panVoice 3 stereo pan (-1 left … +1 right).
V3 pmVoice 3 phase-modulation depth (-1..+1) from its FM 3 jack.
V3 pwVoice 3 pulse width (0.05–0.95).
V3 tuneVoice 3 coarse tune in semitones (-36 to +36).
V3 waveVoice 3 waveform morph (triangle → saw → square).
V4 fineVoice 4 fine tune in cents (-100 to +100).
V4 fmVoice 4 exponential-FM depth (-1..+1) from its FM 4 jack.
V4 levelVoice 4 mixer level (0..1) into the stereo bus.
V4 panVoice 4 stereo pan (-1 left … +1 right).
V4 pmVoice 4 phase-modulation depth (-1..+1) from its FM 4 jack.
V4 pwVoice 4 pulse width (0.05–0.95).
V4 tuneVoice 4 coarse tune in semitones (-36 to +36).
V4 waveVoice 4 waveform morph (triangle → saw → square).
V5 fineVoice 5 fine tune in cents (-100 to +100).
V5 fmVoice 5 exponential-FM depth (-1..+1) from its FM 5 jack.
V5 levelVoice 5 mixer level (0..1) into the stereo bus.
V5 panVoice 5 stereo pan (-1 left … +1 right).
V5 pmVoice 5 phase-modulation depth (-1..+1) from its FM 5 jack.
V5 pwVoice 5 pulse width (0.05–0.95).
V5 tuneVoice 5 coarse tune in semitones (-36 to +36).
V5 waveVoice 5 waveform morph (triangle → saw → square).
WetEmbedded filter wet/dry mix (0 = dry/bypassed … 1 = fully filtered).

source

pentemelodica.ts on GitHub.

Generated from packages/web/src/lib/{audio,video}/module-registry.ts · repo