The desktop line.
Three builds from one processor. Which you reach for is decided by what you plug in and what you want back — your own tone moved onto new notes, or the notes themselves for something else to play.
THIRI.app
The standalone. Two tabs: PERFORM
for the controls you touch while playing, and CHART, where you type a
progression — Em7 | Am7 | B7 Em7 | Cmaj7 — and it commits at
the top of the next loop. Metronome and a live now-playing strip.
- InputOne mono source
- ChartTyped, parsed off-thread
- ForPractice, soundcheck, writing
THIRI.vst3
The harmoniser. Mono in, stereo out, five voices pitch-shifted from your own signal with formants preserved. Set the clock to the host and it follows the session tempo.
- CategoryFx, mono → stereo
- ClockInternal or host
- Parameters21, all automatable
THIRI MIDI.vst3
The note engine. Play a line and it emits the harmony as notes for whatever sits after it. THIRI decides; your instruments perform. Voice leading holds across chord changes, so common tones do not retrigger.
- MIDIIn and out
- DirectionAbove or below the lead
- Voices1–5, default 3
INSIDE THE AUDIO BUILD
What happens to your signal
A high-pass and a gate clear the noise floor. A YIN tracker reads the note you are actually playing and reports how confident it is. The engine resolves the current bar to a chord and voices it. Five copies of your input are moved onto those notes, mixed against the dry signal, and sent out.
Two shifters are available. A phase vocoder is the higher-quality option and the one a desktop has headroom for. PSOLA is the cheap one, and it is what the pedal runs.
The 21 parameters
- Harmonyharmony_on, num_voices, voicing
- Chartchart_slot, key, mode, tempo, clock_source
- Pitchpitch_source, ref_note, role
- Mixvoice1–5_vol, wet_dry, master, input_gain
- Engineshifter, metro_on
Set
pitch_source to told and the tracker steps aside — something
else names the note. That is how the wind-controller rig works.
STATE
Where this actually is
All three targets build and run today. There is no signed installer and no release page — you build from source with CMake, and JUCE is fetched for you if it is missing. On macOS the standalone asks for microphone permission the first time you open it.
The harmony itself is not provisional. Every build checks the engine against 16,353 golden vectors and has to match to the note before it ships.