71 const float wetScaleFactor = 3.0f;
72 const float dryScaleFactor = 2.0f;
74 const float wet = newParams.
wetLevel * wetScaleFactor;
76 wetGain1.setTargetValue (0.5f * wet * (1.0f + newParams.
width));
77 wetGain2.setTargetValue (0.5f * wet * (1.0f - newParams.
width));
92 static const short combTunings[] = { 1116, 1188, 1277, 1356, 1422, 1491, 1557, 1617 };
93 static const short allPassTunings[] = { 556, 441, 341, 225 };
94 const int stereoSpread = 23;
95 const int intSampleRate = (
int) sampleRate;
99 comb[0][
i].setSize ((intSampleRate * combTunings[
i]) / 44100);
100 comb[1][
i].setSize ((intSampleRate * (combTunings[
i] + stereoSpread)) / 44100);
105 allPass[0][
i].setSize ((intSampleRate * allPassTunings[
i]) / 44100);
106 allPass[1][
i].setSize ((intSampleRate * (allPassTunings[
i] + stereoSpread)) / 44100);
109 const double smoothTime = 0.01;
110 damping .reset (sampleRate, smoothTime);
111 feedback.reset (sampleRate, smoothTime);
112 dryGain .reset (sampleRate, smoothTime);
113 wetGain1.reset (sampleRate, smoothTime);
114 wetGain2.reset (sampleRate, smoothTime);
137 for (
int i = 0;
i < numSamples; ++
i)
140 float outL = 0, outR = 0;
142 const float damp =
damping.getNextValue();
143 const float feedbck =
feedback.getNextValue();
147 outL +=
comb[0][
j].process (input, damp, feedbck);
148 outR +=
comb[1][
j].process (input, damp, feedbck);
153 outL =
allPass[0][
j].process (outL);
154 outR =
allPass[1][
j].process (outR);
157 const float dry =
dryGain.getNextValue();
158 const float wet1 =
wetGain1.getNextValue();
159 const float wet2 =
wetGain2.getNextValue();
161 left[
i] = outL * wet1 + outR * wet2 +
left[
i] * dry;
168 void processMono (
float*
const samples,
const int numSamples)
noexcept
173 for (
int i = 0;
i < numSamples; ++
i)
175 const float input = samples[
i] *
gain;
178 const float damp =
damping.getNextValue();
179 const float feedbck =
feedback.getNextValue();
187 const float dry =
dryGain.getNextValue();
188 const float wet1 =
wetGain1.getNextValue();
190 samples[
i] = output * wet1 + samples[
i] * dry;
197 static bool isFrozen (
const float freezeMode)
noexcept {
return freezeMode >= 0.5f; }
201 const float roomScaleFactor = 0.28f;
202 const float roomOffset = 0.7f;
203 const float dampScaleFactor = 0.4f;
209 parameters.roomSize * roomScaleFactor + roomOffset);
212 void setDamping (
const float dampingToUse,
const float roomSizeToUse)
noexcept
214 damping.setTargetValue (dampingToUse);
215 feedback.setTargetValue (roomSizeToUse);
242 float process (
const float input,
const float damp,
const float feedbackLevel)
noexcept
245 last = (output * (1.0f - damp)) + (
last * damp);
248 float temp = input + (
last * feedbackLevel);
289 float temp = input + (bufferedValue * 0.5f);
293 return bufferedValue - input;
#define noexcept
Definition DistrhoDefines.h:72
void process(Alg_seq_ptr seq, bool tempo_flag, double tempo, bool flatten_flag)
Definition allegroconvert.cpp:42
Definition juce_HeapBlock.h:87
Definition juce_Reverb.h:265
void clear() noexcept
Definition juce_Reverb.h:281
void setSize(const int size)
Definition juce_Reverb.h:269
AllPassFilter() noexcept
Definition juce_Reverb.h:267
float process(const float input) noexcept
Definition juce_Reverb.h:286
int bufferSize
Definition juce_Reverb.h:298
HeapBlock< float > buffer
Definition juce_Reverb.h:297
int bufferIndex
Definition juce_Reverb.h:298
Definition juce_Reverb.h:220
float last
Definition juce_Reverb.h:258
float process(const float input, const float damp, const float feedbackLevel) noexcept
Definition juce_Reverb.h:242
int bufferIndex
Definition juce_Reverb.h:257
CombFilter() noexcept
Definition juce_Reverb.h:222
HeapBlock< float > buffer
Definition juce_Reverb.h:256
int bufferSize
Definition juce_Reverb.h:257
void setSize(const int size)
Definition juce_Reverb.h:224
void clear() noexcept
Definition juce_Reverb.h:236
void processMono(float *const samples, const int numSamples) noexcept
Definition juce_Reverb.h:168
void reset()
Definition juce_Reverb.h:118
SmoothedValue< float > wetGain2
Definition juce_Reverb.h:312
SmoothedValue< float > dryGain
Definition juce_Reverb.h:312
void processStereo(float *const left, float *const right, const int numSamples) noexcept
Definition juce_Reverb.h:132
SmoothedValue< float > damping
Definition juce_Reverb.h:312
float gain
Definition juce_Reverb.h:307
void setParameters(const Parameters &newParams)
Definition juce_Reverb.h:69
SmoothedValue< float > wetGain1
Definition juce_Reverb.h:312
static bool isFrozen(const float freezeMode) noexcept
Definition juce_Reverb.h:197
Reverb()
Definition juce_Reverb.h:42
const Parameters & getParameters() const noexcept
Definition juce_Reverb.h:63
@ numChannels
Definition juce_Reverb.h:304
@ numAllPasses
Definition juce_Reverb.h:304
@ numCombs
Definition juce_Reverb.h:304
void setSampleRate(const double sampleRate)
Definition juce_Reverb.h:88
SmoothedValue< float > feedback
Definition juce_Reverb.h:312
void updateDamping() noexcept
Definition juce_Reverb.h:199
void setDamping(const float dampingToUse, const float roomSizeToUse) noexcept
Definition juce_Reverb.h:212
Parameters parameters
Definition juce_Reverb.h:306
CombFilter comb[numChannels][numCombs]
Definition juce_Reverb.h:309
AllPassFilter allPass[numChannels][numAllPasses]
Definition juce_Reverb.h:310
Definition juce_SmoothedValue.h:227
register unsigned j
Definition inflate.c:1576
register unsigned i
Definition inflate.c:1575
struct @113205115357366127300225113341150224053346037032::@137033172036070230260373056156374243321245367362 left
struct @113205115357366127300225113341150224053346037032::@137033172036070230260373056156374243321245367362 right
virtual ASIOError setSampleRate(ASIOSampleRate sampleRate)=0
#define JUCE_BEGIN_IGNORE_WARNINGS_MSVC(warnings)
Definition juce_CompilerWarnings.h:198
#define JUCE_END_IGNORE_WARNINGS_MSVC
Definition juce_CompilerWarnings.h:199
#define JUCE_UNDENORMALISE(x)
Definition juce_MathsFunctions.h:613
Definition carla_juce.cpp:31
Definition juce_Reverb.h:51
float roomSize
Definition juce_Reverb.h:52
float width
Definition juce_Reverb.h:56
float dryLevel
Definition juce_Reverb.h:55
float wetLevel
Definition juce_Reverb.h:54
float freezeMode
Definition juce_Reverb.h:57
float damping
Definition juce_Reverb.h:53
typedef int(UZ_EXP MsgFn)()
#define const
Definition zconf.h:137