Vocal synthesis: vowel identity, formants and expressive control
Separating fundamental pitch from vocal color in an authored playable synthesis engine.
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 vocal-synthesis work separated musical pitch from vowel identity. Raising every oscillator frequency and moving the spectral resonances are different operations; coupling them makes a pitch change unintentionally change the apparent tract. We implemented a bounded harmonic source under independently moving formant envelopes, then exposed vowel and tract motion as performance controls.
The useful contribution is an explicit spectral construction and a testable division between excitation, resonance shape and nonlinear effects. It is a creative vowel instrument, not an anatomically calibrated human vocal tract.
A bounded harmonic source under moving resonances
The voiced source uses up to 96 sinusoidal partials. For partial frequency h_k and resonance center F_j with width B_j, the code's resonance contribution has the form:
Five morphed anchors supply the centers. The first two resonance weights are 1 and 0.65, and the later three use 0.28 before the other spectral shaping. A harmonic tilt/background term, presence, nasality and high-frequency taper further shape each partial. These coefficients are authored choices, not a copied table of measured voices.
The tract scaling is 100/Character * 2^(formantSemitones/12). MIDI pitch determines the harmonic spacing separately. At a fixed vowel position, changing note pitch therefore changes which harmonics sample the same spectral envelope; it should not simply move the entire envelope with the note. Amplitude targets update on a bounded 32-sample control cadence and are smoothed in the voiced renderer.
Why independent controls matter in practice
Vowel morph moves between AH/EH/EE/OH/OO anchors. Formant shift changes spectral position; tract/character changes its scale; breath adds separately filtered pseudorandom excitation. Choir spread adds detuned voices. None of these requires importing a commercial voice bank.
The XY interface uses horizontal vowel and vertical formant movement. An eight-step vowel sequence and four modulation routes create rhythmic changes without rewriting note pitch. In mono legato, gate and glide behavior are separate from the harmonic spectrum. This gives a reusable parameter design: each control should identify whether it changes excitation, spectral envelope, amplitude or performance timing.
Nyquist limits apply to the whole operation
The source checks partial frequency below approximately 0.44 times sample rate and tapers toward the 0.45-rate boundary. That limits the unmodulated harmonic construction. Phase modulation, harmonic lattice shift and saturation can create additional spectral components; a bounded source does not make every later operation alias-free.
Test high notes and strong phase modulation independently from the neutral additive engine. A clean neutral spectrum cannot justify an alias-free claim for the effects chain. Likewise, five plausible resonance anchors do not prove human tract dimensions, vowel intelligibility for every listener, or realistic singing articulation.
Product separation and repeatable checks
A native Prismal Labs vocal synthesis instrument. Play vowel leads, monk chants,
choirs, psychedelic talking sounds and rhythmic vocal textures. The editor now
offers 32 synthesis presets and synthesis controls. Use the separate
Vocoder (../Vocoder/README.md, retained research) and AudioTransformer (../AudioTransformer/README.md, retained research)
instruments for new audio-input work. The optional input, hidden mode parameter,
old factory indices and all 668 state bytes remain supported for existing sessions.
See research (RESEARCH.md, retained research), parameters (PARAMETERS.md, retained research) and handoff (HANDOFF.md, retained research).
- Five-vowel morph and independent +/-24-semitone formant shift, tract size, focus, glottal softness, breath, nasality and presence.
- Sixteen bounded MIDI voices, one to three choir oscillators, ADSR, mono legato, glide, vibrato, human drift, detune, width and velocity response.
- Harmonic lattice shift, phase modulation, ring tones and grain alternation.
- Optional 24-band MIDI vocoder and stereo-input audio transformer, separate envelope attack/release, spectral freeze/smear and consonant passage.
- Eight-step vowel sequence with host-tempo division, glide and depth, two LFOs and four assignable source/target/amount routes.
- Ensemble, drive, ping-pong delay, room, output trim and wet blend.
- 32 original synthesis patches in the browser (48 retained internally for compatibility), native numeric entry, vowel/formant XY, audition, panic and the shared Prismal/Midnight skins.
The seven pages expose all sound controls. XY horizontal selects AH/EH/EE/OH/OO; vertical shifts the formants. Audition toggles a C3 note; Stop releases it. Panic clears voices and effects. Pitch bend, mod wheel, pressure, sustain, CC74 timbre and CC123 all notes off map separately for all sixteen MIDI channels.
Evidence: VocalGenerator/README.md.
Applying the findings
Begin with a fixed vowel and sweep MIDI pitch, then hold pitch and sweep formant position. Inspect harmonic spacing and the broad spectral envelope separately. Compare breath-off and breath-on states, and test channel-specific expression so one note's bend or timbre does not alter another channel unexpectedly.
For an additive engine, bound partial count and preparation work explicitly. Use an independent spectral analyzer and known test notes to check pitch and resonance movement. Keep lyric generation, pitch detection and input processing out of the claim unless they have actually been implemented and tested.
Limits and open questions
The oscillator and vowel anchors are original sound design. Phase modulation and saturation retain aliasing limits. Comparative product research informed workflow selection; it did not reveal proprietary algorithms or establish subjective superiority. New audio-input work belongs to the separate Vocoder and AudioTransformer; older VocalGenerator input states remain a compatibility path.
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/engine.h— SHA-2569c0d4ce9f1bcc234afeb2dbc6c2407506ec9451d626f60fe9b9738ac337b6d59VocalGenerator/RESEARCH.md— SHA-256ca060c23c017a56148fdcd885d24158fa8bfb9d40ab64cfe335b2165672cd744VocalGenerator/README.md— SHA-2560d09689f8b9c28a45f35f0619cf33f65ab69120374adb76f532198f34026449c
