Fully native to Csound. Transparent code out, zero black-box audio.
Modern generative music platforms produce frozen audio stems from latent space. You cannot un-bake the reverb, tweak the filter resonance, change a chord's 3rd to a suspended 4th, or inspect how the instrument was built.
Composer C is a different paradigm: an agentic DAW that speaks fluent Csound. You describe musical intent in plain language. The agent translates that intent into precise synthesis p-fields and score statements inside an orchestra. The system renders the sound, listens back to verify acoustic and harmonic truth, and hands you the complete, standalone .csd file.
The engine does not stop at a plausible score. It renders audio, extracts acoustic features, audits that essential chord tones (the 3rd and 7th) are audible, and automatically corrects omissions.
Audio from the compiled .csd.
Acoustic features. Verify required chord tones (3rd and 7th).
Harmonic masking or dropped tones in the mix.
Automatically rewrite p-fields and re-render until verified.
Csound is text-native synthesis built on sixty-plus years of computer music canon. Its power was never in doubt — its cost of entry was. We built a way in: describe the sound, read what got written, keep the file.
The goal was never to hide the orchestra. It was to get more people to the point where they want to read one.
Why this page existsNothing here is a metaphor for what happens — this is what happens. The phrase maps to a typed edit, the edit lands on a named p-field, and the p-field is a number in the score line Csound reads. Pick a phrase; the lines it moves light up.
Four compiles of the same eight bars, each moving exactly one FM
p-field off its default. Same notes, same filter, same seed. Each player below
holds the first twelve seconds of a render made by Csound 6.18 from the
.csd
beside it. The proof matrix reports spectral centroid and decay span for
Default, Hollower, More Edge, and Let It Bloom.
Measured on the opening chord — four voices, 1.6 s window: centroid is the spectral centre of mass — the honest proxy for "bright." Decay span is the centroid at the attack minus the centroid late in the chord: a big span means the tone opens bright and closes dark, which is what a bell does. Note the instrument's own low-pass sits at 3 kHz, so this is a warm Rhodes by design — none of these edits are trying to be glassy in the DX sense.
Every compile is a complete, standalone Csound document — orchestra, score,
function tables built with ftgen,
master bus. No THIRI dependency, no runtime, no account. Download one and
run it: the clip above is the first twelve seconds, and the
.csd
writes the file it was cut from — the full eight bars plus their reverb
tail, 35.9 s of stereo WAV.
Every voice parameter below is a real p-field on a real instrument — reachable by sentence, by knob, or by API, and identical in all three paths because they write the same field.
Detuned saw pairs and sub-oscillators into moogladder and
butterlp. cutoff, drive, and
reso respond to "darker," "grittier," "squelchier."
A pair of two-operator foscili units — a 1:1 tine body and a
1:ratio bell partial. The carrier:modulator ratio, the index
depth, and the index decay are all addressable in words.
Singing bowls built from partials at 1×, 2.01×, 2.76×, 5.40× with
independent decays; a gbuzz pad whose harmonic count breathes
under an LFO you can set.
Amplitude-modulated subs with conversational rate_hz and
depth — and a phasor-driven sidechain duck bus,
set per project rather than per note.
An honest boundary: the one-word chips are mix and arrangement moves,
not sound design. "Dreamier" and "punchier" push bus parameters — reverb
feedback and return, delay feedback, duck depth — and layer levels, which
reach the score only as each note's amp
p-field. "Darker" pulls the reverb cutoff and the master lowpass down.
Per-voice timbre — cutoff, drive, resonance, ratio — moves through the
sentences and knobs above. We'd rather tell you where the line is than let
you find it.
A student who cannot yet write an orchestra can describe one, then read what was written for them — with their own words still attached to the lines those words moved. The file that comes out is not a toy export; it is real Csound, emitted the way a machine emits it — the standard table set and the bus plumbing spelled out whether or not a piece leans on them — and it runs anywhere Csound runs.
The agent works from the same material a student would: it can pull any voice's actual orchestra text mid-conversation — the same code you can download here. Chord harmony is walled off from it entirely: the agent names chords by symbol, never sees a voicing, and the THIRI engine resolves each symbol to pitches server-side — chord tones are computed, not guessed. Melodic lines are the exception, and we'd rather name it: solos and licks do let the agent place explicit note numbers, and the compiler honours them verbatim.
Wire THIRI into your assistant and ask it for harmony you can hear the reasoning behind. In Claude Code, one line:
Anywhere else, add the hosted server —
https://mcp.thiri.ai/mcp
— with your key. Nothing to install.
Then: "Reharmonize Dm7 G7 Cmaj7 with Coltrane changes, then give me rootless voicings that voice-lead."
Conversation compiles to named p-fields. The download runs in any vanilla Csound 6.x environment. If you teach or write Csound, write Dennison.
dennison@bluesprincemedia.com · GitHub.com/BluesPrince