Phase 5: Add project persistence and sequencer foundation
This commit is contained in:
parent
5c41d7f6da
commit
65640c4aad
28 changed files with 1307 additions and 84 deletions
|
|
@ -181,3 +181,25 @@ or publish audio plans. Empty graphs and graphs without explicit outputs are
|
|||
silent under the GUI policy. Terminal fallback remains the default for earlier
|
||||
offline/standalone callers. Input on unconnected nodes retains the existing
|
||||
external-input contract; the GUI does not connect external JACK ports.
|
||||
|
||||
|
||||
## Phase 5 transport
|
||||
|
||||
Backend status includes a uint64 sample_position. Each successful processing
|
||||
callback advances it by its exact frame count (including silence); errors do
|
||||
not advance it. The counter uses compiler atomics, verified always lock-free
|
||||
before backend setup, with overflow detected rather than wrapped. No extra
|
||||
allocation, I/O, mutex or GUI work occurs in callbacks. Fields remain individually
|
||||
coherent snapshots.
|
||||
|
||||
Stop pauses the clock. Start resumes; stopped and running graph submissions
|
||||
preserve position even when plan/revision counters reset. Reopen starts at zero.
|
||||
xtc_backend_seek changes position only on a healthy stopped backend; it does
|
||||
not rewind oscillator phase. Project tick/sample conversions use integer floor
|
||||
arithmetic at constant tempo, with explicit capacity errors and rates 1..768000.
|
||||
The GUI observes the counter every 100 ms, so visual updates are block-quantized
|
||||
and delayed by polling. No external JACK transport synchronization is provided.
|
||||
|
||||
Silent clip metadata is control-thread data, never traversed by the callback.
|
||||
Audio/MIDI scheduling will be added in later phases through compiled event/clip
|
||||
plans rather than direct callback access to the editable project.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue