AudioProcessorGraph Demystification


I have an AudioProcessor that generates sound (Sound Generator) and it works by itself in my main Plugin Filter.

I create this “Sound Generator” in my main Plugin Filter constructor, and pass my Plugin Filter’s prepareToPlay, releaseResources, processBlock to this “Sound Generator”. Everything works fine here.

Now I want to have an unknown number of “Sound Generators” and some sort of mixing mechanism to control each “Sound Generator”'s level, so I’m looking at the AudioProcessorGraph to add multiple “Sound Generator” nodes and wire their outputs into another AudioProcessor (Mixer).

So I assume I need one AudioProcessorGraph, and instantiate it in my main Plugin Filter, then pass prepareToPlay, releaseResources, processBlock to it right?

Then I want to add my “Sound Generator” to the graph using “add node”. As soon as I do this I hit an assertion in AudioSampleBuffer::getSampleData().

This is getting called from ProcessBufferOp::perform

for (int i = totalChans; --i >= 0;) channels[i] = sharedBufferChans.getSampleData (audioChannelsToUse.getUnchecked (i), 0);

So what am I missing here?

I’m also curious about this. But so far no replies…?


oh, that sounds like a hard one to debug (although probably simple to fix)… Afraid I’ve not got time to look at it right now…