home/ atoms/ ableton-link-audio-sink-source

Link Audio channels are demand-driven: a sink only transmits when at least one source subscribes

Link Audio implements channels with a sink/source pattern. A sink is the publishing side: creating a sink announces a new channel to the session, and the sink captures audio, converts it to the wire format, and transmits it. A source is the receiving side: creating a source for a given channel ID subscribes to it and begins receiving audio buffers asynchronously via callbacks on Link-managed threads. Multiple peers can create sources for the same channel, giving one-to-many distribution. The key efficiency property is that a sink only sends data when at least one corresponding source exists — if nobody is listening, no network bandwidth is consumed. This lets apps create sinks preemptively without cost until someone subscribes.

Examples

An app creates a sink for its master output on startup (channel announced, but silent on the wire). When a second app creates a source for that channel ID, the sink begins transmitting; buffers arrive at the source via callbacks. If the source disconnects, transmission stops and bandwidth drops to zero.

Assessment

Explain why creating a Link Audio sink consumes no network bandwidth until a source subscribes. How does the sink/source model support one-to-many audio distribution?

“The sink is responsible for capturing audio, converting it to the required format, and transmitting it over the network. Importantly, sinks only send data when at least one corresponding source exists - if no one is listening, no network bandwidth is consumed.”
corpus · ableton-link-official-documentation · chunk 2