@@ -134,9 +134,10 @@ Plateau2::Plateau2(const InstanceInfo& info)
134134 Knobs[16 ] = new NeedleKnob (IRECT::MakeXYWH (93 , 294 , 56 , 56 ), NeedleSVG, NeedleBGSVG, NeedleFG1PNG, NeedleFG2PNG, kWidth1 , kWidth2 );
135135 Knobs[17 ] = new NeedleKnob (IRECT::MakeXYWH (166 , 294 , 56 , 56 ), NeedleSVG, NeedleBGSVG, NeedleFG1PNG, NeedleFG2PNG, kPan1 , kPan2 );
136136
137- Knobs[18 ] = new NeedleKnob (IRECT::MakeXYWH (130 , 454 , 56 , 56 ), NeedleSVG, NeedleBGSVG, NeedleFG1PNG, NeedleFG2PNG, k1to2Level, k2to1Level);
137+ Knobs[18 ] = new NeedleKnob (IRECT::MakeXYWH (93 , 454 , 56 , 56 ), NeedleSVG, NeedleBGSVG, NeedleFG1PNG, NeedleFG2PNG, k1to2Level, k2to1Level);
138+ Knobs[19 ] = new NeedleKnob (IRECT::MakeXYWH (166 , 454 , 56 , 56 ), NeedleSVG, NeedleBGSVG, NeedleFG1PNG, NeedleFG2PNG, k1to2Delay, k2to1Delay);
138139
139- for (int i = 12 ; i <= 18 ; i++) {
140+ for (int i = 12 ; i <= 19 ; i++) {
140141 pGraphics->AttachControl (Knobs[i]);
141142 Knobs[i]->Hide (true );
142143 }
@@ -292,7 +293,7 @@ void Plateau2::UpdateSendVisibility() {
292293 Switches[i]->Hide (currentPage != 2 );
293294 }
294295 bool dangerous = GetParam (kDanger )->Value ();
295- for (int i = 18 ; i <= 18 ; i++) {
296+ for (int i = 18 ; i <= 19 ; i++) {
296297 Knobs[i]->Hide (currentPage != 2 || (!dangerous && tank2Selected));
297298 }
298299 SVGs[0 ]->Hide (currentPage != 2 || tank2Selected);
@@ -391,6 +392,12 @@ void Plateau2::OnParamChange(int index)
391392 reverb1.setTankDiffusionDecay (scale<double >(GetParam (index)->Value (), 0 , 100 , .3 , 1 ));
392393 }
393394 break ;
395+ case kStereoSource1 :
396+ sourceBalance1 = balanceFactors (GetParam (kStereoSource1 )->Value ()/100 );
397+ break ;
398+ case kPan1 :
399+ panBalance1 = balanceFactors (GetParam (kPan1 )->Value ()/100 );
400+ break ;
394401
395402 case kPreDelay2 :
396403 reverb2.setPreDelay (GetParam (index)->Value ());
@@ -454,6 +461,12 @@ void Plateau2::OnParamChange(int index)
454461 else {
455462 reverb2.setTankDiffusionDecay (scale<double >(GetParam (index)->Value (), 0 , 100 , .3 , 1 ));
456463 }
464+ break ;
465+ case kStereoSource2 :
466+ sourceBalance2 = balanceFactors (GetParam (kStereoSource2 )->Value ()/100 );
467+ break ;
468+ case kPan2 :
469+ panBalance2 = balanceFactors (GetParam (kPan2 )->Value ()/100 );
457470 break ;
458471
459472 case kDanger :
@@ -561,12 +574,12 @@ void Plateau2::ProcessBlock(sample** inputs, sample** outputs, int nFrames)
561574 reverb1.freeze (frozen1);
562575 }
563576
564- reverb1.process (balance (( double )(envelope1._value * (inputs[0 ][s] * input1 + (send2to1 ? (std::get<0 >(reverbOut2) * level2to1) : 0 ))), (double )(envelope1._value * (inputs[nChans > 1 ? 1 : 0 ][s] * input1 + (send2to1 ? (std::get<1 >(reverbOut2) * level2to1) : 0 ))), GetParam ( kStereoSource1 )-> Value () / 100 ));
577+ reverb1.process (( double )(std::get< 0 >(sourceBalance1) * envelope1._value * (inputs[0 ][s] * input1 + (send2to1 ? (std::get<0 >(reverbOut2) * level2to1) : 0 ))), (double )(std::get< 1 >(sourceBalance1) * envelope1._value * (inputs[nChans > 1 ? 1 : 0 ][s] * input1 + (send2to1 ? (std::get<1 >(reverbOut2) * level2to1) : 0 ))));
565578
566579 reverbOut1 = { reverb1.getLeftOutput (), reverb1.getRightOutput () };
567580
568581 std::tuple<double ,double > out = seperation (std::get<0 >(reverbOut1), std::get<1 >(reverbOut1), GetParam (kWidth1 )->Value () / 100 );
569- out = balance ( std::get<0 >(out), std::get<1 >(out), GetParam ( kPan1 )-> Value ()/ 100 ) ;
582+ out = { std::get<0 >(panBalance1) * std::get<0 >(out), std::get< 1 >(panBalance1)* std::get< 1 >(out) } ;
570583
571584 outputs[0 ][s] += std::get<0 >(out) * wet1Param;
572585
@@ -625,12 +638,12 @@ void Plateau2::ProcessBlock(sample** inputs, sample** outputs, int nFrames)
625638 reverb2.freeze (frozen2);
626639 }
627640
628- reverb2.process (balance (( double )(envelope2._value * (inputs[0 ][s] * input2 + (send1to2 ? (std::get<0 >(reverbOut1) * level1to2) : 0 ))), (double )(envelope2._value *(inputs[nChans > 1 ? 1 : 0 ][s] * input2 + (send1to2 ? (std::get<1 >(reverbOut1) * level1to2) : 0 ))), GetParam ( kStereoSource2 )-> Value () / 100 ));
641+ reverb2.process (( double )(std::get< 0 >(sourceBalance2) * envelope2._value * (inputs[0 ][s] * input2 + (send1to2 ? (std::get<0 >(reverbOut1) * level1to2) : 0 ))), (double )(std::get< 1 >(sourceBalance2) * envelope2._value *(inputs[nChans > 1 ? 1 : 0 ][s] * input2 + (send1to2 ? (std::get<1 >(reverbOut1) * level1to2) : 0 ))));
629642
630643 reverbOut2 = { reverb2.getLeftOutput (), reverb2.getRightOutput () };
631644
632645 std::tuple<double , double > out = seperation (std::get<0 >(reverbOut2), std::get<1 >(reverbOut2), GetParam (kWidth2 )->Value ()/100 );
633- out = balance ( std::get<0 >(out), std::get<1 >(out), GetParam ( kPan2 )-> Value ()/ 100 ) ;
646+ out = { std::get<0 >(panBalance2) * std::get<0 >(out), std::get< 1 >(panBalance2) * std::get< 1 >(out) } ;
634647
635648 outputs[0 ][s] += std::get<0 >(out) * wet2Param;
636649
0 commit comments