diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2019-06-19 12:31:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-19 12:31:09 +0200 |
commit | 0eb8484c8a3cea4520284441af229ec330ee0dcd (patch) | |
tree | e80c5d001151114dbafc0b51c33c884e5112d58e /servers/audio/effects/audio_effect_spectrum_analyzer.cpp | |
parent | 22afebcad71db07063fa11fd4489b29741f28009 (diff) | |
parent | 17adece6ad2c3b07a5fc8180245b507e9285c8fe (diff) | |
download | redot-engine-0eb8484c8a3cea4520284441af229ec330ee0dcd.tar.gz |
Merge pull request #29037 from mdahlgrengadd/master
Make FFT size and oversampling adjustable in smbPitchShifter, add windowing to smbFFT
Diffstat (limited to 'servers/audio/effects/audio_effect_spectrum_analyzer.cpp')
-rw-r--r-- | servers/audio/effects/audio_effect_spectrum_analyzer.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/servers/audio/effects/audio_effect_spectrum_analyzer.cpp b/servers/audio/effects/audio_effect_spectrum_analyzer.cpp index f5ac0afefa..305f9046c3 100644 --- a/servers/audio/effects/audio_effect_spectrum_analyzer.cpp +++ b/servers/audio/effects/audio_effect_spectrum_analyzer.cpp @@ -111,9 +111,10 @@ void AudioEffectSpectrumAnalyzerInstance::process(const AudioFrame *p_src_frames float *fftw = temporal_fft.ptrw(); for (int i = 0; i < to_fill; i++) { //left and right buffers - fftw[(i + temporal_fft_pos) * 2] = p_src_frames[i].l; + float window = -0.5 * Math::cos(2.0 * Math_PI * (double)i / (double)to_fill) + 0.5; + fftw[(i + temporal_fft_pos) * 2] = window * p_src_frames[i].l; fftw[(i + temporal_fft_pos) * 2 + 1] = 0; - fftw[(i + temporal_fft_pos + fft_size * 2) * 2] = p_src_frames[i].r; + fftw[(i + temporal_fft_pos + fft_size * 2) * 2] = window * p_src_frames[i].r; fftw[(i + temporal_fft_pos + fft_size * 2) * 2 + 1] = 0; } |