Hello, I have been running a marathon of tests for getting consistent results about convolution engine behaviour. Below is the simple code responsible for it (part of something huge) and the platform specific behavior.
// this is running in the process block. the ‘dryWetBuffer’ is a AudioSampleBuffer of which settings is done in prepareplay method. The ‘dryWetBuffer’ renders the signal to be processed by the convolution engine and after the convolution process it is being added to the ‘buffer’ of the process block. Practically the same principal in the demo example of Juce DSP.
dsp::AudioBlock<float> block (dryWetBuffer); if (block.getNumChannels() > 2) block = block.getSubsetChannelBlock (0, 2); process (dsp::ProcessContextReplacing<float> (block)); buffer.addFrom( 0, // destChannel 0, // destStartSample dryWetBuffer, // sourceBuffer 0, // sourceChannel 0, // soucreStartSample, buffer.getNumSamples(), myConvGain*3.5f * myConvSW// gain ); buffer.addFrom( 1, // destChannel 0, // destStartSample dryWetBuffer, // sourceBuffer 1, // sourceChannel 0, // soucreStartSample, buffer.getNumSamples(), myConvGain*3.5f * myConvSW// gain );
Here is the platform specific report; all systems / DAW’s are latest versions.
Juce 5.1.2 (I guess it is september version)
Logic : The convolution runs and sounds ok. AU validation passes at first time or second.
Live : Neither the VST nor the AU runs the convolution process, the sound is flat.
Reaper : Only the AU runs with correct convolution process, no conv. processing on VST.
Standalone : The convolution process works and sounds correct.
Juce Developer Branch / OSX
Logic : The convolution runs but I hear only full wet sound. AU validation passes directly.
Live : No convolution process, only flat sound.
Standalone : The convolution runs but only with full wet sound, as on Logic.
Juce 5.2.0 official release
Live : Convolution runs and sounds correctly.
Reaper : Convolution runs and sounds correctly.
So this clearly shows, that the same code ideally should behave the same in all DAW’s and plugin formats. I hope you can bring in useful explanations or this report will be useful for you for further fixes; or you are welcome to bring in a working code example.