|
|
@ -9,22 +9,24 @@ |
|
|
|
|
|
|
|
|
|
|
|
AudioEffectMVerb::AudioEffectMVerb(float32_t samplerate) : AudioEffect(samplerate) |
|
|
|
AudioEffectMVerb::AudioEffectMVerb(float32_t samplerate) : AudioEffect(samplerate) |
|
|
|
{
|
|
|
|
{
|
|
|
|
fVerb.setSampleRate(samplerate); |
|
|
|
fVerb = new MVerb<float>(); |
|
|
|
|
|
|
|
fVerb->setSampleRate(samplerate); |
|
|
|
|
|
|
|
|
|
|
|
fVerb.setParameter(MVerb<float>::DAMPINGFREQ, 0.5f); |
|
|
|
fVerb->setParameter(MVerb<float>::DAMPINGFREQ, 0.5f); |
|
|
|
fVerb.setParameter(MVerb<float>::DENSITY, 0.5f); |
|
|
|
fVerb->setParameter(MVerb<float>::DENSITY, 0.5f); |
|
|
|
fVerb.setParameter(MVerb<float>::BANDWIDTHFREQ, 0.5f); |
|
|
|
fVerb->setParameter(MVerb<float>::BANDWIDTHFREQ, 0.5f); |
|
|
|
fVerb.setParameter(MVerb<float>::DECAY, 0.5f); |
|
|
|
fVerb->setParameter(MVerb<float>::DECAY, 0.5f); |
|
|
|
fVerb.setParameter(MVerb<float>::PREDELAY, 0.5f); |
|
|
|
fVerb->setParameter(MVerb<float>::PREDELAY, 0.5f); |
|
|
|
fVerb.setParameter(MVerb<float>::SIZE, 0.75f); |
|
|
|
fVerb->setParameter(MVerb<float>::SIZE, 0.75f); |
|
|
|
fVerb.setParameter(MVerb<float>::GAIN, 1.0f); |
|
|
|
fVerb->setParameter(MVerb<float>::GAIN, 1.0f); |
|
|
|
fVerb.setParameter(MVerb<float>::MIX, 0.5f); |
|
|
|
fVerb->setParameter(MVerb<float>::MIX, 0.5f); |
|
|
|
fVerb.setParameter(MVerb<float>::EARLYMIX, 0.5f); |
|
|
|
fVerb->setParameter(MVerb<float>::EARLYMIX, 0.5f); |
|
|
|
fVerb.reset(); |
|
|
|
fVerb->reset(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
AudioEffectMVerb::~AudioEffectMVerb() |
|
|
|
AudioEffectMVerb::~AudioEffectMVerb() |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
delete fVerb; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void AudioEffectMVerb::initializeSendFX() |
|
|
|
void AudioEffectMVerb::initializeSendFX() |
|
|
@ -40,31 +42,31 @@ void AudioEffectMVerb::setParameter(unsigned param, unsigned value) |
|
|
|
this->setBypass(value == 1); |
|
|
|
this->setBypass(value == 1); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case AudioEffectMVerb::Param::DAMPINGFREQ: |
|
|
|
case AudioEffectMVerb::Param::DAMPINGFREQ: |
|
|
|
fVerb.setParameter(MVerb<float>::DAMPINGFREQ, (float) value / 100.0f); |
|
|
|
fVerb->setParameter(MVerb<float>::DAMPINGFREQ, (float) value / 100.0f); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case AudioEffectMVerb::Param::DENSITY: |
|
|
|
case AudioEffectMVerb::Param::DENSITY: |
|
|
|
fVerb.setParameter(MVerb<float>::DENSITY, (float) value / 100.0f); |
|
|
|
fVerb->setParameter(MVerb<float>::DENSITY, (float) value / 100.0f); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case AudioEffectMVerb::Param::BANDWIDTHFREQ: |
|
|
|
case AudioEffectMVerb::Param::BANDWIDTHFREQ: |
|
|
|
fVerb.setParameter(MVerb<float>::BANDWIDTHFREQ, (float) value / 100.0f); |
|
|
|
fVerb->setParameter(MVerb<float>::BANDWIDTHFREQ, (float) value / 100.0f); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case AudioEffectMVerb::Param::DECAY: |
|
|
|
case AudioEffectMVerb::Param::DECAY: |
|
|
|
fVerb.setParameter(MVerb<float>::DECAY, (float) value / 100.0f); |
|
|
|
fVerb->setParameter(MVerb<float>::DECAY, (float) value / 100.0f); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case AudioEffectMVerb::Param::PREDELAY: |
|
|
|
case AudioEffectMVerb::Param::PREDELAY: |
|
|
|
fVerb.setParameter(MVerb<float>::PREDELAY, (float) value / 100.0f); |
|
|
|
fVerb->setParameter(MVerb<float>::PREDELAY, (float) value / 100.0f); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case AudioEffectMVerb::Param::SIZE: |
|
|
|
case AudioEffectMVerb::Param::SIZE: |
|
|
|
fVerb.setParameter(MVerb<float>::SIZE, (float) value / 100.0f); |
|
|
|
fVerb->setParameter(MVerb<float>::SIZE, (float) value / 100.0f); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case AudioEffectMVerb::Param::GAIN: |
|
|
|
case AudioEffectMVerb::Param::GAIN: |
|
|
|
fVerb.setParameter(MVerb<float>::GAIN, (float) value / 100.0f); |
|
|
|
fVerb->setParameter(MVerb<float>::GAIN, (float) value / 100.0f); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case AudioEffectMVerb::Param::MIX: |
|
|
|
case AudioEffectMVerb::Param::MIX: |
|
|
|
fVerb.setParameter(MVerb<float>::MIX, (float) value / 100.0f); |
|
|
|
fVerb->setParameter(MVerb<float>::MIX, (float) value / 100.0f); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case AudioEffectMVerb::Param::EARLYMIX: |
|
|
|
case AudioEffectMVerb::Param::EARLYMIX: |
|
|
|
fVerb.setParameter(MVerb<float>::EARLYMIX, (float) value / 100.0f); |
|
|
|
fVerb->setParameter(MVerb<float>::EARLYMIX, (float) value / 100.0f); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
break; |
|
|
|
break; |
|
|
@ -78,23 +80,23 @@ unsigned AudioEffectMVerb::getParameter(unsigned param) |
|
|
|
case AudioEffectMVerb::Param::BYPASS: |
|
|
|
case AudioEffectMVerb::Param::BYPASS: |
|
|
|
return this->getBypass() ? 1 : 0; |
|
|
|
return this->getBypass() ? 1 : 0; |
|
|
|
case AudioEffectMVerb::Param::DAMPINGFREQ: |
|
|
|
case AudioEffectMVerb::Param::DAMPINGFREQ: |
|
|
|
return roundf(fVerb.getParameter(MVerb<float>::DAMPINGFREQ) * 100); |
|
|
|
return roundf(fVerb->getParameter(MVerb<float>::DAMPINGFREQ) * 100); |
|
|
|
case AudioEffectMVerb::Param::DENSITY: |
|
|
|
case AudioEffectMVerb::Param::DENSITY: |
|
|
|
return roundf(fVerb.getParameter(MVerb<float>::DENSITY) * 100); |
|
|
|
return roundf(fVerb->getParameter(MVerb<float>::DENSITY) * 100); |
|
|
|
case AudioEffectMVerb::Param::BANDWIDTHFREQ: |
|
|
|
case AudioEffectMVerb::Param::BANDWIDTHFREQ: |
|
|
|
return roundf(fVerb.getParameter(MVerb<float>::BANDWIDTHFREQ) * 100); |
|
|
|
return roundf(fVerb->getParameter(MVerb<float>::BANDWIDTHFREQ) * 100); |
|
|
|
case AudioEffectMVerb::Param::DECAY: |
|
|
|
case AudioEffectMVerb::Param::DECAY: |
|
|
|
return roundf(fVerb.getParameter(MVerb<float>::DECAY) * 100); |
|
|
|
return roundf(fVerb->getParameter(MVerb<float>::DECAY) * 100); |
|
|
|
case AudioEffectMVerb::Param::PREDELAY: |
|
|
|
case AudioEffectMVerb::Param::PREDELAY: |
|
|
|
return roundf(fVerb.getParameter(MVerb<float>::PREDELAY) * 100); |
|
|
|
return roundf(fVerb->getParameter(MVerb<float>::PREDELAY) * 100); |
|
|
|
case AudioEffectMVerb::Param::SIZE: |
|
|
|
case AudioEffectMVerb::Param::SIZE: |
|
|
|
return roundf(fVerb.getParameter(MVerb<float>::SIZE) * 100); |
|
|
|
return roundf(fVerb->getParameter(MVerb<float>::SIZE) * 100); |
|
|
|
case AudioEffectMVerb::Param::GAIN: |
|
|
|
case AudioEffectMVerb::Param::GAIN: |
|
|
|
return roundf(fVerb.getParameter(MVerb<float>::GAIN) * 100); |
|
|
|
return roundf(fVerb->getParameter(MVerb<float>::GAIN) * 100); |
|
|
|
case AudioEffectMVerb::Param::MIX: |
|
|
|
case AudioEffectMVerb::Param::MIX: |
|
|
|
return roundf(fVerb.getParameter(MVerb<float>::MIX) * 100); |
|
|
|
return roundf(fVerb->getParameter(MVerb<float>::MIX) * 100); |
|
|
|
case AudioEffectMVerb::Param::EARLYMIX: |
|
|
|
case AudioEffectMVerb::Param::EARLYMIX: |
|
|
|
return roundf(fVerb.getParameter(MVerb<float>::EARLYMIX) * 100); |
|
|
|
return roundf(fVerb->getParameter(MVerb<float>::EARLYMIX) * 100); |
|
|
|
default: |
|
|
|
default: |
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
@ -111,6 +113,6 @@ void AudioEffectMVerb::doProcess(const float32_t* inblockL, const float32_t* inb |
|
|
|
outputs[0] = outblockL; |
|
|
|
outputs[0] = outblockL; |
|
|
|
outputs[1] = outblockR; |
|
|
|
outputs[1] = outblockR; |
|
|
|
|
|
|
|
|
|
|
|
fVerb.process(inputs, outputs, static_cast<int>(len)); |
|
|
|
fVerb->process(inputs, outputs, static_cast<int>(len)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|