You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# PR_26146_042 MIDI Studio V2 Single Studio Octave Editor Validation
2
+
3
+
Status: PASS
4
+
5
+
## Scope
6
+
7
+
- Kept a single Octave Timeline editor DOM instance and made it visible only on the Studio tab.
8
+
- Removed the visible editor from Instruments and Auto-Create Parts while preserving Auto-Create setup controls.
9
+
- Preserved the Studio tab grid as the source of truth for playback, editing, zoom, vertical scrolling, section feedback, and selected instrument highlighting.
10
+
- Preserved PR041 piano colors and Bar/Beat `#3600af` header color.
11
+
- Changed piano-key shape only: natural keys remain full width and sharp/flat keys are visually indented/narrower while labels stay left-aligned.
node -e "const fs=require('fs'); for (const file of ['tools/midi-studio-v2/styles/midiStudioV2.css']) { const text=fs.readFileSync(file,'utf8'); let depth=0; for (const ch of text) { if (ch==='{') depth++; if (ch==='}') depth--; if (depth<0) throw new Error(file+': unexpected }'); } if (depth!==0) throw new Error(file+': unbalanced braces'); console.log(file+': CSS brace check OK'); }"
37
+
npx.cmd playwright test tests/playwright/tools/MidiStudioV2.spec.mjs -g "octave timeline freezes compact headers and note labels while active cells stay textless|fast octave note editing supports drag painting keyboard shortcuts selection and timeline scroll sync|renders timing ruler, section navigation, and loop region visualization" --config=codex_playwright_system_chrome.config.cjs --reporter=list --workers=1 --timeout=60000
38
+
git diff --check
39
+
```
40
+
41
+
Playwright result:
42
+
43
+
```text
44
+
Running 3 tests using 1 worker
45
+
46
+
ok 1 MIDI Studio V2 - fast octave note editing supports drag painting keyboard shortcuts selection and timeline scroll sync
47
+
ok 2 MIDI Studio V2 - octave timeline freezes compact headers and note labels while active cells stay textless
48
+
ok 3 MIDI Studio V2 - renders timing ruler, section navigation, and loop region visualization
49
+
50
+
3 passed
51
+
```
52
+
53
+
Notes:
54
+
55
+
- An initial targeted run failed because the piano-label CSS accidentally overrode sticky positioning. The CSS was corrected, and the final targeted run passed.
56
+
-`git diff --check` exited 0. Git emitted line-ending warnings for touched files; no whitespace errors were reported.
57
+
- Full samples smoke test was not run.
58
+
59
+
## Test Evidence
60
+
61
+
- Only one editor exists: Playwright verifies one `#instrumentGridOutput`, one `#instrumentGridHeading`, and one `.midi-studio-v2__octave-timeline`.
62
+
- Remaining editor is Studio-only: Playwright verifies `#instrumentGridOutput` is tagged for the Studio tab, visible on Studio, and hidden on Auto-Create Parts and Instruments.
63
+
- Playback/editing uses Studio grid: Playwright performs note editing and Play/Stop on the Studio grid after tab switching.
64
+
- Sharp/flat keys are indented/narrower: Playwright compares black-key `::before` left offset and width against the natural key.
65
+
- Natural keys are full width: Playwright verifies the white-key shape width matches the label column width.
66
+
- Piano key text remains left-aligned: Playwright verifies text alignment and grid justification for white and black keys.
67
+
- Grid row alignment is preserved: Playwright verifies label/cell top and height deltas remain within 1px and frozen labels remain visible during horizontal scroll.
68
+
- Play and Stop still work: Playwright verifies existing keyboard/button Play/Stop behavior through the targeted MIDI Studio V2 tests.
69
+
70
+
## Samples
71
+
72
+
Full samples smoke test: SKIP.
73
+
74
+
Reason: PR scope is limited to MIDI Studio V2 tool UI/runtime and targeted Playwright coverage; sample JSON alignment and full samples smoke are explicitly out of scope.
75
+
76
+
## Manual UAT
77
+
78
+
1. Open MIDI Studio V2 and import the UAT manifest.
79
+
2. Confirm the Octave Timeline editor is visible on Studio.
80
+
3. Switch to Instruments and Auto-Create Parts and confirm no duplicate octave editor is visible.
81
+
4. Return to Studio, edit a note, use zoom, and scroll vertically/horizontally.
82
+
5. Confirm black piano keys are visibly indented/narrower and text remains readable.
83
+
6. Press Play and Stop and confirm playback still uses the Studio grid.
0 commit comments