Visualization: Increase temporal resolution
By reducing the window size, we have a more responsive visualization. Signed-off-by: Christopher Snowhill <kode54@gmail.com>CQTexperiment
parent
0d4ee4c901
commit
6d052bc1ac
|
@ -11,7 +11,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
|
||||
@interface VisualizationController : NSObject {
|
||||
double sampleRate;
|
||||
float visAudio[8192];
|
||||
float visAudio[4096];
|
||||
}
|
||||
|
||||
+ (VisualizationController *)sharedController;
|
||||
|
|
|
@ -26,7 +26,7 @@ static VisualizationController *_sharedController = nil;
|
|||
- (id)init {
|
||||
self = [super init];
|
||||
if(self) {
|
||||
vDSP_vclr(visAudio, 1, 8192);
|
||||
vDSP_vclr(visAudio, 1, 4096);
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
@ -43,8 +43,8 @@ static VisualizationController *_sharedController = nil;
|
|||
|
||||
- (void)postVisPCM:(const float *)inPCM {
|
||||
@synchronized(self) {
|
||||
cblas_scopy(8192 - 512, visAudio + 512, 1, visAudio, 1);
|
||||
cblas_scopy(512, inPCM, 1, visAudio + 8192 - 512, 1);
|
||||
cblas_scopy(4096 - 512, visAudio + 512, 1, visAudio, 1);
|
||||
cblas_scopy(512, inPCM, 1, visAudio + 4096 - 512, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -56,8 +56,8 @@ static VisualizationController *_sharedController = nil;
|
|||
|
||||
- (void)copyVisPCM:(float *)outPCM visFFT:(float *)outFFT {
|
||||
@synchronized(self) {
|
||||
cblas_scopy(8192, visAudio, 1, outPCM, 1);
|
||||
fft_calculate(visAudio, outFFT, 4096);
|
||||
cblas_scopy(4096, visAudio, 1, outPCM, 1);
|
||||
fft_calculate(visAudio, outFFT, 2048);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -243,11 +243,11 @@ extern NSString *CogPlaybackDidStopNotficiation;
|
|||
|
||||
if(stopped) return;
|
||||
|
||||
float visAudio[8192], visFFT[4096];
|
||||
float visAudio[4096], visFFT[2048];
|
||||
|
||||
[self->visController copyVisPCM:&visAudio[0] visFFT:&visFFT[0]];
|
||||
|
||||
ddb_analyzer_process(&_analyzer, [self->visController readSampleRate] / 2.0, 1, visFFT, 4096);
|
||||
ddb_analyzer_process(&_analyzer, [self->visController readSampleRate] / 2.0, 1, visFFT, 2048);
|
||||
ddb_analyzer_tick(&_analyzer);
|
||||
ddb_analyzer_get_draw_data(&_analyzer, self.bounds.size.width, self.bounds.size.height, &_draw_data);
|
||||
|
||||
|
|
Loading…
Reference in New Issue