Build in public
Research Lab
Each experiment ships with a STATUS.md, smoke proof JSON under
THIRI/lab/proofs/, and a live page on
build.thiri.ai.
Tag <slug>-v* promotes status to shipped on
/progress.
Latest proof — studio-mcp-proof
{
"slug": "studio-mcp-proof",
"version": "0.2.0",
"generatedAt": "2026-06-19T12:00:00Z",
"commit": "local",
"demo": {
"local": "http://localhost:5173/",
"studio_dev": "npm run dev:studio (studio-dashboard)",
"production": "https://build.thiri.ai/innovate/band",
"lab_page": "https://build.thiri.ai/lab/producer-composer",
"agent_doc": "THIRI/lab/DEMO_AGENT.md",
"musician_doc": "THIRI/lab/DEMO_MUSICIAN.md"
},
"grammar_apply": true,
"mcp_tools": [
"analyze_chord",
"generate_voicing",
"resolve_chord",
"reharmonize",
"conduct_band"
],
"local_verbs": [
"progression.set",
"helix",
"keys",
"drums",
"fx",
"vocal",
"transport"
],
"api_endpoints": [
"POST https://chords.thiri.ai/v2/analyze",
"POST https://chords.thiri.ai/v2/voicing",
"POST https://chords.thiri.ai/v2/resolve",
"POST https://chords.thiri.ai/v2/reharmonize",
"POST https://chords.thiri.ai/v2/conduct"
],
"mcp_server": "https://mcp.thiri.ai",
"demo_sequence": [
"progression.set Cm7|F7|Bbmaj7|Eb7 key:Bb bpm:92",
"helix motion:pendulum density:1/16 voices:4 smoothness:60",
"drums track:1 steps:1,5,9,13 kit:808-kick revSend:0.15",
"keys instrument:rhodes voicingStyle:rootless pattern:1,5,9,13",
"fx aux1_level:0.6 aux2_level:0.4 send_drums_rev:0.2",
"transport play"
],
"tests": {
"proof_panel": "pass",
"api_call_log": "pass",
"health_ping": "pass",
"conduct_hydration": "pass",
"grammar_apply_local": "pass",
"lastRun": "2026-06-19T12:00:00Z"
},
"notes": "Producer Composer at / (not /band) — ComposerPromptBar accepts deterministic grammar + vibe compose. See DEMO_AGENT.md for copy-paste sequence. Local: cd THIRI/production/thiri-studio-local && npm run dev:studio."
} Also: conductor-mcp smoke below.
conductor-mcp smoke
{
"slug": "conductor-mcp",
"version": "0.1.0",
"generatedAt": "2026-06-19T23:54:49Z",
"commit": "fe55abe",
"tests": {
"lanesToScore": "pass",
"renderCsoundWav": "pass",
"mcpToolsList": "pass",
"lastRun": "2026-06-19T23:54:49Z",
"tools": [
"conduct_band",
"build_csound_score",
"render_csound_wav",
"play_audio",
"csound_env"
]
},
"notes": "Run: cd thiri-mcp && node mcp-conductor-test.mjs. Requires csound CLI for WAV render."
} Producer Composer — Play · Agent
Dual demo docs: musicians vibe-and-play; agents paste deterministic grammar at localhost:5173/.
Live Studio Proof
Band dashboard proves analyze_chord, generate_voicing,
conduct_band with a visible API call log — homepage-ready MCP demo.
Agent recipes
Flagship prompt chain: analyze → conduct → render → critique
Band Studio MCP Proof
Live Band studio dashboard proves analyze_chord, generate_voicing, resolve_chord, and conduct_band end-to-end with visible API call log.
Conductor MCP + Csound Desktop
Desktop agent loop: conduct_band → lanesToScore → Csound WAV. Local MCP companion to chord MCP.
Composition Lab MCP
Published thiri-composition-mcp: 10 IR tools for agent compose/revoice/export loop.
Csound Corpus Browser
Search 5,316 indexed Csound instruments from official repos; preview categories and opcodes.
C.AI Unified Studio
Chat-driven band in thiri-studio-local; unify bandEngine with /v2/conduct spine.
Csound Tension Mapper
Map harmonic tension from analyze_chord onto Csound filter/FM parameters in score.
Composition Critic Agent
Agent loop: compose → render WAV → compare lead sheet and duration constraints.
Index: EXPERIMENTS.md