1
0
Fork 0
forked from hanez/xtc

Phase 5: Add project persistence and sequencer foundation

This commit is contained in:
Johannes Findeisen 2026-10-27 00:10:45 +01:00
commit 65640c4aad
28 changed files with 1307 additions and 84 deletions

View file

@ -21,11 +21,12 @@ This repository is a starter scaffold, not a production DAW. It currently provid
- 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;
- versioned project save/load and a timeline for tracks and silent regions;
- sample-counted transport, selection, move/trim, timeline zoom and scrolling;
- architecture, format, GUI, roadmap, and decision documents.
The JACK backend has passed software-loopback testing; physical-device playback
is unverified. Recording, MIDI, plugin hosting, project persistence, and the
actual sequencer UI are not implemented yet.
is unverified. Recording, audio-region playback, MIDI and plugin hosting are not implemented yet.
## Build
@ -55,7 +56,10 @@ Run the GUI:
The GUI opens JACK and offers Play/Stop/Reconnect, backend status and view
switching. The initial empty graph is silent. Modular Graph supports adding,
moving and deleting oscillator/gain/meter/output nodes and connecting ports.
Sequencer playback and the mixer editor are not implemented. F5 starts, F8 stops, Space toggles, F6 reconnects, and Ctrl+1/2/3
Sequencer regions are currently silent; the mixer editor remains a placeholder.
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.
The ruler seeks while stopped. Stop pauses; Reconnect and project load reset position. F5 starts, F8 stops, Space toggles, F6 reconnects, and Ctrl+1/2/3
switches views. Ctrl+Q closes the client and window. No physical ports are
connected automatically. In Modular Graph, drag output to input to connect;
select a node or wire and press Delete to remove it. Invalid edits leave the