Skip to content

Commit 87aeb30

Browse files
committed
Routing Improvements
1 parent 835ccd1 commit 87aeb30

File tree

3 files changed

+50
-24
lines changed

3 files changed

+50
-24
lines changed

Plateau2/Plateau2.cpp

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,8 @@ Plateau2::Plateau2(const InstanceInfo& info)
3333
GetParam(kStereoSource1)->InitPercentage("Stereo Source 1", 0, -100, 100);
3434
GetParam(kWidth1)->InitPercentage("Stereo Width 1", 100, 0, 200);
3535
GetParam(kPan1)->InitPercentage("Pan 1", 0, -100, 100);
36-
GetParam(kL1toL2)->InitPercentage("Send Left 1 to Left 2");
37-
GetParam(kR1toL2)->InitPercentage("Send Right 1 to Left 2");
38-
GetParam(kL1toR2)->InitPercentage("Send Left 1 to Right 2");
39-
GetParam(kR1toR2)->InitPercentage("Send Right 1 to Right 2");
36+
GetParam(k1to2)->InitBool("Send Tank 1 to 2", false);
37+
GetParam(k1to2Level)->InitPercentage("Tank 1 to 2 Level");
4038

4139

4240
GetParam(kEnable2)->InitBool("Tank 2 Enable", false);
@@ -63,10 +61,8 @@ Plateau2::Plateau2(const InstanceInfo& info)
6361
GetParam(kStereoSource2)->InitPercentage("Stereo Source 2", 0, -100, 100);
6462
GetParam(kWidth2)->InitPercentage("Stereo Width 2", 100, 0, 200);
6563
GetParam(kPan2)->InitPercentage("Pan 2", 0, -100, 100);
66-
GetParam(kL2toL1)->InitPercentage("Send Left 2 to Left 1");
67-
GetParam(kR2toL1)->InitPercentage("Send Right 2 to Left 1");
68-
GetParam(kL2toR1)->InitPercentage("Send Left 2 to Right 1");
69-
GetParam(kR2toR1)->InitPercentage("Send Right 2 to Right 1");
64+
GetParam(k2to1)->InitBool("Send Tank 2 to 1", false);
65+
GetParam(k2to1Level)->InitPercentage("Tank 1 to 2 Level");
7066

7167

7268
GetParam(kDanger)->InitBool("DANGER! Allow Unsafe Feedback Settings", false);
@@ -134,8 +130,8 @@ Plateau2::Plateau2(const InstanceInfo& info)
134130
Knobs[16] = new NeedleKnob(IRECT::MakeXYWH(93, 250, 56, 56), NeedleSVG, NeedleBGSVG, NeedleFG1PNG, NeedleFG2PNG, kWidth1, kWidth2);
135131
Knobs[17] = new NeedleKnob(IRECT::MakeXYWH(166, 250, 56, 56), NeedleSVG, NeedleBGSVG, NeedleFG1PNG, NeedleFG2PNG, kPan1, kPan2);
136132

137-
Knobs[18] = new NeedleKnob(IRECT::MakeXYWH(93, 340, 56, 56), NeedleSVG, NeedleBGSVG, NeedleFG1PNG, NeedleFG2PNG, kL1toL2, kL2toL1);
138-
Knobs[19] = new NeedleKnob(IRECT::MakeXYWH(166, 340, 56, 56), NeedleSVG, NeedleBGSVG, NeedleFG1PNG, NeedleFG2PNG, kR1toR2, kR2toR1);
133+
Knobs[18] = new NeedleKnob(IRECT::MakeXYWH(93, 340, 56, 56), NeedleSVG, NeedleBGSVG, NeedleFG1PNG, NeedleFG1PNG, k1to2Level, k1to2Level);
134+
Knobs[19] = new NeedleKnob(IRECT::MakeXYWH(166, 340, 56, 56), NeedleSVG, NeedleBGSVG, NeedleFG2PNG, NeedleFG2PNG, k2to1Level, k2to1Level);
139135

