Skip to content

Commit 3895a60

Browse files
committed
fixed crash when switching processors while reverb decaying
1 parent eaa1d28 commit 3895a60

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

Source/ConcertHallB.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ void LargeConcertHallB::reset()
378378
loopDelayR3.reset();
379379
loopDelayR4.reset();
380380

381-
// prepare allpasses
381+
// reset allpasses
382382
// L
383383
allpassL1.reset();
384384
allpassL2.reset();
@@ -404,9 +404,9 @@ const juce::String LargeConcertHallB::getName() const { return "LargeConcertHall
404404

405405
//==============================================================================
406406
void LargeConcertHallB::setSize(float newSize) { mSize = newSize * (44.1 / 34.125); }
407-
void LargeConcertHallB::setDecay(float newDecay) { mDecay = pow(newDecay, 0.75) * 1.2; }
407+
void LargeConcertHallB::setDecay(float newDecay) { mDecay = scale(newDecay, 0, 1, 0.25, 1); }
408408
void LargeConcertHallB::setDampingCutoff(float newCutoff) { mDampingCutoff = newCutoff; }
409-
void LargeConcertHallB::setDiffusion(float newDiffusion) { mDiffusion = newDiffusion * 2; }
409+
void LargeConcertHallB::setDiffusion(float newDiffusion) { mDiffusion = newDiffusion * 1.75; }
410410
void LargeConcertHallB::setPreDelay(float newPreDelay) { mPreDelayTime = newPreDelay; }
411411
void LargeConcertHallB::setEarlyLateMix(float newMix) { mEarlyLateMix = newMix; }
412412
void LargeConcertHallB::setDryWetMix(float newMix) { mDryWetMix = newMix; }

Source/PluginProcessor.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,8 @@
22
==============================================================================
33
44
TODO:
5-
- Gardner room algorithms
6-
- Set diffusions?
7-
- R channel ringing
8-
- Early reflections are vital!
9-
- Runaway feedback?
10-
- modulation
11-
- split implementation from interface on reverbs
12-
- EQ to wet only!
5+
- louder wet sound on rooms
6+
- EQ to wet only
137
- Barr allpass ring
148
- early reflections
159
- add parallel/series at 0.33/0.67 mark
@@ -335,6 +329,7 @@ void RSAlgorithmicVerbAudioProcessor::updateGraph()
335329
if (reverbNode->getProcessor()->getName() == "DattorroPlate")
336330
break;
337331

332+
reverbNode->getProcessor()->reset();
338333
mainProcessor->removeNode(reverbNode.get());
339334
}
340335

@@ -348,6 +343,7 @@ void RSAlgorithmicVerbAudioProcessor::updateGraph()
348343
if (reverbNode->getProcessor()->getName() == "LargeConcertHallB")
349344
break;
350345

346+
reverbNode->getProcessor()->reset();
351347
mainProcessor->removeNode(reverbNode.get());
352348
}
353349

@@ -361,6 +357,7 @@ void RSAlgorithmicVerbAudioProcessor::updateGraph()
361357
if (reverbNode->getProcessor()->getName() == "GardnerSmallRoom")
362358
break;
363359

360+
reverbNode->getProcessor()->reset();
364361
mainProcessor->removeNode(reverbNode.get());
365362
}
366363

@@ -374,6 +371,7 @@ void RSAlgorithmicVerbAudioProcessor::updateGraph()
374371
if (reverbNode->getProcessor()->getName() == "GardnerMediumRoom")
375372
break;
376373

374+
reverbNode->getProcessor()->reset();
377375
mainProcessor->removeNode(reverbNode.get());
378376
}
379377

@@ -387,6 +385,7 @@ void RSAlgorithmicVerbAudioProcessor::updateGraph()
387385
if (reverbNode->getProcessor()->getName() == "GardnerLargeRoom")
388386
break;
389387

388+
reverbNode->getProcessor()->reset();
390389
mainProcessor->removeNode(reverbNode.get());
391390
}
392391

@@ -400,6 +399,7 @@ void RSAlgorithmicVerbAudioProcessor::updateGraph()
400399
if (reverbNode->getProcessor()->getName() == "Freeverb")
401400
break;
402401

402+
reverbNode->getProcessor()->reset();
403403
mainProcessor->removeNode(reverbNode.get());
404404
}
405405

@@ -410,6 +410,7 @@ void RSAlgorithmicVerbAudioProcessor::updateGraph()
410410
default:
411411
if (reverbNode != nullptr)
412412
{
413+
reverbNode->getProcessor()->reset();
413414
mainProcessor->removeNode(reverbNode.get());
414415
reverbNode = nullptr;
415416
hasChanged = true;

0 commit comments

Comments
 (0)