Releases: pgil256/tab_vision
Release list
v1.0.0 — acoustic, audio-only
TabVision turns a recording of solo guitar into tablature — the string-and-fret notation a guitarist actually reads. v1 is an audio-first Python CLI, scoped to acoustic guitar.
This release completes Phase 9 (Polish) and meets the SPEC §7 acceptance gate: fresh clone installs and runs, all eval targets met, signed off.
Accuracy
Measured on the GuitarSet held-out player-05 validation set (60 clips), acceptance run 2026-06-03. Acceptance is lower-95% CI ≥ target over clips (bootstrap CIs).
| Metric | Gate | Measured (mean / lower-95) |
|---|---|---|
| Single-line Tab F1 | ≥ 0.45 | 0.523 / 0.457 |
| Strummed Tab F1 | ≥ 0.60 | 0.676 / 0.606 |
| Aggregate Tab F1 | ≥ 0.55 | 0.600 |
| Onset F1 (50 ms) | ≥ 0.92 | 0.94 / 0.92 |
| Pitch F1 (50 ms) | ≥ 0.90 | 0.93 / 0.90 |
| Latency (60 s clip, laptop CPU) | ≤ 5 min | ~45 s (0.74× realtime) |
The idea
Pitch does not determine position. The same note can be played in five or six places on the neck. A correct transcription gets the pitch; a correct tab gets the specific string and fret. The whole project lives or dies on string assignment — and that is exactly where audio alone runs out of information.
Made concrete on one clip (docs/DEMO/per-tier-examples.md): single-line scores 0.933 pitch+onset F1 but only 0.333 Tab F1 — a +0.600 gap that is purely string assignment. Strummed closes that gap to +0.027, because chord shapes pin the positions down.
Honest limits (measured, not hedged)
- Video string-resolution was built, measured, and refuted. The audio playability prior resolves contested strings at 0.778 vs. the best real video chain's 0.574. The video stack stays in the repo as evidence, not a shipping default.
- Electric guitar is v2. The acoustic backbone drops to 0.73 pitch / 0.12 Tab F1 on electric. The
--instrument electrictone toggle is wired for a checkpoint that doesn't exist yet. - Expressive markings are not detected. Technique-detection baseline is a measured 0.00 — there is no detector.
Every published number has a reproducible run under docs/EVAL_REPORTS/.
What ships
- CLI:
tabvision transcribe·check·diagnose - Renderers: confidence-graded ASCII (colour-graded on a TTY), MIDI, MusicXML, Guitar Pro 5
tabvision diagnose: self-contained HTML report — audio waveform, decoded tab, confidence map- Modal production deploy + a one-command local
studio.ps1record→tab loop - License-clean defaults: permissive, no copyleft, enforced in CI down to the loaded model artifacts (copyleft lives only in opt-in
vision/renderextras)
Install
cd tabvision
python3.11 -m venv .venv && source .venv/bin/activate
python -m pip install -e '.[dev,audio-highres]'
tabvision transcribe input.mov --format ascii -o out.tabStart with README.md; the full project story is in docs/NARRATIVE.md.