Phase 8: Add stereo track mixer, automation and undo/redo

This commit is contained in:
Johannes Findeisen 2026-10-27 01:06:57 +01:00
commit 7db5fb7738
45 changed files with 1611 additions and 130 deletions

View file

@ -17,7 +17,7 @@ This repository is a starter scaffold, not a production DAW. It currently provid
- a mono graph model with port validation, cycle rejection and topological ordering;
- compiled offline plans with preallocated buffers, sine oscillator, audio source, gain, meter and output nodes;
- C tests for deterministic rendering, routing, validation and lifecycle;
- an optional JACK-compatible mono backend with start/stop, routing and status;
- an optional JACK-compatible backend with mono input and mono/stereo output with start/stop, routing and status;
- safe control/audio plan handoff and concurrent replacement tests;
- an optional FLTK shell with engine controls, view switching and backend status;
- a modular graph editor with transactional edits and live plan adoption status;
@ -25,6 +25,8 @@ This repository is a starter scaffold, not a production DAW. It currently provid
- sample-counted transport, selection, move/trim, timeline zoom and scrolling;
- WAV import/graph playback, bounded recording and missing-asset relinking;
- MIDI clips, a sine instrument, JACK MIDI input and a basic piano roll;
- stereo track gain/pan/mute/solo, output meters and gain/pan automation lanes;
- bounded undo/redo with keyboard shortcuts;
- architecture, format, GUI, roadmap, and decision documents.
The JACK backend has passed software-loopback testing; physical-device playback
@ -65,7 +67,11 @@ select a missing clip and use File/Relink selected audio to repair it.
Add MIDI clip on an existing track, then open Piano roll (Ctrl+4) to draw notes.
Connect a MIDI source to the JACK `midi_in` port for live playing; Panic/F9
silences held notes. See [MIDI workflow and limits](docs/MIDI.md).
See [audio workflow and limits](docs/AUDIO_FILES.md). The mixer remains a placeholder.
See [audio workflow and limits](docs/AUDIO_FILES.md).
Mixer (Ctrl+2) selects a track for gain/pan/mute/solo and automation editing.
Ctrl+Z undoes; Ctrl+Shift+Z or Ctrl+Y redoes up to 32 edits.
The GUI now exposes left `output` and `output_right` JACK ports; route both
explicitly for stereo. See [mixer workflow and limits](docs/MIXER.md).
Use Add track/Add region, drag regions or their edges, and Zoom +/-; scrollbars pan.
Ctrl+N/O/S creates, opens or saves a project; Save As chooses another path.
Arrangement edits stop playback; graph edits remain live.