Tracker
Contour does not convert your playing into MIDI notes. A note on/off pair with a single velocity cannot represent a pitch glide, a breath swell, or a vibrato wobble. Instead, the tracker emits a continuous stream of control signals, sampled 125 times a second, and the synth engine interpolates between them on every sample.
| f0_hz | Continuous pitch, sub-cent precision |
| f0_smooth_hz | Slow pitch contour with vibrato removed |
| confidence | Voicing confidence, 0 to 1 |
| envelope | Full loudness contour, not a single velocity |
| transient | Articulation impulses — tongue attacks, consonants |
| brightness | Normalized spectral centroid |
| noisiness | Breath and air-noise continuum, not a voiced/unvoiced flag |
| vibrato_rate_hz / vibrato_depth_cents | Decomposed vibrato |
Under the hood, a small neural model (SwiftF0) proposes a pitch candidate from a 16 kHz window of audio, and a DSP refinement stage narrows it to sub-cent precision with normalized autocorrelation. Confidence tracks how much the two stages agree — a clean, sustained tone sits near 1.0; breath noise, mouth noise, and silence pull it down.
Reading the trace
The pitch trace plots f0_hz against time, in semitones, alongside a
spectrogram of the incoming audio.

A steady voice or held note draws a flat line. Pitch bends and glides
show as continuous slopes rather than a staircase of discrete notes.
Vibrato shows up as a fine, regular oscillation riding on top of the
underlying contour — that ripple is exactly what vibrato_rate_hz and
vibrato_depth_cents decompose out of the trace. Low-confidence stretches
(breath, consonants, silence) look thin or gap out rather than jumping to
a wrong pitch.
Next: the synth panel.