Vocoder research: analysis envelopes and MIDI-controlled carriers
Investigating a 24-band analysis/synthesis bank and the separate roles of the voice input and carrier notes.
Technical research · edition 2 · reviewed 2026-10-24

Prismal Labs native editor capture, illustrating the corresponding software project. View full-size image
What we found
The vocoder research centered on two independent requirements: the input must supply changing spectral envelopes, and the carrier must supply useful excitation in those bands. A held MIDI chord alone cannot carry speech articulation, while a voice recording alone does not supply this instrument's carrier pitch. A working editor or a populated MIDI lane proves neither path reached the processor.
Our implementation uses 24 logarithmic bands with explicit envelope timing, spectral remapping and a limited consonant path. The equations below explain those choices in a form that can be reused in another analysis/synthesis instrument.
Logarithmic analysis and asymmetric envelope timing
The nominal band centers are:
This spans nominally 100–9000 Hz; filter preparation must respect the actual sample rate. Each band has two cascaded analysis band-pass sections and two synthesis sections. After rectification, its envelope follows:
The attack coefficient applies when the rectified value exceeds the current envelope; release applies otherwise. The source code converts the millisecond controls to seconds and adds different Smear contributions to attack and release. This makes response speed sample-rate-aware, while keeping onset and tail behavior independently adjustable.
The synthesis path filters a MIDI-controlled carrier through corresponding bands and weights them by the remapped envelopes. A brighter carrier supplies more high-frequency energy than a sine. No envelope can recover a missing carrier harmonic perfectly, so intelligibility and carrier tone need joint listening tests.
Formant movement is a shift in band coordinates
A semitone formant shift s becomes deltaBand = (s/12) * 23/log2(90). The engine samples the analysis envelope at j-deltaBand using interpolation and zero outside the valid band range. This remaps spectral shape without changing the carrier's MIDI note.
Freeze retains an envelope after active input has seeded it. The shared input engine qualifies seeding by counting samples above an amplitude threshold; it is not a prerecorded sustained voice or a guarantee that a silent frozen patch will speak. Reset clears filter/envelope state. These lifetime rules should be explicit in any spectral-hold processor.
Consonants and the dry path have different jobs
The consonant path takes upper-frequency input detail from a 3500 Hz one-pole separation and gates it by carrier voice activity. It helps articulation while notes sound. Input mix adds original audio independently, including when no MIDI notes are held.
That distinction supplies a useful routing diagnostic: if input mix is audible but the processed path is silent, verify MIDI carrier delivery and envelope seeding. If MIDI is present but input mix is silent, verify the audio sidechain. Changing a synthesis preset cannot repair a missing host connection.
An application-level validation recipe
Use four controlled cases: audio only, MIDI only, both, and neither. With dry input mix disabled, only the combined case should produce ordinary vocoded articulation. Then test dry mix separately, a seeded Freeze, reset from Freeze, sustain, pitch bend and parameter automation at known offsets.
In Ableton the instrument uses a MIDI track with incoming vocal audio on the VST3 sidechain. The retained device contract has its own identity, 38 sound controls, twelve presets and a 308-byte v1 state. Installed-module processing and actual host routing are separate gates; screenshots alone establish neither. The vocoder reports zero processing latency, distinct from the transformer's delayed grain path.
Applying the findings
This architecture works for musical vocoders and spectral-envelope transfer experiments. Keep the band grid, envelope detector, remapping and carrier as separate components so each can be tested with synthetic signals. Sweep a tone through the analysis bank, use a known wideband carrier, and compare envelope response at several sample rates.
Treat a freeze as state with a defined initialization rule. Keep direct input mix separate from consonant restoration so users can diagnose and control them independently.
Limits and open questions
The bank and gains are authored DSP, not a reconstruction of a commercial vocoder. A 24-band envelope does not preserve all speech detail or establish anatomical realism. Nominal band centers do not guarantee identical bandwidth near every supported Nyquist limit. macOS/AAX and other host routing require separate evidence.
Primary references
Research provenance
The methods and results above are drawn from these retained research records. Dates and product versions inside the article identify the scope of each experiment; publication review does not mean the hardware or numerical tests were rerun.
shared/include/prismal/dsp/vocal/input_engine.h— SHA-256d2ad9fb81a2a1bb2f72a01fd4c6a9b4a32ae65f2928dbbe3f3e389e9c6c33f2dVocoder/README.md— SHA-2566699718dd0312de3fe29bd3a855e0e634d3347a0adfbac396579ea0ba79c4facVocoder/HANDOFF.md— SHA-25677477d95b2ff2a2f58f985110d2d764ebc44e1cd78b91c8ac5b44eff967673ed
