Phase 33: add a flat modern DAW workspace and track creation workflow
This commit is contained in:
parent
fe484537f9
commit
d800a6392e
19 changed files with 711 additions and 115 deletions
|
|
@ -279,3 +279,8 @@ VST2 compatibility uses original ABI declarations. `make test-modern-plugins`
|
|||
runs original shared-library fixtures without a server; `make test-gui-modern-plugins`
|
||||
adds GUI/browser/undo/reopen tests under Xvfb. The fixtures also run in `make test`
|
||||
and therefore in sanitizer/release builds. Notices are installed with LICENSE.
|
||||
|
||||
Phase 33 uses a header-only FLTK theme and existing drawing primitives; no new
|
||||
GUI dependency or generated asset is required. `make test-gui-instruments` also
|
||||
exercises sidebar track creation, rollback, undo/reopen and minimum/large layouts.
|
||||
See WORKSPACE.md for the default size and manual visual verification.
|
||||
|
|
|
|||
|
|
@ -61,3 +61,10 @@ layouts remain unsupported. No third-party modern plugin has been qualified.
|
|||
Phase 32 adds CLAP/VST2/VST3 mono instruments bound to MIDI tracks, sample-offset
|
||||
notes, a saved live target, track mixing, GUI assignment/undo and v12 persistence.
|
||||
See PLUGIN_HOSTING.md for compatibility and controller/state limits.
|
||||
|
||||
Phase 33 adds a flat DAW workspace, shared dark theme, track-creation sidebar,
|
||||
read-only musical transport/track inspector, colored track clips and real MIDI
|
||||
previews. New MIDI/audio track commands are undoable and prepare candidates
|
||||
before adoption. The default window is 1280 × 800, minimum 1220 × 720.
|
||||
No dependency or project-format change. See WORKSPACE.md and the new
|
||||
`modern-session.xtc` example; existing engine/plugin limitations still apply.
|
||||
|
|
|
|||
|
|
@ -931,6 +931,35 @@ installation, reproducible source releases and relocatable binary packages pass.
|
|||
|
||||
---
|
||||
|
||||
## Phase 33 — Flat Modern DAW Workspace
|
||||
|
||||
### Goal
|
||||
Give xtc a clear, modern DAW presentation for creating tracks and arranging
|
||||
music, with simple flat controls and no 3D styling or proprietary assets.
|
||||
|
||||
### Tasks and acceptance criteria
|
||||
- [x] Introduce one shared dark palette, typography, flat controls and focus/selection accents.
|
||||
- [x] Make track creation, import, instrument loading and MIDI editing visible in a persistent sidebar.
|
||||
- [x] Create/select MIDI tracks with clips and audio tracks transactionally, with undo and failure rollback.
|
||||
- [x] Organize transport, musical position/BPM, main editors, inspector and status in a resizable workspace.
|
||||
- [x] Draw colored track headers, clear clip selection, bar/beat grids and actual MIDI note previews.
|
||||
- [x] Preserve existing editing, mixer/automation, graph, plugin, recording and keyboard behavior.
|
||||
- [x] Add an original multi-track example and document the workflow and retained limitations.
|
||||
- [x] Verify GUI actions, minimum/large layouts, core regressions and release packaging.
|
||||
|
||||
### Implementation status
|
||||
Implemented in the FLTK GUI without new dependencies, engine changes or a project
|
||||
format change. Default workspace 1280 × 800; supported minimum 1220 × 720.
|
||||
Track creation is a single undoable prepared-model edit. The transport and
|
||||
sidebar inspector are read-only displays; existing editors retain their controls.
|
||||
Original four-track example visually checked; GUI tests cover creation,
|
||||
selection, rollback, undo/reopen and minimum/large window sizes. This phase
|
||||
modernizes presentation and workflow; it does not claim commercial-DAW feature
|
||||
parity or add docking, scanning or mixer channel-strip functionality.
|
||||
See WORKSPACE.md for the workflow, tests and limits.
|
||||
|
||||
---
|
||||
|
||||
## Recommended Execution Order
|
||||
|
||||
Reorder the phases when the audit reveals a blocking dependency. Do not mark a phase complete merely because code exists: its acceptance criteria must be demonstrated by builds, tests, or documented manual verification.
|
||||
|
|
|
|||
|
|
@ -199,3 +199,10 @@ Do not unload/replace modules during playback; candidate plans are prepared off
|
|||
the callback and old instances are reclaimed on the control thread. Missing
|
||||
references remain inspectable without loading; failed GUI preparation retains
|
||||
the current project. Save a backup for applications limited to v11 or earlier.
|
||||
|
||||
## Phase 33 workspace
|
||||
|
||||
The flat workspace puts New MIDI/audio track, WAV import and instrument loading
|
||||
in a persistent sidebar, with a musical transport display and selected-track
|
||||
overview. See [WORKSPACE.md](WORKSPACE.md) for shortcuts and workflow. Open
|
||||
`modern-session.xtc` in the installed examples for an original four-track arrangement.
|
||||
|
|
|
|||
57
docs/WORKSPACE.md
Normal file
57
docs/WORKSPACE.md
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
# Flat DAW workspace
|
||||
|
||||
Phase 33 presents the existing xtc editors in a consistent flat workspace. It uses
|
||||
FLTK vector drawing and system fonts: no images, shadows, bevels, 3D rendering,
|
||||
external theme packages or new runtime dependencies.
|
||||
|
||||
The default window is 1280 × 800; the supported minimum is 1220 × 720. The main
|
||||
editor grows with the window. Use the scrollbars for longer arrangements and
|
||||
larger track counts. The sidebar stays available across Sequencer, Mixer and
|
||||
Modular Graph views. Ctrl+1/2/3 switches those views; Ctrl+4 opens the piano roll.
|
||||
|
||||
## Create and arrange
|
||||
|
||||
- **New MIDI track** (Ctrl+Shift+M) creates a named track and a one-bar MIDI clip
|
||||
at the cursor. The new clip and mixer track are selected together. **Edit MIDI
|
||||
notes** opens its piano roll. Creation is one undo step.
|
||||
- **New audio track** (Ctrl+Shift+A) creates an empty named track. **Import WAV**
|
||||
imports into the selected track, or creates one when none is selected.
|
||||
- **Load instrument plugin** opens the instrument browser for the selected
|
||||
sequencer track. Unassigned MIDI tracks retain the built-in sine instrument.
|
||||
- Existing Add track/region/MIDI clip, duplication, trimming, split, rename and
|
||||
delete commands remain available. F2 renames the selection. Drag clips to move
|
||||
them and their edges to trim them; click the ruler to seek while stopped.
|
||||
|
||||
Creating a track uses candidate preparation, so module, capacity or allocation
|
||||
failures retain the current project. As with other project replacements, the
|
||||
engine stops and the transport returns to the beginning. Track creation is
|
||||
unavailable while recording. No track type restriction is added to the model:
|
||||
ordinary tracks still accept the existing audio and MIDI workflows.
|
||||
|
||||
Track headers show a stable color, name, order and mute/solo state. Clip colors
|
||||
follow track identity through reordering. MIDI previews show real note starts,
|
||||
durations and relative pitches; waveforms continue to show loaded audio data.
|
||||
The selected clip has a light outline. A teal playhead and bar grid make musical
|
||||
time visible. The transport display reads **bar : beat : tick** (4/4, 960 ticks
|
||||
per beat); BPM follows the project tempo. These displays are read-only.
|
||||
|
||||
The sidebar inspector follows the sequencer selection, showing track name,
|
||||
gain/pan, mute/solo and assigned instrument. Use the Mixer for controls, routing,
|
||||
meters and automation; the sidebar is an overview, not another mixer. Status and
|
||||
errors remain visible below the editor. Existing engine connection, transport,
|
||||
recording and keyboard safety behavior is retained.
|
||||
|
||||
## Example and verification
|
||||
|
||||
Open `examples/projects/modern-session.xtc` for an original four-track, four-bar
|
||||
MIDI arrangement with 16 clips and 128 notes. It needs no media or plugins. It is
|
||||
also installed with the project examples. Connect JACK playback ports before
|
||||
listening. Work on a copy if the installed examples are read-only.
|
||||
|
||||
GUI tests exercise sidebar creation, selected clip/editor access, undo/redo,
|
||||
failed preparation, save/reopen and layout at 1220 × 720 and 1600 × 1000. The
|
||||
running example was also inspected at 1280 × 800. Existing GUI plugin, live JACK
|
||||
and workflow tests cover the retained commands. A modern presentation does not
|
||||
add commercial-DAW features: detachable/resizable docks, mixer channel strips,
|
||||
automatic plugin scanning, custom plugin editors and new audio/MIDI features
|
||||
remain outside this phase. Existing plugin and engine limits still apply.
|
||||
Loading…
Add table
Add a link
Reference in a new issue