public final class Filters extends Object
Offers methods to create a number of useful filters, including MIDI filterbanks.
Furthermore, you can create your own filters using the Filters.IIRFilter
and Filters.FIRFilter
classes.
Filters are StatefulMapFunction
s and as such can be used in Mapping
to
be part of a SignalPipeline
. To filter an AudioBuffer
create a Mapping like this:
Downsample
,
MultirateFilters
Modifier and Type | Class and Description |
---|---|
static class |
Filters.FIRFilter
FIR (finite impulse response) filter.
|
static class |
Filters.FourthOrderIIRFilter
(Faster) implementation of a fourth order IIR (infinite impulse response) filter.
|
static class |
Filters.IIRFilter
IIR (infinite impulse response) filter.
|
public static Filters.FIRFilter createFir1_16thOrderLowpass(int factor) throws IllegalArgumentException
factor
-th-Nyquist pass (ω=1/factor).
Supported factors are 1, 2, 3, 4, 5, 7, 8 and 160.factor
- factorIllegalArgumentException
- if the factor is not supported.public static Filters.FIRFilter createFir1_16thOrderLowpassCutoff160th()
createFir1_16thOrderLowpass(int)
public static Filters.FIRFilter createFir1_16thOrderLowpassCutoffSeventh()
createFir1_16thOrderLowpass(int)
public static Filters.FIRFilter createFir1_16thOrderLowpassCutoffFifth()
createFir1_16thOrderLowpass(int)
public static Filters.FIRFilter createFir1_16thOrderLowpassCutoffThird()
createFir1_16thOrderLowpass(int)
public static Filters.FIRFilter createFir1_16thOrderLowpassCutoffHalf()
createFir1_16thOrderLowpass(int)
public static Filters.FIRFilter createFir1_16thOrderLowpassCutoffQuarter()
createFir1_16thOrderLowpass(int)
public static Filters.FIRFilter createFir1_16thOrderLowpassCutoffEighth()
createFir1_16thOrderLowpass(int)
public static Filters.FourthOrderIIRFilter createButterworth4thOrderLowpass(int factor) throws IllegalArgumentException
factor
-th-Nyquist pass (ω=1/factor).
Supported factors are 2, 4, and 8.factor
- factorIllegalArgumentException
- if the factor is not supported.public static Filters.FourthOrderIIRFilter createButterworth4thOrderLowpassCutoffHalf()
createButterworth4thOrderLowpass(int)
public static Filters.FourthOrderIIRFilter createButterworth4thOrderLowpassCutoffQuarter()
createButterworth4thOrderLowpass(int)
public static Filters.FourthOrderIIRFilter createButterworth4thOrderLowpassCutoffEighth()
createButterworth4thOrderLowpass(int)
public static Filters.IIRFilter createElliptic8thOrderLowpass(int factor) throws IllegalArgumentException
factor
-th-Nyquist pass (ω=1/factor).
Supported factors are 2, 4, and 8.factor
- factorIllegalArgumentException
- if the factor is not supported.public static Filters.IIRFilter createElliptic8thOrderLowpassCutoffHalf()
createElliptic8thOrderLowpass(int)
format long e; ellip(8,1,50,0.5)
public static Filters.IIRFilter createElliptic8thOrderLowpassCutoffQuarter()
createElliptic8thOrderLowpass(int)
format long e; ellip(8,1,50,0.25)
public static Filters.IIRFilter createElliptic8thOrderLowpassCutoffEighth()
createElliptic8thOrderLowpass(int)
format long e; ellip(8,1,50,0.125)
public static Filters.IIRFilter[] createMidiFilterBank(float sampleRate, int minMidiPitch, int maxMidiPitch) throws IllegalArgumentException
If only a subset of the complete filterbank is desired, you can specify a minimum and a maximum pitch (both incl.).
Note that the individual filters are stateful and can't simply ce re-used in a different context.
sampleRate
- one of several supported sample rates (currently 44100Hz, 22050Hz, 11025Hz, 5512.5Hz, 2756.25Hz, 4410Hz, 882Hz)minMidiPitch
- smallest pitch to include (inclusive)maxMidiPitch
- greatest pitch to include (inclusive)IllegalArgumentException
- if the desired sample rate is not supportedcreateMidi44100HzElliptic8thOrderFilterBank(int, int)
Copyright © 2011–2020 tagtraum industries incorporated. All rights reserved.