The SyncTERM:A;* audio model loads a complete sample: C;S stores the file,
A;Load;S=<slot> decodes the entire file (libsndfile) into a PCM patch, and
A;Queue plays it. That is ideal for short sound effects. For a long music
track (a full OGG/WAV) two things bite:
A;Load has decoded it — first-play latency = full transfer + full decode.C;S is oneESC _ … ESC \) cannot be nested, noOn the wire:
…frameN(ESC_…ESC\) [ music C;S APC: ESC_ … … … ESC\ ] frameN+k(ESC_…ESC\)…
└─ contiguous; frames N+1…N+k-1 dropped ─┘
(The doors already reduce the repeat cost with C;L upload-once-per-client plus
a render-once disk cache, so this mainly bites the first upload of each track —
but that freeze is user-visible.)
Request: a chunked / append audio transfer — e.g. A;Load accepting a
sample across multiple APCs (append-to-slot), with SyncTERM decoding
incrementally and starting playback once enough PCM is buffered. That gives:
A lighter first step: even an append/chunk store with no incremental decode
would let frames interleave (removing the freeze), with an optional
"start at N% buffered" to approximate streaming.
Anonymous
This is unlikely to ever happen. Neither the graphics nor audio APC functions are intended to be used for streaming. Further, nothing is stopping you from chunking it on your end and playing the samples back-to-back in the same channel... that's exactly why channels have queues.