48 lines
1004 B
C
48 lines
1004 B
C
|
//
|
||
|
// HeadphoneFilter.h
|
||
|
// CogAudio Framework
|
||
|
//
|
||
|
// Created by Christopher Snowhill on 1/24/22.
|
||
|
//
|
||
|
|
||
|
#ifndef HeadphoneFilter_h
|
||
|
#define HeadphoneFilter_h
|
||
|
|
||
|
#import <Accelerate/Accelerate.h>
|
||
|
#import <Cocoa/Cocoa.h>
|
||
|
|
||
|
@interface HeadphoneFilter : NSObject {
|
||
|
vDSP_DFT_Setup dftSetupF;
|
||
|
vDSP_DFT_Setup dftSetupB;
|
||
|
|
||
|
size_t fftSize;
|
||
|
size_t fftSizeOver2;
|
||
|
size_t bufferSize;
|
||
|
size_t paddedBufferSize;
|
||
|
int channelCount;
|
||
|
|
||
|
DSPSplitComplex signal_fft;
|
||
|
DSPSplitComplex input_filtered_signal_per_channel[2];
|
||
|
DSPSplitComplex input_filtered_signal_totals[2];
|
||
|
DSPSplitComplex *impulse_responses;
|
||
|
|
||
|
float **prevInputs;
|
||
|
|
||
|
float *left_result;
|
||
|
float *right_result;
|
||
|
|
||
|
float *paddedSignal;
|
||
|
}
|
||
|
|
||
|
+ (BOOL)validateImpulseFile:(NSURL *)url;
|
||
|
|
||
|
- (id)initWithImpulseFile:(NSURL *)url forSampleRate:(double)sampleRate withInputChannels:(int)channels withConfig:(uint32_t)config;
|
||
|
|
||
|
- (void)process:(const float *)inBuffer sampleCount:(size_t)count toBuffer:(float *)outBuffer;
|
||
|
|
||
|
- (void)reset;
|
||
|
|
||
|
@end
|
||
|
|
||
|
#endif /* HeadphoneFilter_h */
|