From 37f0c3f33dbd7d4012e37e6b287890b432a9d65c Mon Sep 17 00:00:00 2001 From: Shmuel H Date: Tue, 22 May 2018 15:45:35 +0300 Subject: [PATCH] SampleBuffer -> Use processingSampleRate. SampleBuffer was using baseSampleRate as the default samplerate instead of the actual processingSampleRate. --- include/SampleBuffer.h | 2 ++ src/core/SampleBuffer.cpp | 17 +++++++++++------ src/core/SamplePlayHandle.cpp | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/include/SampleBuffer.h b/include/SampleBuffer.h index 3acf2c10b..1e48a44f4 100644 --- a/include/SampleBuffer.h +++ b/include/SampleBuffer.h @@ -265,6 +265,8 @@ public slots: void sampleRateChanged(); private: + static sample_rate_t mixerSampleRate(); + void update( bool _keep_settings = false ); void convertIntToFloat ( int_sample_t * & _ibuf, f_cnt_t _frames, int _channels); diff --git a/src/core/SampleBuffer.cpp b/src/core/SampleBuffer.cpp index a364be4b8..7f0980fe9 100644 --- a/src/core/SampleBuffer.cpp +++ b/src/core/SampleBuffer.cpp @@ -73,7 +73,7 @@ SampleBuffer::SampleBuffer( const QString & _audio_file, m_amplification( 1.0f ), m_reversed( false ), m_frequency( BaseFreq ), - m_sampleRate( Engine::mixer()->baseSampleRate() ) + m_sampleRate( mixerSampleRate () ) { if( _is_base64_data == true ) { @@ -99,7 +99,7 @@ SampleBuffer::SampleBuffer( const sampleFrame * _data, const f_cnt_t _frames ) : m_amplification( 1.0f ), m_reversed( false ), m_frequency( BaseFreq ), - m_sampleRate( Engine::mixer()->baseSampleRate() ) + m_sampleRate( mixerSampleRate () ) { if( _frames > 0 ) { @@ -127,7 +127,7 @@ SampleBuffer::SampleBuffer( const f_cnt_t _frames ) : m_amplification( 1.0f ), m_reversed( false ), m_frequency( BaseFreq ), - m_sampleRate( Engine::mixer()->baseSampleRate() ) + m_sampleRate( mixerSampleRate () ) { if( _frames > 0 ) { @@ -155,6 +155,11 @@ void SampleBuffer::sampleRateChanged() update( true ); } +sample_rate_t SampleBuffer::mixerSampleRate() +{ + return Engine::mixer()->processingSampleRate(); +} + void SampleBuffer::update( bool _keep_settings ) { @@ -190,7 +195,7 @@ void SampleBuffer::update( bool _keep_settings ) int_sample_t * buf = NULL; sample_t * fbuf = NULL; ch_cnt_t channels = DEFAULT_CHANNELS; - sample_rate_t samplerate = Engine::mixer()->baseSampleRate(); + sample_rate_t samplerate = mixerSampleRate(); m_frames = 0; const QFileInfo fileInfo( file ); @@ -378,10 +383,10 @@ void SampleBuffer::normalizeSampleRate( const sample_rate_t _src_sr, bool _keep_settings ) { // do samplerate-conversion to our default-samplerate - if( _src_sr != Engine::mixer()->baseSampleRate() ) + if( _src_sr != mixerSampleRate() ) { SampleBuffer * resampled = resample( _src_sr, - Engine::mixer()->baseSampleRate() ); + mixerSampleRate() ); MM_FREE( m_data ); m_frames = resampled->frames(); m_data = MM_ALLOC( sampleFrame, m_frames ); diff --git a/src/core/SamplePlayHandle.cpp b/src/core/SamplePlayHandle.cpp index 7f383c68e..25faed4f0 100644 --- a/src/core/SamplePlayHandle.cpp +++ b/src/core/SamplePlayHandle.cpp @@ -153,7 +153,7 @@ bool SamplePlayHandle::isFromTrack( const Track * _track ) const f_cnt_t SamplePlayHandle::totalFrames() const { - return ( m_sampleBuffer->endFrame() - m_sampleBuffer->startFrame() ) * ( Engine::mixer()->processingSampleRate() / Engine::mixer()->baseSampleRate() ); + return ( m_sampleBuffer->endFrame() - m_sampleBuffer->startFrame() ) * ( Engine::mixer()->processingSampleRate() / m_sampleBuffer->sampleRate() ); }