From 6d052bc1ac2967fdf5b314577358105c63a388ce Mon Sep 17 00:00:00 2001 From: Christopher Snowhill Date: Tue, 15 Feb 2022 23:22:47 -0800 Subject: [PATCH] Visualization: Increase temporal resolution By reducing the window size, we have a more responsive visualization. Signed-off-by: Christopher Snowhill --- Audio/Visualization/VisualizationController.h | 2 +- Audio/Visualization/VisualizationController.m | 10 +++++----- Visualization/SpectrumView.m | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Audio/Visualization/VisualizationController.h b/Audio/Visualization/VisualizationController.h index 2feb6c0e8..d0e112585 100644 --- a/Audio/Visualization/VisualizationController.h +++ b/Audio/Visualization/VisualizationController.h @@ -11,7 +11,7 @@ NS_ASSUME_NONNULL_BEGIN @interface VisualizationController : NSObject { double sampleRate; - float visAudio[8192]; + float visAudio[4096]; } + (VisualizationController *)sharedController; diff --git a/Audio/Visualization/VisualizationController.m b/Audio/Visualization/VisualizationController.m index c6178a90e..360b0a16b 100644 --- a/Audio/Visualization/VisualizationController.m +++ b/Audio/Visualization/VisualizationController.m @@ -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); } } diff --git a/Visualization/SpectrumView.m b/Visualization/SpectrumView.m index 58033a282..a0c1c64e6 100644 --- a/Visualization/SpectrumView.m +++ b/Visualization/SpectrumView.m @@ -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);