From 22f92ccc66cb62f805cc19eb6b2e616ed317e580 Mon Sep 17 00:00:00 2001 From: ChrisBeWithYou Date: Sat, 4 Jul 2026 00:22:38 -0500 Subject: [PATCH 01/11] feat(editor): unified create modal with first-class Blank (audio-only) The create modal labelled its Guitar Pro / EOF XML inputs "optional" but hard-disabled Create unless one was picked, and its blank-chart options (initial arrangement + drum tab) were never wired up -- so an audio-only feedpak could only be made via a separate "New Sloppak" dialog. Add an explicit Blank / Guitar Pro / EOF XML mode picker (Blank default): - Blank shows the initial-arrangement toggle (Lead/Rhythm/Bass) + a drum-tab option, enables Create on audio + title + artist, routes to the existing create_sloppak backend, and opens the new feedpak in the editor. - GP / EOF keep their import flows; only the active mode's section shows. - The "New" chooser's entries now open this one unified modal (Blank / GP mode) instead of a parallel dialog. - Rename the toolbar's "Build Song" button to "Build feedpak". The Create-button enable logic is factored into a pure _createGateOpen() covered by tests/create_gate.test.js (per-mode enable). screen.js parses clean; all 13 JS suites pass. Deferred (backend work / follow-ups): Keys/Drums-as-arrangement + extended tunings; removing the now-unreferenced standalone New-Sloppak dialog; the editor-header trim. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 17 ++++ screen.html | 26 ++++-- screen.js | 169 +++++++++++++++++++++++++++++++++++--- tests/create_gate.test.js | 66 +++++++++++++++ 4 files changed, 257 insertions(+), 21 deletions(-) create mode 100644 tests/create_gate.test.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 19b3d8d0..67cd8ad4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 "fret" no longer reads as an arbitrary number. Tests: `tests/anchor_authoring.test.js` (full-set promotion on click + on add-new, undo-restores-fallback, idempotent-when-authored). +- **Create a song from audio alone — "New…" no longer forces a Guitar Pro / EOF + file.** The create modal labelled its Guitar Pro and EOF XML inputs *optional* + but hard-disabled the Create button unless one was picked, and its + blank-chart options (initial arrangement + drum tab) were never wired up — so + an audio-only feedpak could only be made through a second, separate "New + Sloppak" dialog. The modal now leads with an explicit **Blank / Guitar Pro / + EOF XML** mode picker (Blank is the default): Blank shows the initial- + arrangement toggle (Lead / Rhythm / Bass) + a drum-tab option and enables + Create on audio + title + artist, routing to the existing `create_sloppak` + backend and opening the new feedpak straight in the editor; the GP and EOF + modes keep their import flows. The "New" chooser's entries now open this one + unified modal (in Blank / GP mode) instead of a parallel dialog, and the + toolbar's **Build Song** button is renamed **Build feedpak**. Tests: + `tests/create_gate.test.js` (per-mode Create-button enable logic). Keys / + Drums-as-arrangement and extended tunings still need `create_sloppak` backend + work (tracked separately); the now-unreferenced standalone New-Sloppak dialog + can be removed in a follow-up. ### Changed - **The audio lane now draws a real waveform.** It previously showed a diff --git a/screen.html b/screen.html index 7e3c8562..ec742008 100644 --- a/screen.html +++ b/screen.html @@ -23,7 +23,7 @@ - + @@ -165,17 +165,27 @@
- +
- +
+ + + +
+

+
+ + + - -
- + +
- -