Repository navigation
fix(generators): interval-aware power chord — the drop-tuning barre (v0.1.14) - #8
ChrisBeWithYou wants to merge 2 commits into
Conversation
…ination) The v0.1.11 host-settings sync treats an empty localStorage as a fresh install and ADOPTS host config on boot. Smoke pages always boot with empty localStorage, and any suite whose panel drives dispatch real change events WRITES THROUGH to the persistent host config - so a later suite (or a later run) could boot into whatever instrument the previous one left (the panel flipped to bass mid-suite; smoke-strings rows 3/4 went red, and this is the likely mechanism behind the contained-verifier/level-gate-async flakes under the parallel run-all). Fix: every suite (and driver.mjs) seeds localStorage['virtuoso.instrument'] with the 6-string-standard default via addInitScript BEFORE page scripts run. The boot reconcile then takes the local-wins path - deterministic panel state regardless of suite ordering, and each boot heals the host config for the suites after it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MS2YFb6UUSwJVV6CmEa25i
…rre (v0.1.14)
powerChordGrip hardcoded the standard-4ths offsets (+2 on s1/s2), so in every
tuning where the s0->s1 interval is a FIFTH (drop-D/C/B, drop-A, the bass
drops, DADGAD, Open D) the '5'/'5oct' grip sounded root + MAJOR 6TH instead of
root + 5th - a real wrong pitch on the strum_comp/pickStrumGrip path.
Fret offsets are now computed BY PITCH against the actual open intervals:
in a drop tuning the grip collapses to the iconic one-finger SAME-FRET barre
{s0:F, s1:F, s2:F} = root-5th-octave; standard tuning keeps {F, F+2, F+2}
unchanged. Guitar-pedagogy 2026-07-12: gate on the interval (DADGAD/Open D are
TRUE positives - the barre is the idiomatic voicing there), apply by default
(the barre is the only correct voicing in a drop tuning), F=0 is a valid open
voicing; templateFromPositions already fingers a same-fret row as a shared
index barre (fg 1) by construction. Negative-fret guard bails on hostile
custom tunings. (buildPedalRiffExercise's own s1/s2/s3 power chord was already
interval-correct - untouched.)
Smoke: smoke-strings row (14) - drop-D 5oct = same-fret barre sounding
root-5th-octave; standard grip unchanged. Full run 16/19 (the 3 pre-existing
base reds); the contained-verifier/level-gate flakes stayed green with the
suite seeding from the previous commit.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MS2YFb6UUSwJVV6CmEa25i
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Landed on |
What
powerChordGrip(the movable root+5th[+octave] grip behindstrum_comp's5/5octqualities) hardcoded the standard-4ths offsets (+2on s1/s2). In every tuning where s0→s1 is a fifth — drop-D/C/B, drop-A, the bass drops, DADGAD, Open D — it sounded root + major 6th instead of root + 5th. Real wrong pitch, found by guitar-pedagogy while speccing the drop-barre primitive metal-idiom flagged.Fix: offsets computed by pitch against the actual open intervals. Drop tuning → the grip collapses to the iconic one-finger same-fret barre
{s0:F, s1:F, s2:F}= root·5th·octave. Standard stays{F, F+2, F+2}byte-identical.Pedagogy verdicts (guitar-pedagogy, 2026-07-12)
fg 1index barre comes free:templateFromPositionsfingers same-fret rows as a shared-finger barre by construction.buildPedalRiffExercise's own power chord (s1/s2/s3, all 4ths in standard and drop) was already correct — untouched.Also in this PR (first commit)
Harness contamination fix: the v0.1.11 host-settings sync adopts host config on an empty localStorage (fresh install) — but smoke pages always boot empty, and suites' panel drives write through to the persistent host config, so suites could boot into the previous suite's instrument (this made smoke-strings rows 3/4 flip to bass mid-run, and is the likely mechanism behind the earlier
contained-verifier/level-gate-asyncconcurrency flakes). Every suite + driver.mjs now seeds the L1 store viaaddInitScript→ deterministic local-wins boot, self-healing host config.Verification
5oct= same-fret barre sounding root·5th·octave (was root·M6·octave); standard grip unchanged.🤖 Generated with Claude Code
https://claude.ai/code/session_01MS2YFb6UUSwJVV6CmEa25i