Spread feedback delays out better
This commit is contained in:
parent
9df6e69313
commit
3771df3f1f
14
reverb.h
14
reverb.h
@ -128,7 +128,7 @@ namespace signalsmith { namespace basics {
|
||||
delay2.configure(maxRoomSamples, 1);
|
||||
delay3.configure(maxRoomSamples, 0.5);
|
||||
delay4.configure(maxRoomSamples, 0.25);
|
||||
delayFeedback.configure(maxRoomSamples*1.5 + detuneDepthSamples, 1);
|
||||
delayFeedback.configure(maxRoomSamples*1.6 + detuneDepthSamples, 1);
|
||||
delayEarly.configure(maxRoomSamples, 0.25);
|
||||
}
|
||||
|
||||
@ -344,16 +344,12 @@ namespace signalsmith { namespace basics {
|
||||
}
|
||||
}
|
||||
|
||||
void updateLengthsExponential(int seed, double rangeSamples) {
|
||||
void updateLengthsExponential(double rangeSamples) {
|
||||
rangeSamples *= delayScale;
|
||||
delayOffsetsPrev = delayOffsets;
|
||||
std::mt19937 engine(seed);
|
||||
constexpr double ratios[8] = {0.0625, -0.0625, 0.1875, -0.1875, 0.3125, -0.3125, 0.4375, -0.4375};
|
||||
for (int i = 0; i < 8; ++i) {
|
||||
delayOffsets[i] = int(-std::floor(rangeSamples*std::pow(2, ratios[i]/2)));
|
||||
std::uniform_int_distribution<int> indexDist(0, i);
|
||||
int swapIndex = indexDist(engine);
|
||||
std::swap(delayOffsets[i], delayOffsets[swapIndex]);
|
||||
delayOffsets[i] = int(-std::floor(rangeSamples*std::pow(2, ratios[i])));
|
||||
}
|
||||
}
|
||||
|
||||
@ -411,11 +407,11 @@ namespace signalsmith { namespace basics {
|
||||
|
||||
MultiDelay delay1, delay2, delay3, delay4, delayFeedback, delayEarly;
|
||||
void updateDelays(double roomSamples) {
|
||||
delay1.updateLengths(0x876753A5, roomSamples, false);
|
||||
delay1.updateLengths(0x6DD09EE5, roomSamples, false);
|
||||
delay2.updateLengths(0x876753A5, roomSamples);
|
||||
delay3.updateLengths(0x5974DF44, roomSamples);
|
||||
delay4.updateLengths(0x8CDBF7E6, roomSamples);
|
||||
delayFeedback.updateLengthsExponential(0xC6BF7158, roomSamples);
|
||||
delayFeedback.updateLengthsExponential(roomSamples);
|
||||
delayEarly.updateLengths(0x0BDDE171, roomSamples);
|
||||
}
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user