Reverb - Can not hear parameter changes

Hi,

I’m trying to add reverb, using the Reverb class, to a very simple plugin. When I change the dryLevel I can hear a change in volume however changing any of the other parameters doesn’t seem to do anything? eg. When changing roomSize from 0.1 to 1.0 I can not hear a difference.

Can anyone help me? Code below…(sorry in advance I can’t work out how to format it)

PluginProcessor.cpp

void Test_synthAudioProcessor::processBlock (AudioBuffer& buffer, MidiBuffer& midiMessages)
{

for (int i = 0; i < mySynth.getNumVoices(); i++)

{

    if ((myVoice = dynamic_cast<SynthVoice*>(mySynth.getVoice(i))))

    {

        myVoice->getParam(tree.getRawParameterValue("freq"));
        myVoice->getParam2(tree.getRawParameterValue("cutoff"));

    }

}

buffer.clear();
mySynth.renderNextBlock(buffer, midiMessages, 0, buffer.getNumSamples());

}

SynthVoice.h

void renderNextBlock (AudioBuffer< float > &outputBuffer, int startSample, int numSamples)
{

    for (int sample = 0; sample < numSamples; ++sample)   

    {
        double theWave = Osc1.saw(Osc1Freq, 44100);
        double filteredSound = lores1.lores(theWave, loresCutoff, 1);
        for (int channel = 0; channel < outputBuffer.getNumChannels(); ++channel)
        {
            outputBuffer.addSample(channel, startSample, filteredSound);
            
        }
        ++startSample;
    }
    testReverb.reset();
    myParams.wetLevel = 1.0;
    myParams.dryLevel = 0.1;
    myParams.width = 1.0;
    myParams.roomSize = 1.0;
    myParams.damping = 0.1;
    testReverb.setParameters(myParams);
    testReverb.setSampleRate(44100);
    testReverb.processStereo(outputBuffer.getWritePointer(0),outputBuffer.getWritePointer(1), numSamples);
}

Thanks, L

Without having tested it or looked at the Implementation: I think calling reset and setSampleRate in each callback might be the culprit. Move that to the prepare method

Okay. I looked at some code written by other people using the Reverb class and they set setSampleRate in prepareToPlay like you’ve suggested. My problem is I create testReverb in a header file called SynthVoice.h, when using a pointer to this object in the cpp file PluginProcessor.cpp I get errors. Maybe I need to rethink my code…

Thought I post my solution here to help one else looking on here with the same issue…

Thanks for pointing that out @danielrudrich.

I moved the call to setSampleRate into the prepareToPlay function and the calls to setParameters into the constructor of my AudioProcessor and it worked!

L