# Dual-Mono EQ Processor

**URL:** <https://forum.juce.com/t/dual-mono-eq-processor/39542>\
**Category:** Audio Plugins\
**Created:** [May 18, 2020, 10:41pm UTC](https://forum.juce.com/t/dual-mono-eq-processor/39542 "2020-05-18T22:41:17Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![baintonaj](https://avatars.discourse-cdn.com/v4/letter/b/22d042/32.png) [@baintonaj](https://forum.juce.com/u/baintonaj)\
**Post date:** [May 18, 2020, 10:41pm UTC](https://forum.juce.com/t/dual-mono-eq-processor/39542/1 "2020-05-18T22:41:17Z")

</div>

Hi everyone,

I am trying to create a dual-mono EQ processor. I know how to use ProcessorDuplicator to make a mono processor into stereo instance, and I would separate the left and right channels. How would I do so?

Thank you,  
Andy

---

<div class="post-metadata">

**Author:** ![baintonaj](https://avatars.discourse-cdn.com/v4/letter/b/22d042/32.png) [@baintonaj](https://forum.juce.com/u/baintonaj)\
**Post date:** [May 24, 2020, 2:47am UTC](https://forum.juce.com/t/dual-mono-eq-processor/39542/2 "2020-05-24T02:47:43Z")

</div>

I’m still stuck. I had the idea of trying to split the ProcessorDuplicator some how, and or configuring the channel busses, and I haven’t found the right way. I’d love to hear y’all’s insights! Thank you.

---

<div class="post-metadata">

**Author:** ![danielrudrich](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/danielrudrich/32/3735_2.png) [@danielrudrich](https://forum.juce.com/u/danielrudrich)\
**Post date:** [May 24, 2020, 5:22pm UTC](https://forum.juce.com/t/dual-mono-eq-processor/39542/3 "2020-05-24T17:22:10Z")

</div>

Hi, I assume you are stuck with converting an AudioBuffer into two ProcessContext objects, in order to process both with two separate IIR filters.  
You can do this by converting your stereo AudioBuffer to an AudioBlock:  
`AudioBlock stereoBlock (buffer);`  
and then get two subblocks from it:

```auto
auto leftBlock = stereoBlock.getSingleChannelBlock (0);
auto rightBlock = stereoBlock.getSingleChannelBlock (0);

```

Create a context from each, and process them by their corresponding filter object.

---

<div class="post-metadata">

**Author:** ![baintonaj](https://avatars.discourse-cdn.com/v4/letter/b/22d042/32.png) [@baintonaj](https://forum.juce.com/u/baintonaj)\
**Post date:** [May 24, 2020, 9:06pm UTC](https://forum.juce.com/t/dual-mono-eq-processor/39542/4 "2020-05-24T21:06:47Z")

</div>

Hey, here is what I have in my processBlock:

```
ScopedNoDenormals noDenormals;
auto totalNumInputChannels = getTotalNumInputChannels();
auto totalNumOutputChannels = getTotalNumOutputChannels();

dsp::AudioBlock<float> stereoBlock (buffer);

auto leftBlock = stereoBlock.getSingleChannelBlock (1);
auto rightBlock = stereoBlock.getSingleChannelBlock (2);

updateLeftShelf8k();
updateRightShelf8k();
updateLeftBell4k();
updateRightBell4k();
updateLeftBell2k();
updateRightBell2k();
updateLeftBell1k();
updateRightBell1k();
updateLeftBell500();
updateRightBell500();
updateLeftShelf250();
updateRightShelf250();
    
leftShelf8k.process(dsp::ProcessContextReplacing<float> (leftBlock));
rightShelf8k.process(dsp::ProcessContextReplacing<float> (rightBlock));
leftBell4k.process(dsp::ProcessContextReplacing<float> (leftBlock));
rightBell4k.process(dsp::ProcessContextReplacing<float> (rightBlock));
leftBell2k.process(dsp::ProcessContextReplacing<float> (leftBlock));
rightBell2k.process(dsp::ProcessContextReplacing<float> (rightBlock));
leftBell1k.process(dsp::ProcessContextReplacing<float> (leftBlock));
rightBell1k.process(dsp::ProcessContextReplacing<float> (rightBlock));
leftBell500.process(dsp::ProcessContextReplacing<float> (leftBlock));
rightBell500.process(dsp::ProcessContextReplacing<float> (rightBlock));
leftShelf250.process(dsp::ProcessContextReplacing<float> (leftBlock));
rightShelf250.process(dsp::ProcessContextReplacing<float> (rightBlock));

```

This setup makes sense to me, but Xcode does not show the bottom chunk of code in color, as it normally would if the function were working. In my PluginProcessor.h, I removed all of my processor duplicator lines, that used to look like this.

` dsp::ProcessorDuplicator<dsp::IIR::Filter <float>, dsp::IIR::Coefficients <float>> leftShelf8k;`

How do I solve this problem? Thanks for your help!

---

<div class="post-metadata">

**Author:** ![baintonaj](https://avatars.discourse-cdn.com/v4/letter/b/22d042/32.png) [@baintonaj](https://forum.juce.com/u/baintonaj)\
**Post date:** [May 25, 2020, 8:37pm UTC](https://forum.juce.com/t/dual-mono-eq-processor/39542/5 "2020-05-25T20:37:59Z")

</div>

Figured it out! Thank you

---

<div class="post-metadata">

**Author:** ![Fick1995](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/fick1995/32/6595_2.png) [@Fick1995](https://forum.juce.com/u/Fick1995)\
**Post date:** [June 5, 2020, 8:44am UTC](https://forum.juce.com/t/dual-mono-eq-processor/39542/6 "2020-06-05T08:44:03Z")

</div>

I also create a dual left and right mono jack. it’s both mono but you’ll get the left and right stereo sound…
