Lab · Producer Composer
Play · Agent
Producer Composer at localhost:5173/ serves musicians and developers from one shell.
Pick a tab below — each path has explicit numbered steps in the repo demo docs.
Musician quick start
No API key. Vibe prompt → Compose → Play.
cd THIRI/production/thiri-studio-local && npm run dev:studio- Open localhost:5173/
- Click ▶ PLAY once (audio unlock)
- Type e.g.
gospel ballad in Eb→ Compose - Click ▶ PLAY — you should hear Helix on the new chart
Full doc (repo): THIRI/lab/DEMO_MUSICIAN.md
Musician smoke JSON
{
"slug": "producer-composer-musician",
"version": "0.1.0",
"generatedAt": "2026-06-20T16:12:00Z",
"commit": "main",
"audience": "musician",
"demo": {
"local": "http://localhost:5173/",
"hosted": "https://build.thiri.ai/innovate/band",
"studio_dev": "cd THIRI/production/thiri-studio-local && npm run dev:studio",
"production_note": "build.thiri.ai/innovate/band serves ProducerComposer via InnovateWasmShell",
"lab_page": "https://build.thiri.ai/lab/producer-composer",
"doc": "THIRI/lab/DEMO_MUSICIAN.md"
},
"steps": [
"npm install && npm run dev:studio in thiri-studio-local",
"Open http://localhost:5173/",
"Click PLAY once (audio unlock)",
"Type vibe prompt or use preset chip (Gospel / Neo-soul / Dark jazz)",
"Click Compose",
"Click PLAY — hear Helix + lanes on shared transport"
],
"example_prompts": [
"gospel ballad in Eb",
"neo-soul groove in Dm",
"something dark and minor in Dm"
],
"smoke_checklist": {
"page_loads": "pass",
"audio_unlock": "pass",
"vibe_compose_no_api_key": "pass",
"progression_field_updates": "pass",
"transport_play": "pass",
"vocal_lane_off_by_default": "pass",
"hosted_band_title": "pending_post_deploy",
"lastRun": "2026-06-20T16:12:00Z"
},
"notes": "Musician path uses parseComposeRequest in ComposerPromptBar — no THIRI API key required. Agent grammar documented in DEMO_AGENT.md."
} Agent / MCP demo
Read manifest → grammar → paste deterministic commands in ComposerPromptBar.
agent-capability.v1.json→agent-command-grammar.v1.json→thiri://studio/capability-manifest- Paste demo sequence (one line at a time) into prompt bar → Compose
- Open Theory · MCP drawer for API call log (key optional for local verbs)
- Finish with
transport play
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 keys instrument:rhodes voicingStyle:rootless transport play
Full doc (repo): THIRI/lab/DEMO_AGENT.md
Agent smoke JSON
{
"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."
} Production note
build.thiri.ai/innovate/band
may still serve legacy NanoBandStudio until the next studio-dashboard deploy.
Prefer local npm run dev:studio for Producer Composer demos.