|
| 1 | +# PR_26146_027 MIDI Studio V2 Instrument Import And Layout Repair Validation |
| 2 | + |
| 3 | +## Status |
| 4 | + |
| 5 | +PASS |
| 6 | + |
| 7 | +## Scope Completed |
| 8 | + |
| 9 | +- Added per-row Type group and Instrument dropdowns in the visible timeline row header. |
| 10 | +- Type changes repopulate Instrument options and update the row label to the selected instrument. |
| 11 | +- Removed the Advanced Raw Song Sheet UI and raw parser button from the primary workflow. |
| 12 | +- Moved MIDI Import into Selected Song Details and removed MIDI Import and Export from the main tab row. |
| 13 | +- Added a local MIDI file picker for `.mid` and `.midi` files. |
| 14 | +- Avoided default hard-coded MIDI source fetches during normal UAT; missing MIDI source paths only appear when inspecting a selected song that declares one. |
| 15 | +- Compacted instrument row layout and left volume/pan controls behind icon toggles. |
| 16 | +- Added `+` row creation from the Instrument header and delete actions per timeline row. |
| 17 | +- Add/delete row actions update the selected song arrangement, playback source data, status, and diagnostics. |
| 18 | +- Fullscreen keeps transport and left timeline context while giving the center timeline more horizontal width. |
| 19 | +- Preserved manifest import, multiple songs, editable Selected Song Details, consolidated Song Sheet, timeline playback, playhead, Stop All Audio, and export WARN behavior. |
| 20 | + |
| 21 | +## Validation Commands |
| 22 | + |
| 23 | +- PASS: `node --check tools/midi-studio-v2/js/controls/InstrumentGridControl.js` |
| 24 | +- PASS: `node --check tools/midi-studio-v2/js/MidiStudioV2App.js` |
| 25 | +- PASS: `node --check tests/playwright/tools/MidiStudioV2.spec.mjs` |
| 26 | +- PASS: `node --check tools/midi-studio-v2/js/services/MidiSourceInspectionService.js` |
| 27 | +- PASS: `node --check src/engine/audio/PreviewInstrumentPacks.js` |
| 28 | +- PASS: `node --check src/engine/audio/PreviewSynthEngine.js` |
| 29 | +- PASS: `node --check tools/midi-studio-v2/js/bootstrap.js` |
| 30 | +- PASS: `node --check tools/midi-studio-v2/js/controls/MidiSourceDetailsControl.js` |
| 31 | +- PASS: `node --check tools/midi-studio-v2/js/controls/SongSheetControl.js` |
| 32 | +- PASS: `rg --pcre2 -n '<style|on(click|change|input|submit)=|<script(?![^>]*src)' tools/midi-studio-v2/index.html; if ($LASTEXITCODE -eq 1) { exit 0 }` |
| 33 | +- PASS: `npx playwright test tests/playwright/tools/MidiStudioV2.spec.mjs -g "imports UAT manifest|imports a local MIDI source|removes the Advanced Raw Song Sheet|keeps MIDI source inspection|expands and restores" --reporter=list --workers=1 --timeout=60000` |
| 34 | +- PASS: `npx playwright test tests/playwright/tools/MidiStudioV2.spec.mjs -g "roadmap exists|applies Preview Synth instruments|clears status content" --reporter=list --workers=1 --timeout=60000` |
| 35 | +- PASS: `git diff --check` |
| 36 | + |
| 37 | +## Playwright Proof Points |
| 38 | + |
| 39 | +- UAT manifest JSON imports through Import JSON Manifest. |
| 40 | +- Multiple UAT songs are listed and selectable. |
| 41 | +- Frog Hop and Coal Mine Descent fixture songs still load into the visible timeline. |
| 42 | +- Main UAT song populates visible note cells and playable Preview Synth data. |
| 43 | +- Type dropdown exists per row and Instrument options update when Type changes. |
| 44 | +- Row label follows the selected instrument. |
| 45 | +- Volume and pan icon controls reveal sliders. |
| 46 | +- Advanced Raw Song Sheet is absent. |
| 47 | +- MIDI Import appears under Selected Song Details. |
| 48 | +- Export tab and MIDI Import tab are absent from the main tabs. |
| 49 | +- MIDI file picker accepts `.mid,.midi`. |
| 50 | +- Local MIDI file import creates a selected song without default HTTP 404 noise. |
| 51 | +- Instrument rows are compact in their collapsed state. |
| 52 | +- `+` adds a timeline instrument row and delete removes it. |
| 53 | +- Add/delete row changes update selected-song arrangement playback data. |
| 54 | +- Fullscreen preserves transport and side context while expanding the center timeline. |
| 55 | +- Play starts audible preview state and Stop All Audio clears playback. |
| 56 | + |
| 57 | +## Coverage |
| 58 | + |
| 59 | +- `docs/dev/reports/playwright_v8_coverage_report.txt` was refreshed by the targeted Playwright runs. |
| 60 | +- `docs/dev/reports/coverage_changed_js_guardrail.txt` was refreshed. |
| 61 | +- Advisory warning remains for `tools/midi-studio-v2/js/MidiStudioV2App.js` function coverage below 50%; all reported lines executed in the targeted browser run. |
| 62 | + |
| 63 | +## Explicit Non-Runs |
| 64 | + |
| 65 | +- Full samples smoke was not run per request. |
| 66 | +- Sample JSON was not modified. |
0 commit comments