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
- Preview Synth playback, section/loop timing preview, stop behavior, and playhead alignment by beat/bar.
27
+
- GM Type and Instrument dropdowns with expanded Preview Synth mappings.
28
+
- Auto-Create Parts helpers for generated bass, pad, arpeggio, and drums are implemented and Playwright-covered. Roadmap moved only `[ ]` to `[.]` in this PR because the roadmap guard prohibits direct `[ ]` to `[x]`.
29
+
- Audio diagnostics for selected song, selected section, playable note count, active lanes, lane visibility/mute/solo/volume/pan summaries, current preview pack, and last playback error.
30
+
- 350px normal left Songs/Instruments column with fitting Type/Instrument dropdowns and one-line Mute/Solo/Eye/Delete icon row.
31
+
32
+
## Partially Implemented
33
+
34
+
- Track volume and pan controls: data/state support exists and old lane-header creation code still creates volume/pan controls, but the default octave timeline left Instruments list exposes Mute, Solo, Eye, and Delete only. Existing roadmap marker remains unchanged because roadmap guard does not allow downgrades.
35
+
- Rendered audio support: rendered preview playback can play declared WAV/MP3/OGG targets, but export rendering still logs not implemented.
36
+
- ToolState workflow: JSON export/copy and serializer validation exist; broader Workspace Manager save/cancel lifecycle behavior was not re-audited in this PR.
37
+
- Optional per-note duration: horizontal drag paints adjacent cells for visible duration-style editing, but there is no persisted note-duration metadata model.
38
+
39
+
## Not Implemented
40
+
41
+
- Rendered WAV/MP3/OGG export rendering.
42
+
- SoundFont playback or real instrument playback.
43
+
- DAW mixer complexity.
44
+
- Automation lanes.
45
+
- Optional piano roll.
46
+
- Optional advanced MIDI event editor beyond the current octave grid and hidden advanced lane-source text.
47
+
- Per-note velocity editing.
48
+
- Arrangement section copy/paste helpers.
49
+
- Quantize and humanize helpers.
50
+
51
+
## Broken/UAT-Blocking
52
+
53
+
No current UAT-blocking MIDI Studio V2 runtime issues were found in the audited files.
54
+
55
+
Fixed in this PR:
56
+
- The normal left Songs/Instruments column previously used `calc(14rem + 350px)` to `calc(18rem + 350px)` and was not actually 350px wide.
57
+
- The existing left-column Playwright assertion expected at least 560px, so it did not protect the required 350px layout.
58
+
59
+
Known non-blocking gap:
60
+
- The roadmap marker for track volume/pan/mute/solo is more optimistic than the current default octave timeline UI because volume/pan are not visible in the left Instruments list.
61
+
62
+
## Playwright-Covered
63
+
64
+
- UAT manifest import and multi-song selection.
65
+
- Default octave editor visibility and playable Studio workflow.
66
+
- Selected instrument note dominance and non-selected note dimming.
67
+
- Click-to-toggle note editing.
68
+
- Drag note painting and horizontal note extension.
69
+
- Chord/simultaneous note editing.
70
+
- Keyboard shortcuts for Play/Stop, deletion, selection movement, and duplication.
71
+
- Timeline scroll sync and no unexpected scroll jumps during editing.
72
+
- Compact icon-only instrument controls and tooltips.
73
+
- GM Type and Instrument dropdown usability.
74
+
- Preview Synth play/stop and timing playhead alignment.
75
+
- Auto-Create Parts helper generation for bass, pad, arpeggio, and drums.
76
+
- Guided Song Sheet valid and invalid paths.
77
+
- MIDI source inspection and local import.
78
+
- Invalid payload rejection before render.
79
+
- Roadmap/audit report existence and expected status markers for this PR.
80
+
81
+
## Manual-UAT-Needed
82
+
83
+
- Real browser audio behavior outside the mocked Playwright Web Audio/HTMLAudio environment.
84
+
- Real-device pointer dragging on touchpads and high-DPI screens.
85
+
- Manual confirmation that the 350px left column remains comfortable across expected desktop viewport sizes.
86
+
- Full Workspace Manager lifecycle save/cancel/reopen flow for MIDI Studio V2 toolState.
87
+
- Cross-browser shortcut behavior, especially Cmd+D on macOS.
88
+
- Any future SoundFont, export rendering, velocity, piano roll, automation, or mixer work.
89
+
90
+
## UNKNOWN
91
+
92
+
- Whether every prior ChatGPT PR command was executed exactly as written; this audit only trusts current files and repo reports.
93
+
- Whether external user UAT outside the repo passed for every prior MIDI Studio V2 PR.
94
+
- Whether sample JSON launch works end-to-end; sample validation remains explicitly out of scope until sample alignment.
- Continued from the highest evidence-backed applied MIDI Studio V2 PR: `PR_26146_032-midi-studio-v2-fast-note-editing-and-keyboard-flow`.
8
+
- Audited current MIDI Studio V2 implementation from files and prior repo reports, without assuming prior command text was applied.
9
+
- Created implementation audit report with implemented, partially implemented, not implemented, broken/UAT-blocking, Playwright-covered, manual-UAT-needed, and UNKNOWN sections.
10
+
- Repaired the normal MIDI Studio V2 left Songs/Instruments column to a real `350px` width.
node -e "const fs=require('fs'); const p='tools/midi-studio-v2/styles/midiStudioV2.css'; const css=fs.readFileSync(p,'utf8'); if(/\/\*[^]*$/.test(css.replace(/\/\*[^]*?\*\//g,''))) throw new Error('Unclosed CSS comment'); let depth=0; for (const ch of css.replace(/\/\*[^]*?\*\//g,'')) { if (ch==='{') depth++; if (ch==='}') depth--; if (depth<0) throw new Error('Unexpected }'); } if (depth!==0) throw new Error('Unbalanced CSS braces'); console.log('CSS syntax guard passed:', p);"
npx.cmd playwright test tests/playwright/tools/MidiStudioV2.spec.mjs -g "octave grid density supports icon controls and simultaneous chord editing|fast octave note editing supports drag painting keyboard shortcuts selection and timeline scroll sync|roadmap and implementation audit exist with actual MIDI Studio V2 status markers|generates bass pad arpeggio and drum lanes from chord grid" --config=codex_playwright_system_chrome.config.cjs --reporter=list --workers=1 --timeout=60000
33
+
git diff --check
34
+
```
35
+
36
+
## Results
37
+
38
+
- PASS: changed-file syntax checks passed for the changed MIDI Studio V2 CSS file and Playwright spec.
39
+
- PASS: targeted MIDI Studio V2 Playwright run passed, `4 passed`.
40
+
- PASS: `git diff --check` exited successfully. Git reported only line-ending notices for tracked files.
41
+
- PASS: Playwright V8 coverage artifacts were refreshed:
The targeted MIDI Studio V2 Playwright run validates:
48
+
49
+
- left Songs/Instruments column is exactly `350px` wide.
50
+
- left panel has no horizontal overflow.
51
+
- instrument controls fit inside the column.
52
+
- Mute, Solo, Eye, and Delete icon row stays on one line.
53
+
- Type and Instrument dropdowns fit horizontally and remain usable.
54
+
- current Play and Stop behavior still works through the fast-editing keyboard test.
55
+
- roadmap file exists and contains execution-backed status markers.
56
+
- implementation audit and validation files exist and reflect actual implementation status.
57
+
- drag painting, selection highlight, keyboard shortcuts, scroll sync, and chord editing still work.
58
+
- Auto-Create Parts helpers still generate bass, pad, arpeggio, and drums.
59
+
60
+
## Roadmap Marker Updates
61
+
62
+
-`[.]` to `[x]`: Song setup fields for tempo, key, style, intro, and loop.
63
+
-`[ ]` to `[.]`: Auto-Create Parts helpers for generated bass, pad, arpeggio, and drums.
64
+
-`[.]` to `[x]`: Diagnostics for audio state, selected song, selected section, active lanes, and warnings.
65
+
66
+
No roadmap content was rewritten; only status markers changed.
67
+
68
+
## Lanes
69
+
70
+
- tool runtime: executed through CSS/spec changes and targeted MIDI Studio V2 Playwright because this PR changes tool layout and verifies preserved editing/playback behavior.
71
+
- contract/docs: executed through roadmap/audit file assertions and required report creation.
72
+
- integration: skipped because Workspace handoff contracts did not change.
73
+
- engine: skipped because no engine/shared runtime files changed.
74
+
- samples: skipped by explicit PR instruction. Full samples smoke test was not run.
75
+
- recovery/UAT: covered only for the MIDI Studio V2 audit and 350px left-column repair slice named by this PR.
Copy file name to clipboardExpand all lines: docs/dev/roadmaps/MIDI_STUDIO_V2_ROADMAP.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,12 +10,12 @@
10
10
-[x] Tabs organize Studio, Song Setup, Instruments, Auto-Create Parts, and Diagnostics; MIDI Import lives under Selected Song Details and export actions live in the action bar.
11
11
-[x] Editable note/timeline grid remains the primary music studio editing surface.
12
12
-[x] Track volume, pan, mute, and solo controls live on instrument timeline rows.
13
-
-[.] Song setup fields for tempo, key, style, intro, and loop.
13
+
-[x] Song setup fields for tempo, key, style, intro, and loop.
14
14
-[x] MIDI import conversion to editable tracks.
15
15
-[ ] Rendered WAV/MP3/OGG export.
16
16
-[ ] SoundFont and real instrument playback.
17
-
-[] Auto-Create Parts helpers for generated bass, pad, arpeggio, and drums.
18
-
-[.] Diagnostics for audio state, selected song, selected section, active lanes, and warnings.
17
+
-[.] Auto-Create Parts helpers for generated bass, pad, arpeggio, and drums.
18
+
-[x] Diagnostics for audio state, selected song, selected section, active lanes, and warnings.
expect(roadmap).toContain("[x] Real UAT manifest fixture includes multiple MIDI Studio songs.");
1173
1194
expect(roadmap).toContain("[x] Playable upbeat public-domain/traditional-style test song arrangement includes Lead, Bass, Chords/Pad, and Drums.");
1174
1195
expect(roadmap).toContain("[x] Tabs organize Studio, Song Setup, Instruments, Auto-Create Parts, and Diagnostics; MIDI Import lives under Selected Song Details and export actions live in the action bar.");
1175
1196
expect(roadmap).toContain("[x] Track volume, pan, mute, and solo controls live on instrument timeline rows.");
1197
+
expect(roadmap).toContain("[x] Song setup fields for tempo, key, style, intro, and loop.");
1176
1198
expect(roadmap).toContain("[x] MIDI import conversion to editable tracks.");
0 commit comments