24 upsampleStages=stages;
25 downsampleStages=stages;
28 Resampler(
int aUpsampleStages,
int aDownsampleStages){
29 upsampleStages=aUpsampleStages;
30 downsampleStages=aDownsampleStages;
42 static float downCoeffs[5]={0.07609109, 0.15218218, 0.07609109, +1.16511283, -0.54828486};
43 static float upCoeffs[5]={0.07609109, 0.15218218, 0.07609109, +1.16511283, -0.54828486};
44 for(
int n=0; n<3; n++){
45 upCoeffs[n]=downCoeffs[n]*factor;
47 for(
int n=3; n<5; n++){
48 upCoeffs[n]=downCoeffs[n];
55 downfilter->
process(input, input);
56 float* p = (
float*)input;
57 for(
size_t i=0; i<output.
getSize(); ++i){
65 for(
size_t i=0; i<input.
getSize(); ++i){
71 upfilter->
process(output, output);
85 float upCoeffs[5]= {0.07609109, 0.15218218, 0.07609109, +1.16511283, -0.54828486};
86 for(
int n=0; n<3; n++)
87 upCoeffs[n] *= factor;
105 for(
size_t i=0; i<input.
getSize(); i+= factor)
107 filter->
process(output, output);
121 static float downCoeffs[5]={0.07609109, 0.15218218, 0.07609109, +1.16511283, -0.54828486};
138 float* p = (
float*)input;
139 for(
size_t i=0; i<output.
getSize(); ++i){
static BiquadFilter * create(float sr, size_t stages=1)
static void destroy(BiquadFilter *filter)
void process(float *input, float *output, size_t size)
static DownSampler * create(int stages, int factor=4)
void process(FloatArray input, FloatArray output)
Down-sample param @input and put results into.
float process(float input)
static void destroy(DownSampler *obj)
DownSampler(BiquadFilter *filter, int factor=4)
This class contains useful methods for manipulating arrays of floats.
void clear()
Clear the array.
Implements 4x oversampling.
Resampler(int aUpsampleStages, int aDownsampleStages)
void downsample(FloatArray input, FloatArray output)
void upsample(FloatArray input, FloatArray output)
Base class for signal processors such as Filters.
static void destroy(UpSampler *obj)
UpSampler(BiquadFilter *filter, int factor=4)
static UpSampler * create(int stages, int factor=4)
void process(FloatArray input, FloatArray output)
Up-sample.
float process(float input)
#define ASSERT(cond, msg)