xtc/src/project
2026-11-06 00:42:33 +01:00
..
editing.c feat: generate bounded ascending and descending MIDI arpeggio patterns 2026-11-06 00:42:33 +01:00
history.c Phase 27: strengthen undo transactions and improve editor workflow 2026-10-27 16:49:30 +01:00
project.c feat: plan composition phases and persist named arrangement markers 2026-11-06 00:29:48 +01:00
project_internal.h feat: plan composition phases and persist named arrangement markers 2026-11-06 00:29:48 +01:00
README.md Phase 8: Add stereo track mixer, automation and undo/redo 2026-10-27 01:06:57 +01:00
sections.c feat: ripple timeline ranges with markers and automation atomically 2026-11-06 00:32:33 +01:00

Project model

project.c owns the opaque C project: graph, bounded tracks, silent/audio arrangement regions and external asset references, tempo and stable ID allocation. The GUI borrows handles and edits through xtc_project.h. Tick/sample conversion and source-preserving trim validation live here; no FLTK, file I/O or callback scheduling belongs in this module.

Phase 8 adds track mix settings, bounded automation and 32-edit C snapshot history in history.c. Checkout/accept separates candidate installation from history cursor movement; allocation IDs stay monotonic across history branches. See ../../docs/MIXER.md.