# audio/stream-push
Append interleaved PCM bytes to a push stream. SDL copies the data before returning, so GC-owned Deft strings are safe.
## Syntax
[audio/stream-push id bytes]
## Parameters
- `id` — a stream id from `audio/stream-open`
- `bytes` — binary-safe string of PCM in the stream's declared format/channels
## Examples
set queued [audio/stream-push $s $pcm-chunk] if ($queued < 131072) { [audio/stream-push $s $next-chunk] # stay under the backlog cap }
## Returns
number — total bytes queued in the stream after the append. Empty `bytes` returns 0 without writing. `%Err{:message}` for an unknown id, non-string bytes, or an SDL push failure. Copying means the source string can be released immediately.
## See Also
`audio/stream-queued`, `audio/stream-clear`, `audio/stream-open`