140136
for (int i = 12; i <= 19; i++) {
141137
pGraphics->AttachControl(Knobs[i]);
@@ -192,12 +188,17 @@ Plateau2::Plateau2(const InstanceInfo& info)
192188
//DANGER switch
193189
Switches[6] = new LEDSwitch(IRECT::MakeXYWH(102, 301, 112, 112), 1, DangerOffSVG, DangerOnSVG, DangerOnSVG, kDanger, kDanger);
194190

195-
for (int i = 5; i <= 6; i++) {
191+
//Routing page Switches
192+
Switches[7] = new LEDSwitch(IRECT::MakeXYWH(106.5 - 20, 430, 102, 102), LEDScale, LedOffSVG, LedOn1SVG, LedOn1SVG, k1to2, k1to2);
193+
Switches[8] = new LEDSwitch(IRECT::MakeXYWH(106.5 + 20, 430, 102, 102), LEDScale, LedOffSVG, LedOn2SVG, LedOn2SVG, k2to1, k2to1);
194+
195+
for (int i = 5; i <= 8; i++) {
196196
pGraphics->AttachControl(Switches[i]);
197197
Switches[i]->Hide(true);
198198
}
199199

200200

201+
201202
LEDRadio* tank1Select = new LEDRadio(IRECT::MakeXYWH(106.5 - 20, 40, 102, 102), LEDScale, LedOffSVG, LedOn1SVG, [this](IControl* radioControl) {SelectTank(false);});
202203
LEDRadio* tank2Select = new LEDRadio(IRECT::MakeXYWH(106.5 + 20, 40, 102, 102), LEDScale, LedOffSVG, LedOn2SVG, [this](IControl* radioControl) {SelectTank(true);});
203204

@@ -270,6 +271,9 @@ void Plateau2::UpdatePageVisibility()
270271
for (int i = 14; i <= 19; i++) {
271272
Knobs[i]->Hide(currentPage != 2);
272273
}
274+
for (int i = 7; i <= 8; i++) {
275+
Switches[i]->Hide(currentPage != 2);
276+
}
273277
}
274278

275279

@@ -488,6 +492,8 @@ void Plateau2::ProcessBlock(sample** inputs, sample** outputs, int nFrames)
488492
const bool freeze1Param = GetParam(kFreeze1)->Value();
489493
const double wet1Param = GetParam(kWet1)->Value() / 100;
490494
const double input1 = GetParam(kInput1)->Value() / 100;
495+
const double level2to1 = GetParam(k2to1Level)->Value() / 100;
496+
const bool send2to1 = tank2Enabled && GetParam(k2to1)->Value();
491497

492498
if (clear1Param && !clear1 && cleared1) {
493499
cleared1 = false;
@@ -529,7 +535,7 @@ void Plateau2::ProcessBlock(sample** inputs, sample** outputs, int nFrames)
529535
reverb1.freeze(frozen1);
530536
}
531537

532-
reverb1.process(balance((double)(envelope1._value * (inputs[0][s] * input1 + (tank2Enabled ? (std::get<0>(reverbOut2) * (GetParam(kL2toL1)->Value() / 100) + std::get<1>(reverbOut2) * (GetParam(kR2toL1)->Value() / 100)) : 0))), (double)(envelope1._value * (inputs[nChans > 1 ? 1 : 0][s] * input1 + (tank2Enabled ? (std::get<0>(reverbOut2) * (GetParam(kL2toR1)->Value() / 100) + std::get<1>(reverbOut2) * (GetParam(kR2toR1)->Value() / 100)) : 0))), GetParam(kStereoSource1)->Value() / 100));
538+
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));
533539

534540
reverbOut1 = { reverb1.getLeftOutput(), reverb1.getRightOutput() };
535541

@@ -550,6 +556,8 @@ void Plateau2::ProcessBlock(sample** inputs, sample** outputs, int nFrames)
550556
const bool freeze2Param = GetParam(kFreeze2)->Value();
551557
const double wet2Param = GetParam(kWet2)->Value() / 100;
552558
const double input2 = GetParam(kInput2)->Value() / 100;
559+
const double level1to2 = GetParam(k1to2Level)->Value() / 100;
560+
const bool send1to2 = tank1Enabled && GetParam(k1to2)->Value();
553561

554562
if (clear2Param && !clear2 && cleared2) {
555563
cleared2 = false;
@@ -591,7 +599,7 @@ void Plateau2::ProcessBlock(sample** inputs, sample** outputs, int nFrames)
591599
reverb2.freeze(frozen2);
592600
}
593601

594-
reverb2.process(balance((double)(envelope2._value * (inputs[0][s] * input2 + (tank1Enabled ? (std::get<0>(reverbOut1) * (GetParam(kL1toL2)->Value() / 100) + std::get<1>(reverbOut1) * (GetParam(kR1toL2)->Value() / 100)) : 0))), (double)(envelope2._value*(inputs[nChans > 1 ? 1 : 0][s] * input2 + (tank1Enabled ? (std::get<0>(reverbOut1) * (GetParam(kL1toR2)->Value() / 100) + std::get<1>(reverbOut1) * (GetParam(kR1toR2)->Value() / 100)) : 0))), GetParam(kStereoSource2)->Value() / 100));
602+
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));
595603

596604
reverbOut2 = { reverb2.getLeftOutput(), reverb2.getRightOutput() };
597605

Plateau2/Plateau2.h

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,8 @@ enum EParams
4343
kStereoSource1,
4444
kWidth1,
4545
kPan1,
46-
kL1toL2,
47-
kR1toL2,
48-
kL1toR2,
49-
kR1toR2,
46+
k1to2,
47+
k1to2Level,
5048

5149
kEnable2,
5250
kWet2,
@@ -72,18 +70,16 @@ enum EParams
7270
kStereoSource2,
7371
kWidth2,
7472
kPan2,
75-
kL2toL1,
76-
kR2toL1,
77-
kL2toR1,
78-
kR2toR1,
73+
k2to1,
74+
k2to1Level,
7975

8076
kDanger,
8177

8278
kNumParams
8379
};
8480

8581
const int kNumKnobs = 20;
86-
const int kNumSwitches = 7;
82+
const int kNumSwitches = 9;
8783
const int kNumButtons = 2;
8884
const int kNumPages = 3;
8985

Plateau2/resources/img/RoutingPage.svg

Lines changed: 24 additions & 2 deletions
Loading

0 commit comments

Comments
 (0)