1 #include "AUEffectBase.h"
2 #include "BlueFilterVersion.h"
5 #if AU_DEBUG_DISPATCHER
6 #include "AUDebugDispatcher.h"
10 #ifndef __BlueFilter_h__
11 #define __BlueFilter_h__
15 static CFStringRef kParameterOneName = CFSTR(
"Frequency");
16 static const float kDefaultValue_ParamOne = 1000.0;
20 kNumberOfParameters = 1
25 static const float kParameter_Preset_Low = 200.0;
26 static const float kParameter_Preset_High = 2000.0;
34 static AUPreset kPresets [kNumberPresets] = {
35 {kPreset_Low, CFSTR (
"Low")},
36 {kPreset_High, CFSTR (
"High")}
39 static const int kPreset_Default = kPreset_Low;
43 class BlueFilter :
public AUEffectBase
49 BlueFilter(AudioUnit component);
51 #if AU_DEBUG_DISPATCHER
52 virtual ~BlueFilter ()
54 delete mDebugDispatcher;
59 virtual AUKernelBase* NewKernel()
61 return new BlueFilterKernel(
this);
67 virtual OSStatus GetParameterValueStrings(AudioUnitScope inScope, AudioUnitParameterID inParameterID, CFArrayRef* outStrings);
70 virtual OSStatus GetParameterInfo(AudioUnitScope inScope,
71 AudioUnitParameterID inParameterID,
72 AudioUnitParameterInfo &outParameterInfo);
77 virtual OSStatus GetPropertyInfo(AudioUnitPropertyID inID,
78 AudioUnitScope inScope,
79 AudioUnitElement inElement,
81 Boolean& outWritable );
84 virtual OSStatus GetProperty(AudioUnitPropertyID inID,
85 AudioUnitScope inScope,
86 AudioUnitElement inElement,
91 virtual ComponentResult GetPresets(CFArrayRef* outData)
const;
92 virtual OSStatus NewFactoryPresetSet(
const AUPreset& inNewFactoryPreset);
95 virtual bool SupportsTail()
101 virtual OSStatus Version()
103 return kBlueFilterVersion;
109 class BlueFilterKernel :
public AUKernelBase
112 BlueFilterKernel(AUEffectBase *inAudioUnit )
113 : AUKernelBase(inAudioUnit), mButter(NULL), mInput(NULL), mOutput(NULL)
117 TTObjectInstantiate(
TT(
"lowpass.butterworth.4"), &mButter, numChannels);
118 mButter->setAttributeValue(
TT(
"sr"), GetSampleRate());
120 TTObjectInstantiate(kTTSym_audiosignal, &mInput, numChannels);
121 TTObjectInstantiate(kTTSym_audiosignal, &mOutput, numChannels);
125 virtual ~BlueFilterKernel()
127 TTObjectRelease(&mButter);
128 TTObjectRelease(&mInput);
129 TTObjectRelease(&mOutput);
135 virtual void Process(
const Float32 *inSourceP,
137 UInt32 inFramesToProcess,
138 UInt32 inNumChannels,
142 virtual void Reset();
std::uint16_t TTUInt16
16 bit unsigned integer
Wrap audio objects for convenience.
#define TT
This macro is defined as a shortcut for doing a lookup in the symbol table.
The TTAudioSignal class represents N vectors of audio samples for M channels.