I’m new here. I’ve downloaded the latest version of Juce and compiled JuceDemoPlugin in Xcode. Everything ok, except for the plugin itself. It shows ok in AULab, loads ok, but it doesn’t produce any sound output.
I’ve debugged and verified that the plugin was receiving midi note on messages (ok), and checked synth.renderNextBlock (buffer, midiMessages, 0, numSamples) [PluginProcessor.cpp:241]. Everything seems to be ok, the buffer seems to being filled with data [PluginProcessor.cpp:122] but for an unknown reason, I don’t have any audio output nor any level output reading from AULab meters.
I’ve tested other AU (NI FM8) and it works ok.
What could be happening?
Does somebody have a working AU simple synthesizer example code?
Thank you very much for any help.
My system: Macbook white 2.13 Ghz intel core 2 duo, osx 10.6.4, xcode 3.2.4.
The demo isn’t marked as being a synth, so maybe AULab isn’t expecting it to make a noise (in the absence of any input signal, anyway). Maybe try changing that flag, or try another host!
I compiled with the following settings in JucePluginCharacteristics.h
[code]#define JucePlugin_Build_VST 0 // (If you change this value, you’ll also need to re-export the projects using the Jucer) #define JucePlugin_Build_AU 1 // (If you change this value, you’ll also need to re-export the projects using the Jucer) #define JucePlugin_Build_RTAS 0 // (If you change this value, you’ll also need to re-export the projects using the Jucer)
I know this is an old thread, but this issue still stands. It looks like the code below is executed after the the plugin has rendered its audio, but it should occur before. It only manifests itself in the AU plugin because the AU doesn’t have any input channels.
// In case we have more outputs than inputs, we'll clear any output
// channels that didn't contain input data, (because these aren't
// guaranteed to be empty - they may contain garbage).
for (int i = getNumInputChannels(); i < getNumOutputChannels(); ++i)
buffer.clear (i, 0, buffer.getNumSamples());
Looks like the code ultimately comes from in jucer_AudioPluginFilterTemplate.cpp.
[quote=“CowTipper”]I know this is an old thread, but this issue still stands. It looks like the code below is executed after the the plugin has rendered its audio, but it should occur before. It only manifests itself in the AU plugin because the AU doesn’t have any input channels.
// In case we have more outputs than inputs, we'll clear any output
// channels that didn't contain input data, (because these aren't
// guaranteed to be empty - they may contain garbage).
for (int i = getNumInputChannels(); i < getNumOutputChannels(); ++i)
buffer.clear (i, 0, buffer.getNumSamples());
Looks like the code ultimately comes from in jucer_AudioPluginFilterTemplate.cpp.[/quote]
The only purpose of that template code is to illustrate the fact that there may be different numbers of ins and outs, and to create a safe end-to-end plugin that won’t blow your ears off if you try to run it.
The whole method is supposed to be replaced with your own code… Should I make the comments more clear about that?
Yes, I think you should make this more clear. I just ran into the same problem. Took me one day to find the reason, because it was not that obvious, where to look at first.