@IvanC Thank you very much for the snippet of code, it works perfectly with stk pitch reverb and chorus, but not with the delay…
Here is the code that work for example in chorus:
void DigiFexAudioProcessor::applyChorus2(AudioSampleBuffer &buffer, int inputChannels)
{
const int numSamples = buffer.getNumSamples();
const float chorusDepth = params[14];
const float chorusRate = params[15];
const float chorusMix = params[16];
chorus2.setModDepth(chorusDepth);
chorus2.setModFrequency(chorusRate);
chorus2.setEffectMix(chorusMix);
if (inputChannels > 0)
buffer.copyFrom(1, 0, buffer, 0, 0, buffer.getNumSamples());
float* channelData = buffer.getWritePointer(1);
for (int i = 0; i < numSamples; ++i)
{
channelData[i] = chorus2.tick(channelData[i]);
}
}
and here is the code that doesn’t work on delay:
void DigiFexAudioProcessor::applyDelay2(AudioSampleBuffer &buffer, AudioSampleBuffer &delayBuffer, int inputChannels)
{
const int numSamples = buffer.getNumSamples();
const float delayTime = params[25];
const float delayGain = params[26];
delay2.setDelay(delayTime);
delay2.setEffectMix(delayGain);
if (inputChannels > 0)
{
buffer.copyFrom(1, 0, buffer, 0, 0, buffer.getNumSamples());
delayBuffer.copyFrom(1, 0, delayBuffer, 0, 0, delayBuffer.getNumSamples());
}
float* channelData = buffer.getWritePointer(1);
float* delayData = delayBuffer.getWritePointer(1);
for (int i = 0; i < numSamples; ++i)
{
float in = channelData[i];
channelData[i] += delayData[i];
delayData[i] = delay1.tick(delayData[i]) + in;
}
}
If I change the pointers to 0 it works but same on both channels…
The delayBuffer is a private member of Processor.h and is set up in preppareToPlay(); with 2 channels and 12000 samples.
