36 template <
typename NumericType>
53 template <
typename SampleType>
100 memory.malloc (1 +
jmax (newSize,
size,
static_cast<size_t> (128)));
106 for (
size_t i = 0;
i <
size; ++
i)
107 fifo[
i] = SampleType {0};
122 template <
typename ProcessContext>
123 void process (
const ProcessContext& context)
noexcept
125 static_assert (std::is_same<typename ProcessContext::SampleType, SampleType>::value,
126 "The sample-type of the FIR filter must match the sample-type supplied to this process callback");
129 auto&& inputBlock = context.getInputBlock();
130 auto&& outputBlock = context.getOutputBlock();
134 jassert (inputBlock.getNumChannels() == 1);
135 jassert (outputBlock.getNumChannels() == 1);
137 auto numSamples = inputBlock.getNumSamples();
138 auto* src = inputBlock .getChannelPointer (0);
139 auto* dst = outputBlock.getChannelPointer (0);
144 if (context.isBypassed)
146 for (
size_t i = 0;
i < numSamples; ++
i)
149 p = (
p == 0 ?
size - 1 :
p - 1);
154 for (
size_t i = 0;
i < numSamples; ++
i)
194 for (
k = 0;
k <
m -
p; ++
k)
195 out += buf[(
p +
k)] * fir[
k];
197 for (
size_t j = 0;
j <
p; ++
j)
198 out += buf[
j] * fir[
j +
k];
200 p = (
p == 0 ?
m - 1 :
p - 1);
217 template <
typename NumericType>
253 size_t numSamples,
double sampleRate)
const noexcept;
264 size_t numSamples,
double sampleRate)
const noexcept;
#define noexcept
Definition DistrhoDefines.h:72
#define check(expr)
Definition blargg_source.h:32
Definition juce_Array.h:56
Definition juce_HeapBlock.h:87
Definition juce_ReferenceCountedObject.h:247
Definition juce_FIRFilter.h:55
Coefficients< NumericType >::Ptr coefficients
Definition juce_FIRFilter.h:118
HeapBlock< SampleType > memory
Definition juce_FIRFilter.h:173
typename Coefficients< NumericType >::Ptr CoefficientsPtr
Definition juce_FIRFilter.h:63
void process(const ProcessContext &context) noexcept
Definition juce_FIRFilter.h:123
typename SampleTypeHelpers::ElementType< SampleType >::Type NumericType
Definition juce_FIRFilter.h:60
SampleType JUCE_VECTOR_CALLTYPE processSample(SampleType sample) noexcept
Definition juce_FIRFilter.h:165
SampleType * fifo
Definition juce_FIRFilter.h:174
Filter(const Filter &)=default
size_t size
Definition juce_FIRFilter.h:175
size_t pos
Definition juce_FIRFilter.h:175
Filter(CoefficientsPtr coefficientsToUse)
Definition juce_FIRFilter.h:70
void check()
Definition juce_FIRFilter.h:178
static SampleType JUCE_VECTOR_CALLTYPE processSingleSample(SampleType sample, SampleType *buf, const NumericType *fir, size_t m, size_t &p) noexcept
Definition juce_FIRFilter.h:186
Filter(Filter &&)=default
void prepare(const ProcessSpec &spec) noexcept
Definition juce_FIRFilter.h:79
Filter()
Definition juce_FIRFilter.h:67
void reset()
Definition juce_FIRFilter.h:92
unsigned * m
Definition inflate.c:1559
register unsigned k
Definition inflate.c:946
register unsigned j
Definition inflate.c:1576
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
float out
Definition lilv_test.c:1461
Definition juce_FIRFilter.h:35
Definition juce_AudioBlock.h:29
Definition carla_juce.cpp:31
constexpr Type jmax(Type a, Type b)
Definition juce_MathsFunctions.h:94
Type * snapPointerToAlignment(Type *basePointer, IntegerType alignmentBytes) noexcept
Definition juce_Memory.h:45
Definition juce_Uuid.h:141
Definition juce_FIRFilter.h:219
void normalise() noexcept
void getMagnitudeForFrequencyArray(double *frequencies, double *magnitudes, size_t numSamples, double sampleRate) const noexcept
size_t getFilterOrder() const noexcept
Definition juce_FIRFilter.h:242
Coefficients()
Definition juce_FIRFilter.h:222
Coefficients(const NumericType *samples, size_t numSamples)
Definition juce_FIRFilter.h:228
Coefficients(size_t size)
Definition juce_FIRFilter.h:225
double getMagnitudeForFrequency(double frequency, double sampleRate) const noexcept
ReferenceCountedObjectPtr< Coefficients > Ptr
Definition juce_FIRFilter.h:238
Array< NumericType > coefficients
Definition juce_FIRFilter.h:280
Coefficients(Coefficients &&)=default
Coefficients(const Coefficients &)=default
double getPhaseForFrequency(double frequency, double sampleRate) const noexcept
NumericType * getRawCoefficients() noexcept
Definition juce_FIRFilter.h:267
const NumericType * getRawCoefficients() const noexcept
Definition juce_FIRFilter.h:270
void getPhaseForFrequencyArray(double *frequencies, double *phases, size_t numSamples, double sampleRate) const noexcept
Definition juce_ProcessContext.h:38
Definition juce_ProcessContext.h:67
T Type
Definition juce_AudioBlock.h:37
signed int sample
Definition tap_dynamics_m.c:41
uch * p
Definition crypt.c:594
typedef int(UZ_EXP MsgFn)()
#define const
Definition zconf.h:137