36 template <
typename NumericType>
59 template <
typename SampleType>
75 [[deprecated (
"The classes in the StateVariableFilter namespace are deprecated. you should "
76 "use the equivalent functionality in the StateVariableTPTFilter class.")]]
80 [[deprecated (
"The classes in the StateVariableFilter namespace are deprecated. you should "
81 "use the equivalent functionality in the StateVariableTPTFilter class.")]]
110 template <
typename ProcessContext>
111 void process (
const ProcessContext& context)
noexcept
113 static_assert (std::is_same<typename ProcessContext::SampleType, SampleType>::value,
114 "The sample-type of the filter must match the sample-type supplied to this process callback");
116 if (context.isBypassed)
134 return SampleType{0};
139 template <bool isBypassed, typename Parameters<NumericType>::Type
type>
142 y[2] = (
sample -
s1 * state.R2 -
s1 * state.g -
s2) * state.h;
144 y[1] =
y[2] * state.g +
s1;
145 s1 =
y[2] * state.g +
y[1];
147 y[0] =
y[1] * state.g +
s2;
148 s2 =
y[1] * state.g +
y[0];
153 template <bool isBypassed, typename Parameters<NumericType>::Type
type>
154 void processBlock (
const SampleType* input, SampleType* output,
size_t n)
noexcept
158 for (
size_t i = 0 ;
i <
n; ++
i)
161 #if JUCE_DSP_ENABLE_SNAP_TO_ZERO
168 template <
bool isBypassed,
typename ProcessContext>
171 auto&& inputBlock = context.getInputBlock();
172 auto&& outputBlock = context.getOutputBlock();
176 jassert (inputBlock.getNumChannels() == 1);
177 jassert (outputBlock.getNumChannels() == 1);
179 auto n = inputBlock.getNumSamples();
180 auto* src = inputBlock .getChannelPointer (0);
181 auto* dst = outputBlock.getChannelPointer (0);
193 std::array<SampleType, 3>
y;
213 template <
typename NumericType>
233 jassert (resonance > NumericType (0));
234 jassert (frequency > NumericType (0) && frequency <= NumericType (sampleRate * 0.5));
237 R2 =
static_cast<NumericType
> (1.0 / resonance);
238 h =
static_cast<NumericType
> (1.0 / (1.0 +
R2 *
g +
g *
g));
255 NumericType
h =
static_cast<NumericType
> (1.0 / (1.0 +
R2 *
g +
g *
g));
#define noexcept
Definition DistrhoDefines.h:72
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
Definition juce_ReferenceCountedObject.h:247
Filter()
Definition juce_StateVariableFilter.h:77
Parameters< NumericType >::Ptr parameters
Definition juce_StateVariableFilter.h:107
typename Parameters< NumericType >::Ptr ParametersPtr
Definition juce_StateVariableFilter.h:70
void prepare(const ProcessSpec &) noexcept
Definition juce_StateVariableFilter.h:93
SampleType s1
Definition juce_StateVariableFilter.h:194
void process(const ProcessContext &context) noexcept
Definition juce_StateVariableFilter.h:111
void reset() noexcept
Definition juce_StateVariableFilter.h:96
Filter(ParametersPtr parametersToUse)
Definition juce_StateVariableFilter.h:82
std::array< SampleType, 3 > y
Definition juce_StateVariableFilter.h:193
SampleType JUCE_VECTOR_CALLTYPE processSample(SampleType sample) noexcept
Definition juce_StateVariableFilter.h:124
SampleType s2
Definition juce_StateVariableFilter.h:194
Filter(const Filter &)=default
void processInternal(const ProcessContext &context) noexcept
Definition juce_StateVariableFilter.h:169
void processBlock(const SampleType *input, SampleType *output, size_t n) noexcept
Definition juce_StateVariableFilter.h:154
void snapToZero() noexcept
Definition juce_StateVariableFilter.h:102
SampleType JUCE_VECTOR_CALLTYPE processLoop(SampleType sample, Parameters< NumericType > &state) noexcept
Definition juce_StateVariableFilter.h:140
typename SampleTypeHelpers::ElementType< SampleType >::Type NumericType
Definition juce_StateVariableFilter.h:67
Filter(Filter &&)=default
register unsigned i
Definition inflate.c:1575
#define JUCE_LEAK_DETECTOR(OwnerClass)
Definition juce_LeakedObjectDetector.h:138
#define JUCE_VECTOR_CALLTYPE
Definition juce_dsp.h:100
Definition juce_StateVariableFilter.h:35
StateVariableFilterType
Definition juce_StateVariableFilter.h:201
@ bandPass
Definition juce_StateVariableFilter.h:203
@ lowPass
Definition juce_StateVariableFilter.h:202
@ highPass
Definition juce_StateVariableFilter.h:204
void snapToZero(SIMDRegister< Type > &) noexcept
Definition juce_SIMDRegister_Impl.h:167
Definition juce_AudioBlock.h:29
bool isBypassed(const ProcessorChain< Processors... > &chain) noexcept
Definition juce_ProcessorChain.h:160
Definition carla_juce.cpp:31
Definition juce_Uuid.h:141
static constexpr FloatType sqrt2
Definition juce_MathsFunctions.h:394
static constexpr FloatType pi
Definition juce_MathsFunctions.h:382
Definition juce_ProcessContext.h:38
Definition juce_ProcessContext.h:67
T Type
Definition juce_AudioBlock.h:37
Definition juce_StateVariableFilter.h:215
Parameters(const Parameters &o)
Definition juce_StateVariableFilter.h:249
StateVariableFilterType Type
Definition juce_StateVariableFilter.h:217
void setCutOffFrequency(double sampleRate, NumericType frequency, NumericType resonance=static_cast< NumericType >(1.0/MathConstants< double >::sqrt2)) noexcept
Definition juce_StateVariableFilter.h:229
NumericType g
Definition juce_StateVariableFilter.h:253
Type type
Definition juce_StateVariableFilter.h:221
ReferenceCountedObjectPtr< Parameters > Ptr
Definition juce_StateVariableFilter.h:245
NumericType R2
Definition juce_StateVariableFilter.h:254
NumericType h
Definition juce_StateVariableFilter.h:255
signed int sample
Definition tap_dynamics_m.c:41
int n
Definition crypt.c:458