Skip to content

lab: project legato to same-string voice targets - #207

Merged
PhysShell merged 3 commits into
mainfrom
claude/lab-legato-projection-fix
Sep 21, 2026
Merged

PhysShell merged 3 commits into
mainfrom
claude/lab-legato-projection-fix

Conversation

@PhysShell

Copy link
Copy Markdown
Owner

Summary

  • resolve each Guitar Pro legato origin to the first strictly later note in the same imported voice on the same original string, before TabLine slicing
  • represent retained technique relations as sparse (from, to, kind) edges, including targets beyond intervening onsets on other strings
  • carry open legato-origin strings through the exact technique DP so non-adjacent and overlapping relations retain the existing hard/soft/waiver formulas
  • distinguish truly unresolved origins from resolved targets outside the current line
  • re-run and update the Stage 2 audit without changing any weights, learner, objective stage, or penalty formula

Regression coverage

The tests pin all four projection cases:

  1. immediate same-string target
  2. intervening notes on other strings
  3. target beyond the TabLine boundary
  4. no later note on the origin string

The chain encoding is also checked against brute force for non-adjacent and overlapping edges.

Re-measurement

On the same 410-file corpus:

  • retained relations: 29,758 / 29,758 same-string
  • projection-induced cross-string edges: 61 → 0
  • unresolved origins: 0
  • resolved cross-line targets: 46
  • legato-violators.jsonl: 0 rows
  • hard-stage human infeasibility: 19 lines / 61 edges → 0

Primary v1-fit, 226 tapped lines:

  • B exactness: 0.9%
  • C1 hard continuity: 13.3%; gap to matched baseline 7.6 pt
  • D1 hard + pull-open waiver: 16.8%; gap 4.2 pt
  • every human path is now feasible under C1/D1

Validation

  • cargo fmt --all -- --check
  • cargo test --release --locked --offline -j 1 — 115 tests passed
  • cargo clippy --all-targets --locked --offline -j 1 -- -D warnings -A clippy::too_many_lines -A clippy::items_after_statements
    • the two allowed lints are existing Constraint Lab baseline warnings
  • fingering_gap legato-census
  • fingering_gap legato

The commit sequence preserves the required red regression-test commit before the implementation commit.

@coderabbitai

coderabbitai Bot commented Sep 21, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 151a0fca-9412-469a-9aa6-8c21b2664bf2


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@PhysShell
PhysShell merged commit 08cdc2d into main Sep 21, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant