tone complete?

This commit is contained in:
2025-07-07 14:38:46 -04:00
parent bf9bf80d69
commit 199f81a761
2 changed files with 63 additions and 18 deletions

View File

@ -96,8 +96,20 @@ void ReverbAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock
// initialisation that you need..
verb.reset();
filter_l = new juce::IIRFilter();
filter_r = new juce::IIRFilter();
juce::IIRFilter* one_l = new juce::IIRFilter();
juce::IIRFilter* one_r = new juce::IIRFilter();
juce::IIRFilter* two_l = new juce::IIRFilter();
juce::IIRFilter* two_r = new juce::IIRFilter();
juce::IIRFilter* three_l = new juce::IIRFilter();
juce::IIRFilter* three_r = new juce::IIRFilter();
filters_l.push_back(one_l);
filters_l.push_back(two_l);
filters_l.push_back(three_l);
filters_r.push_back(one_r);
filters_r.push_back(two_r);
filters_r.push_back(three_r);
}
@ -168,14 +180,18 @@ void ReverbAudioProcessor::processBlock (juce::AudioBuffer<float>& buffer, juce:
num_samples);
setup_filter();
filter_l->processSamples(channel_one, num_samples);
filter_r->processSamples(channel_two, num_samples);
for (int i = 0; i < 3; i++) {
filters_l[i]->processSamples(channel_one, num_samples);
filters_r[i]->processSamples(channel_two, num_samples);
}
//filter_l->processSamples(channel_one, num_samples);
//filter_r->processSamples(channel_two, num_samples);
for (auto i = 0; i < num_samples; i++) {
*buffer.getWritePointer(0, i) = (*buffer.getReadPointer(0, i)) * out->get();
*buffer.getWritePointer(1, i) = (*buffer.getReadPointer(1, i)) * out->get();
}
}
@ -183,20 +199,46 @@ void ReverbAudioProcessor::processBlock (juce::AudioBuffer<float>& buffer, juce:
void ReverbAudioProcessor::setup_filter()
{
juce::IIRCoefficients coef = juce::IIRCoefficients();
if (lofi) {
filter_l->setCoefficients(coef.makeBandPass(sample_rate, tone_val->get() * 24000));
filter_r->setCoefficients(coef.makeBandPass(sample_rate, tone_val->get() * 24000));
} else {
if (tone_val->get() == 0.5) {
filter_l->makeInactive();
filter_r->makeInactive();
} else {
filter_l->makeInactive();
filter_r->makeInactive();
if (lofi->get()) {
for (int i = 0; i < 3; i++) {
//filters_l[i]->reset();
//filters_r[i]->reset();
}
filters_l[0]->setCoefficients(coef.makeBandPass(sample_rate, tone_val->get() * 24000));
filters_r[0]->setCoefficients(coef.makeBandPass(sample_rate, tone_val->get() * 24000));
for (int i = 1; i < 3; i++) {
filters_r[i]->makeInactive();
filters_l[i]->makeInactive();
}
} else {
for (int i = 0; i < 3; i++) {
//filters_l[i]->reset();
//filters_r[i]->reset();
}
filters_l[0]->setCoefficients(coef.makeHighPass(sample_rate, 85.0));
filters_r[0]->setCoefficients(coef.makeHighPass(sample_rate, 85.0));
float expanded_freq = 0;
if (tone_val->get() == 0.5) {
expanded_freq = 12000.0;
} else if (tone_val->get() < 0.5) {
expanded_freq = (tone_val->get() * 2) * (12000 - 5000) + 5000; // need to expand the normalized range
} else {
expanded_freq = ((tone_val->get() - 0.5) * 2) * (20000 - 12000) + 12000; // need to expand the normalized range
}
filters_l[1]->setCoefficients(coef.makeLowPass(sample_rate, expanded_freq));
filters_r[1]->setCoefficients(coef.makeLowPass(sample_rate, expanded_freq));
//filters_l[2]->setCoefficients(coef.makePeakFilter(sample_rate, 6000, 0.4, 1));
//filters_r[2]->setCoefficients(coef.makePeakFilter(sample_rate, 6000, 0.4, 1));
filters_l[2]->makeInactive(); // band boost for later?
filters_r[2]->makeInactive();
}
}

View File

@ -75,6 +75,9 @@ private:
juce::IIRFilter* filter_l;
juce::IIRFilter* filter_r;
//==============================================================================
std::vector<juce::IIRFilter*> filters_l;
std::vector<juce::IIRFilter*> filters_r;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ReverbAudioProcessor)
};