MIDI Harness
Active project · play a couple chords, have an interesting discussion about music. Code lives in its own repo: ~/Documents/midi-harness.
The MIDI harness is an example of what I want it to be: a really simple system prompt and a hook that captures MIDI events from a JSON-L and then an HTML, so that we're basically just trying to give Claude the power to let me play a couple chords and then have an interesting discussion about music.
The loop
MIDI keyboardWilliams Legato III
→
Go listenerforever-running
→
events.jsonlappend-only
→
conversationabout music
←
Claude46-word CLAUDE.md
←
hook on send<played> block → erase file
↻ play more chords — the emptied log IS the next turn's boundary
The one idea: the hook deletes
events.jsonl after injecting it — so "since last message" needs no offsets, no time windows, no second clock, no audio.
Current state · checked 2026-06-09
| Where | ~/Documents/midi-harness — separate repo, own .claude/, NOT this vault |
| What's built | cmd/listener + cmd/hook (Go, stdlib, ~0ms hook startup) + 46-word system prompt |
| Real use | ~10 practice sessions logged (2026-05-30 → 2026-06-01) in session-drain.md |
| Uncommitted drift | CLAUDE.md edited; future-ideas.md + session-drain.md untracked; repo has 1 commit |
| Parked on purpose | timing/rhythm capture (future-ideas.md) — harmony-read gets solid first |
Lineage
abandoned predecessor ·
~/Documents/midi-coach · github.com/jakesimonds/MCP-Dash-Demo
→
the 2026-05-29 strip-back → midi-harness
this node + the live repo
Both predecessor nodes archived 2026-06-09 (archive/midi-coach, archive/midi-harness-rebuild). This directory also still holds a dormant earlier experiment: a Rust synth + Python listener — see midi-harness.md.