Wanna see how the sausage gets made? No? Too bad, I’m showing you anyway.

When I first built the prototype for Audiobus, it was receiving from only one source at a time, which made it pretty simple to handle - just buffer the audio coming in over the communications system and pump it out the other end as needed.

For the Real Deal, we wanna have multiplexed sources, though, which can be saved to a multichannel recording - one channel per source. For developers, it’s gotta be really easy - you’ll be able to specify whether you want the audio coming in as multi-channel, or all mixed together into one stereo stream. Plus, it’s gotta work in live mode - preferring low latency to perfect data integrity - and in recording mode, preferring perfect data integrity over latency.

It took a bit of pondering and circles-and-arrows drawing, but I think I’ve got it nailed, using audio timestamps to figure out where in the global timeline each piece of audio needs to be placed while recording.

The upshot of all this is that it’ll seamlessly record multiple sources in sync, negating any latency or jitter problems. Whew!

// Michael