xtc/src/project
2026-11-06 02:16:46 +01:00
..
chain_preset.c feat(presets): save and adopt reusable effect chains (phase 87) 2026-11-06 01:40:13 +01:00
chain_tools.c feat(inserts): add bulk enable, bypass and clear actions (phase 95) 2026-11-06 02:07:19 +01:00
crossfade.c feat(audio): crossfade overlapping clips in one undoable edit (phase 98) 2026-11-06 02:12:09 +01:00
editing.c feat(midi): strum chords with preserved note ends and undo (phase 99) 2026-11-06 02:16:46 +01:00
history.c Phase 27: strengthen undo transactions and improve editor workflow 2026-10-27 16:49:30 +01:00
project.c feat(mixer): control insert wet mix and chain output gain (phase 88) 2026-11-06 01:41:23 +01:00
project_internal.h feat(project): persist bounded per-track effect chains (phase 81) 2026-11-06 01:34:08 +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.