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!
