Yup, read all of those inside and out, they deal with streaming audio in different ways than I do. Let me perhaps be more specific with my issue.
When I start my app, I build my basic units (output, varispeed & mixer), initialize the graph, then wait around. When I open a document, I build an AUFormatter, build the document's AUs, and add them to the master graph, call AUGraphUpdate and all is well. When I change documents, I destroy & rebuild the graph appropriately. When I "press play", I set the document's AUFormatter's input stream format (the number of channels may change between plays). Apparently this stream format change does not follow it's way up the chain (probably understandably so).
The issues seem to be many fold: • Apparently I can't change the input stream of the output unit once I've called Initialize. So in theory, I should have to have the output unit opened wide up to accept all channels it can accept at the start of the app?
• Whenever I call AUGraphUpdate, the stream reverts to 2 channels - perhaps because the default state of the AUs I'm connecting on the fly is 2 channels only.
My questions:
Where in my methodology should I be changing the major stream format so that I'm not trying to stream/read data that's not necessary? How many of the AUs do I need to specifically set the stream format for? Don't they get it from their parent connection? How do I keep it from reverting to 2 channels when I connect the document's stream?
|