callsine
callsine · effects · schema v1Spectral-analysis additive resynthesizer (clean-room port of Warren's Spectrum / CallSine, MIT-licensed). Reads incoming mono audio, runs an FFT-based partial tracker (Hann window → peak detection → McAulay-Quatieri-lite tracking → optional F0 harmonic lock) and rebuilds the sound as an additive bank of up to 64 oscillators. Plaits-style macros: HARMONICS sets the partial count, TIMBRE the smoothing/slew time, MORPH the harmonic-LOCK strength (snaps partials to an F0 grid), LEVEL the output gain. A PITCH (V/oct) input transposes the whole resynth; a GATE input toggles FREEZE, latching the current partials at their current frequencies/amplitudes for sustained pads. Ships 14 voice models (SINES, SAW, SQR, PULSE25, TRI, RAMP, CHEBY3/5, HARDSYNC, FOLD, NOISE, FORMANT, SUBOSC, METAL) that swap the per-partial waveform from pure sinusoids to richer/inharmonic shapes.
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
audio_in | audio | The mono audio to analyse and resynthesize — anything: a synth voice, a drum loop, a vocal. CallSine tracks its strongest partials and rebuilds them with the oscillator bank. audio signal |
pitch | pitch | A 1V/oct pitch input that transposes the entire resynth output after analysis (it shifts the rebuilt partials, so it pitches the sound without time-stretching it). Adds with the Note knob. V/oct pitch CV |
gate | gate | FREEZE toggle: a rising edge flips the freeze latch on or off, snapshotting the bank's current partials (their frequencies + amplitudes) so the output drones on that spectrum even as the input changes. Tap it to freeze a moment; pulse it to glitch-stutter. It reacts to the edge, not the held level. gate / trigger |
model_cv | cv | CV that displaces the voice-Model selector (discrete), so a stepped CV can switch oscillator waveforms. control voltage (CV); modulates model (integer buckets — CV selects a discrete step) |
note_cv | cv | CV that adds to the Note transpose (linear, ±60 st range), for melodic transposition from an LFO or sequencer. control voltage (CV); modulates note (additive offset — ±1 CV sweeps the full range, centered on the knob) |
harm_cv | cv | CV that adds to the Harmonics macro, opening up or thinning the partial count. control voltage (CV); modulates harmonics (additive offset — ±1 CV sweeps the full range, centered on the knob) |
timb_cv | cv | CV that adds to the Timbre macro, sweeping the analyzer smear/slew. control voltage (CV); modulates timbre (additive offset — ±1 CV sweeps the full range, centered on the knob) |
morph_cv | cv | CV that adds to the Morph macro, modulating the harmonic-lock strength. control voltage (CV); modulates morph (additive offset — ±1 CV sweeps the full range, centered on the knob) |
level_cv | cv | CV that adds to the output Level. control voltage (CV); modulates level (additive offset — ±1 CV sweeps the full range, centered on the knob) |
outputs
| id | cable | what it does |
|---|---|---|
out | audio | The mono additive-resynth output: the tracked partials rebuilt with the selected voice model, transposed and leveled. Frozen when FREEZE is engaged. audio signal |
params
| id | label | range | default | curve |
|---|---|---|---|---|
model | Model | 0..? | 0 | discrete |
note | Note | -60..60st | 0 | linear |
harmonics | Harmonics | 0..1 | 0.6 | linear |
timbre | Timbre | 0..1 | 0.4 | linear |
morph | Morph | 0..1 | 0 | linear |
level | Level | 0..1 | 0.8 | linear |
controls
| control | what it does |
|---|---|
| Harmonics | Partials-count macro (0..1): scales how many of the strongest tracked partials are resynthesized (1 up to all 64) — low for a sparse, hollow reduction, high for a faithful full-spectrum rebuild. |
| Level | Output gain (0..1); the Level CV input adds to this. |
| Model | The oscillator waveform each partial uses (discrete, 14 models: SINES, SAW, SQR, PULSE25, TRI, RAMP, CHEBY3/5, HARDSYNC, FOLD, NOISE, FORMANT, SUBOSC, METAL) — pick SINES for a clean resynth or a richer model to recolor the spectrum. The current model name is shown under the title. |
| Morph | Harmonic-lock strength (0..1): pulls the tracked partials toward an exact harmonic series of the detected fundamental — 0 leaves them where the analysis found them (inharmonic, faithful), higher values snap them tonal. |
| Note | Semitone transpose of the whole output (-60 to +60), added to the 1V/oct pitch input — shift the resynth up or down without changing its timing. |
| Timbre | Smoothing/slew macro (0..1, mapping to roughly 5 ms–2 s): low tracks the input crisply, high smears partials over time for a blurred, evolving texture. |
source
callsine.ts on GitHub.