46template <
typename SampleType>
61 void setMode (Mode newMode)
noexcept;
76 void setCutoffFrequencyHz (SampleType newCutoff)
noexcept;
82 void setResonance (SampleType newResonance)
noexcept;
88 void setDrive (SampleType newDrive)
noexcept;
91 template <typename ProcessContext>
94 const auto& inputBlock = context.getInputBlock();
95 auto& outputBlock = context.getOutputBlock();
96 const auto numChannels = outputBlock.getNumChannels();
97 const auto numSamples = outputBlock.getNumSamples();
100 jassert (inputBlock.getNumChannels() == numChannels);
101 jassert (inputBlock.getNumSamples() == numSamples);
103 if (!
enabled || context.isBypassed)
105 outputBlock.copyFrom (inputBlock);
109 for (
size_t n = 0;
n < numSamples; ++
n)
113 for (
size_t ch = 0; ch < numChannels; ++ch)
114 outputBlock.getChannelPointer (ch)[
n] =
processSample (inputBlock.getChannelPointer (ch)[
n], ch);
120 SampleType processSample (SampleType inputValue,
size_t channelToUse)
noexcept;
134 std::vector<std::array<SampleType, numStates>>
state;
135 std::array<SampleType, numStates>
A;
141 SampleType (-5), SampleType (5), 128 };
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_SmoothedValue.h:227
SampleType processSample(SampleType inputValue, size_t channelToUse) noexcept
Definition juce_LadderFilter.cpp:123
SampleType drive2
Definition juce_LadderFilter.h:131
SampleType drive
Definition juce_LadderFilter.h:131
SampleType gain
Definition juce_LadderFilter.h:131
LadderFilter()
Definition juce_LadderFilter.cpp:33
LookupTableTransform< SampleType > saturationLUT
Definition juce_LadderFilter.h:140
bool enabled
Definition juce_LadderFilter.h:149
static constexpr size_t numStates
Definition juce_LadderFilter.h:133
void updateSmoothers() noexcept
Definition juce_LadderFilter.cpp:151
SmoothedValue< SampleType > cutoffTransformSmoother
Definition juce_LadderFilter.h:137
Mode mode
Definition juce_LadderFilter.h:148
SampleType gain2
Definition juce_LadderFilter.h:131
void updateResonance() noexcept
Definition juce_LadderFilter.h:128
std::vector< std::array< SampleType, numStates > > state
Definition juce_LadderFilter.h:134
void setEnabled(bool isEnabled) noexcept
Definition juce_LadderFilter.h:58
SampleType resonance
Definition juce_LadderFilter.h:144
SmoothedValue< SampleType > scaledResonanceSmoother
Definition juce_LadderFilter.h:137
SampleType cutoffFreqScaler
Definition juce_LadderFilter.h:146
void setNumChannels(size_t newValue)
Definition juce_LadderFilter.h:126
SampleType cutoffTransformValue
Definition juce_LadderFilter.h:138
void updateCutoffFreq() noexcept
Definition juce_LadderFilter.h:127
SampleType scaledResonanceValue
Definition juce_LadderFilter.h:138
size_t getNumChannels() const noexcept
Definition juce_LadderFilter.h:67
void process(const ProcessContext &context) noexcept
Definition juce_LadderFilter.h:92
LadderFilterMode Mode
Definition juce_LadderFilter.h:51
SampleType comp
Definition juce_LadderFilter.h:131
SampleType cutoffFreqHz
Definition juce_LadderFilter.h:143
std::array< SampleType, numStates > A
Definition juce_LadderFilter.h:135
unsigned x[BMAX+1]
Definition inflate.c:1586
virtual ASIOError setSampleRate(ASIOSampleRate sampleRate)=0
Definition juce_AudioBlock.h:29
LadderFilterMode
Definition juce_LadderFilter.h:32
@ LPF24
Definition juce_LadderFilter.h:36
@ BPF24
Definition juce_LadderFilter.h:38
@ LPF12
Definition juce_LadderFilter.h:33
@ BPF12
Definition juce_LadderFilter.h:35
@ HPF24
Definition juce_LadderFilter.h:37
@ HPF12
Definition juce_LadderFilter.h:34
Definition carla_juce.cpp:31
constexpr Type jmap(Type value0To1, Type targetRangeMin, Type targetRangeMax)
Definition juce_MathsFunctions.h:120
Definition juce_ProcessContext.h:38
int n
Definition crypt.c:458
#define const
Definition zconf.h:137