Skip to content
THIRI logo
build.thiri.ai
Music theory for agents

Manual · Part I · The engine

What THIRI is

A harmony engine that computes rather than guesses, and the one sentence that explains why that matters to anyone putting music in front of a language model.

Updated Oct 2, 2026

THIRI stands for The Harmonic Intelligence Reference Infrastructure. Older documents expand it differently; this is the locked form. In practice it is one thing: a harmony engine you can ask about chords, keys, voicings and progressions, and which answers by computing from pitch-class sets and a fixed grid of rules. It does not sample. Ask it the same question a hundred times and you get the same right answer a hundred times.

The problem it solves

Language models are good at intent, planning and taste. They are bad at arithmetic over pitch classes. Ask a model to voice a C13 for jazz piano and it will often produce something plausible and wrong, because it is predicting tokens, not spelling intervals. The error is invisible to a non-musician and obvious to anyone who plays.

THIRI sits beside the model as a tool. The model keeps the conversation; THIRI supplies the notes.

What you get

Five calls, over REST or as MCP tools:

CallQuestion it answers
analyzeWhat is this chord, and what is it doing in this key?
resolveWhich notes, MIDI numbers and frequencies is it?
voicingHow should an instrument play it after the previous chord?
reharmonizeWhat else could this progression be, and why does each option work?
conductTurn a plain-English direction into a band arrangement and a MIDI file.

Every answer is a JSON object with the theory attached: roman numerals, function, the scales that fit, the guide tones that moved.

Where it runs

  • On the edge, at chords.thiri.ai, metered by API key.
  • Inside Claude, Cursor and any MCP client, through @bluesprincemedia/thiri-mcp.
  • In the browser, as the engine behind the instruments on this site.
  • In C++, as thiri_core inside the THIRI VST and on the Elk Stomp pedal, pinned to the JavaScript engine by thousands of golden test vectors.

The rest of this manual walks through each of those, what was measured, and what is still open.

Next

The five calls →

What each endpoint answers, what it needs, and what it returns, with the real responses captured from the live engine.