Plan: Phase 1 implementation (pitch ceiling lift) — blocked on #11#12
Open
pgil256 wants to merge 1 commit into
Open
Plan: Phase 1 implementation (pitch ceiling lift) — blocked on #11#12pgil256 wants to merge 1 commit into
pgil256 wants to merge 1 commit into
Conversation
Plan-only. Implementation gated on PR #11 (Phase 0) merging into main AND explicit 'proceed' from user per CLAUDE.md operating rule 2. Mirrors the Phase 0 impl-plan style: - Goal recap (Pitch F1 0.915 → ≥ 0.93, no Onset regression > 1 pp) - Two-stage approach: cheap deterministic post-processing (voicing gate + peak-picking + same-pitch merge) first; Basic Pitch pitch-only ensemble only if Stage A leaves a 1-2 pp gap. - Exact files: new audio/ensemble.py + cache/sweep scripts under scripts/eval/; tuned defaults on existing audio/highres.py and audio/filters.py (both already have the primitives in place). - Test plan: extend test_audio_filters.py + new test_audio_ensemble.py / test_cache_audio_events.py + new e2e test_phase1_e2e.py. - Commands: cache events once (~30 min), sweep filter config (seconds), conditionally run threshold sweep / ensemble. - Acceptance: composite_baseline_phase1_<date>.md + audio_filter_sweep_<date>.md + DECISIONS.md entry. - Decision tree covers pass / partial / regress cases. - Budget: ~2 days engineering on Stage A only, ~3-4 with Stage B, ~bash compute (all local CPU). Out of scope: fusion, video, training, electric-tier coverage (Phase 0 §8 user-action gated). Branch cut from main (no dependency on #11 files for the plan doc itself; the plan REFERENCES #11 files which must exist on main before Phase 1 code begins — §11).
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Plan-only PR for Phase 1 of the per-tier acceptance work. Reviewable in parallel with #11 (Phase 0 implementation); kept separate so #11 stays focused.
Goal: Pitch F1 0.915 → ≥ 0.93 on the GuitarSet validation composite, with no Onset F1 regression > 1 pp. Cheap deterministic tuning only — no training, no Modal, no §8 contract changes.
Two-stage approach:
tabvision/tabvision/audio/filters.pyand the existing knobs onHighResBackend. The trick is caching highres events once, then sweeping filter configs in seconds instead of hours.tabvision.audio.basicpitchis already Apache-2.0, default-pipeline-safe). Disagreement-downweights highres events; agreement-upweights. Only run if Stage A leaves a 1-2 pp gap.Budget: ~2 days engineering Stage A only, ~3-4 days with Stage B, ~$0 compute (all local CPU).
Gating — DO NOT MERGE-AND-START YET
Per CLAUDE.md operating rule 2 ("Phase N+1 starts only after Phase N's acceptance gate passes AND user says 'proceed.'"):
tabvision/tabvision/audio/may be modified until PR Phase 0: per-tier composite eval + first GuitarSet baseline #11 merges intomain.impl/tab-f1-phase-1is cut.This plan PR can be reviewed and approved in parallel with #11. Approval here = "Phase 1 approach is fine"; it does not authorize coding to start.
Plan doc
docs/plans/2026-05-19-tab-f1-phase-1-implementation.md— 11 sections covering:Test plan (for this PR specifically)
impl/tab-f1-phase-1→ Stage A.Meanwhile (out of scope here, in user's hands): Phase 0 long-lead items — EGDB email, free-tier compute account signups, Guitar-TECHS Zenodo download.