Role · Designer & developer
With · Brady Boettcher (C++/JUCE)
Platforms · VST3 / AU (macOS, Windows) · Logic Pro, Ableton Live, any host
AutoTune for MIDI. You're only ever a half step from the right note; Tonalign makes that correction for you and shows you how.
Shipped, 2026: downward arrows marking the notes that moved.
Problem
I am not a great pianist. My left hand is a liability, and I don't have the fluent muscle memory with chords and scales that comes from years of practice. But I know how to noodle: I know how to mash on the keyboard and hear what I meant to play, even when what came out was a half step off.
The half-step line is an old jazz saying; Tonalign turns it into a plugin. Play a note outside the current harmony and what comes out is its nearest available neighbor, corrected in real time inside the DAW. The incoming note is kept and shown, so you can always see what you played against what the plugin let through.
Insight
A pitch-correction layer is invisible by definition. If it works, the wrong note simply becomes a right note and nobody sees anything happen. That's fine for the listener and a real problem for the player: you send a C, you hear a D♭, and the plugin has given you no way to understand why. A correction you can't see feels like a bug. And if the promise is that players who never got the scales under their hands can play without fear of wrong notes, the plugin has to show its work.
Snapping the note is arithmetic. The design problem was drawing the difference between what the player sent and what the plugin let through, on a surface small enough to live in a plugin window, without turning it into a readout the player has to study mid-performance.
Prototype
Within a month I had a working plugin correcting notes in real time and was already handing builds to friends. The project would eventually wear three names (Scale Navigator MIDI VST, PitchSnap, and finally Tonalign), but the central idea never changed: take incoming MIDI, constrain it to the current harmonic context, and let players hear what they meant rather than what their fingers landed on.
The first playable build: it corrected notes, but couldn't yet explain itself.
Shipped, 2022: the three-keyboard flow folded to one row.
Failure
The first failure surfaced in week four, in a message to Brady: "when correcting notes, if 2 notes are corrected to the same midi note, how to handle that case." Two different wrong notes collapse onto the same right note: a collision the player never asked for and can't see. That exact edge case, overlapping corrections in fast passages, is still one I'm tuning today.
The second came back in writing. In week eight, Tristan Whitehill (Euglossine) sent the first external QA report on the plugin:
The correction was working and the player still couldn't hold onto what had happened.
Iteration
The design question stayed the same the whole way: draw the in/out delta. The drawing kept changing.
| When | The drawing | The verdict |
|---|---|---|
| 2022, mockup | Three keyboards: input, mapping, output | A literal signal-flow diagram; too much surface for a plugin window |
| 2022, shipped | One folded keyboard: black keys fold onto white (in C Acoustic, F folds to E, B to A♯) | The mapping visible on a single row instead of three |
| 2026, markup | Gray dots above the keys for incoming notes, red dots below for corrected ones | My annotation over the running plugin, spec'ing how in/out should read |
| 2026, shipped | Downward arrows marking the notes that moved | The delta legible mid-performance |
The mockup: in, mapping, out.
Four years later, still marking up the same in/out delta.
Final solution
What happens to a note that's already sounding when the harmony changes underneath it? That's answered by the INTERRUPT toggle. With it on, held notes are re-pitched at the exact instant the scale or chord changes, so the modulation stops being a silent background shift and becomes an audible event in every sustained voice.
The Correction dropdown is the newest idea in the plugin. Correction had always folded neighbors together: in C diatonic, the C and C♯ keys both come out as C. But what if C♯ came out as D? Brady argued there should be other modes for how corrected notes land, and the dropdown now holds four answers to what a correction layer should do with a note that doesn't fit:
Outcome
Tonalign shipped publicly in 2022 and again, rebuilt, in 2026. Since then it has been the MIDI-correction layer in every live session I run, including every Ensemble Jammer deployment. It's the "silent" plugin the rest of the ecosystem leans on: it subscribes to Dashboard's shared harmonic state and corrects against whatever chord or scale the room is currently in, no configuration.
It also turned into a compositional instrument I didn't plan for. I run recorded MIDI (Chopin, Liszt, Paganini, competition-grade performances) through it, stealing Chopin's texture and forcing it into whatever harmonic box I choose: "A whole new level of plunderphonics."
Aphex Twin's "Avril 14th" through Tonalign: each scale hands the theme a new affect.
The 2022 demo: the tagline, four years before the name.
Setup in Ableton Live; the same VST3/AU loads in Logic Pro or any host.
The collision problem from week four of 2021 is still one I tune by hand, and mid-sustain harmony changes still have edge cases. And there's an absurdity I've made peace with: because Steinberg makes real MIDI-effect plugins nearly impossible in VST3, Tonalign is technically a synthesizer, with a silent, no-noise synth always running inside it just so a pure MIDI tool is allowed to exist.
Brady Boettcher, C++/JUCE engineering, from a pandemic JUCE-forum post to the present; the early pair-programming sessions survive in the repo as branch names (bboettcher3/session_1 and up), and the plugin announces itself as "by Scale Navigator and Strange Loops." Tristan Whitehill, the first external QA report.
Scale Navigator Dashboard — the harmonic state that Tonalign subscribes to
Ensemble Jammer — the same harmonic state, followed by networked instruments instead of MIDI
NotesChordScales — the inverse direction: play notes, and the system infers the harmony
SNaPS — a sampler with the same harmony-aware pitch handling, applied to samples