diff --git a/plugins/sfxr/sfxr.cpp b/plugins/sfxr/sfxr.cpp index c52755c812..d92229c156 100644 --- a/plugins/sfxr/sfxr.cpp +++ b/plugins/sfxr/sfxr.cpp @@ -300,7 +300,7 @@ void SfxrSynth::update( sampleFrame * buffer, const fpp_t frameNum ) { if(ssample>1.0f) ssample=1.0f; if(ssample<-1.0f) ssample=-1.0f; - for( ch_cnt_t j=0; j < DEFAULT_CHANNELS; j++ ) + for( ch_cnt_t j=0; jnoteOff(); } - static_cast(_n->m_pluginData)->update( _working_buffer, frameNum ); + fpp_t pitchedFrameNum = (_n->frequency()/BaseFreq)*frameNum; + sampleFrame * pitchedBuffer = new sampleFrame[pitchedFrameNum]; + static_cast(_n->m_pluginData)->update( pitchedBuffer, pitchedFrameNum ); + for( fpp_t i=0; iprocessAudioBuffer( _working_buffer, frameNum, NULL );