Musical structure analysis

Libretto

v0.1.0 Python stdlibMIDIHTTP

What it is

Scores a symbolic work across 29 weighted axes (form, harmony, melody, rhythm, texture, coherence) → one number. MIDI parser, drag-and-drop web UI, comparator, one-click push into Reaper.

The architect's call

Zero dependencies: MIDI parser and writer hand-written on the standard library. Born from rewriting a prototype that crashed and whose theory was wrong — the MIDI mapping confused index with semitones, invalidating every interval computation, and an unbounded "correlation" produced scores above 1. Validated on real MIDI: an assembled song scores 0.70 against 0.33–0.46 for isolated loops — the discrimination is sharp. 236 tests, 64 commits.

The code

View the repository ↗Try the demo ↗

Capabilities engaged

Your data cannot leave the building?

That is precisely the problem I solve. A 30-minute call is enough to scope an audit.