Ok, I finally got sound! Here's my code:
void MyAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock) { m_graph.setPlayConfigDetails(getNumInputChannels(), getNumOutputChannels(), sampleRate, samplesPerBlock); m_graph.setProcessingPrecision(AudioProcessor::singlePrecision); m_graph.prepareToPlay(sampleRate, samplesPerBlock); AudioProcessorGraph::AudioGraphIOProcessor* input = new AudioProcessorGraph::AudioGraphIOProcessor( AudioProcessorGraph::AudioGraphIOProcessor::audioInputNode); AudioProcessorGraph::AudioGraphIOProcessor* output = new AudioProcessorGraph::AudioGraphIOProcessor( AudioProcessorGraph::AudioGraphIOProcessor::audioOutputNode); mOsc1Node = new OscillatorNode(); mOsc1Node->setPlayConfigDetails(getNumInputChannels(), getNumOutputChannels(), sampleRate, samplesPerBlock); m_graph.addNode(input, 1); m_graph.addNode(output, 2); m_graph.addNode(mOsc1Node, 3); m_graph.addConnection(1, 0, 3, 0); m_graph.addConnection(1, 1, 3, 1); m_graph.addConnection(3, 0, 2, 0); m_graph.addConnection(3, 1, 2, 1); }
You're right that the ordering is extremely important, but it's entirely unclear from the documentation, hence my suggestion for an example in the docs :). It also seems weird to me that I should have to wait until `prepareToPlay` to assemble my graph, but that's the point at which I can configure everything appropriately, which needs to happen before I assemble my nodes and connections. Thanks for all your help, and, if you see anything in the above code segment that raises a red flag in your mind, let me know!