Visualization: Increase temporal resolution

By reducing the window size, we have a more responsive visualization.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
CQTexperiment
Christopher Snowhill 2022-02-15 23:22:47 -08:00
parent 0d4ee4c901
commit 6d052bc1ac
3 changed files with 8 additions and 8 deletions

View File

@ -11,7 +11,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface VisualizationController : NSObject {
double sampleRate;
float visAudio[8192];
float visAudio[4096];
}
+ (VisualizationController *)sharedController;

View File

@ -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);
}
}

View File

@ -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);