From dc63930e8774897d0ed9a3c02b596fbad3b754a0 Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Thu, 5 Jul 2018 21:51:26 +0200 Subject: [PATCH] apply smoothing to fx send button --- src/jacksendreturn.cxx | 14 ++++++-------- src/jacksendreturn.hxx | 2 ++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/jacksendreturn.cxx b/src/jacksendreturn.cxx index 2b3be95..061a79e 100644 --- a/src/jacksendreturn.cxx +++ b/src/jacksendreturn.cxx @@ -17,6 +17,7 @@ JackSendReturn::JackSendReturn(int trackid, AudioProcessor *prev, jack_client_t sprintf(name, "Return_track_%d_r\n",trackid_human); _returnPortR=jack_port_register(client,name,JACK_DEFAULT_AUDIO_TYPE,JackPortIsInput,0); _active=false; + _activeLag = 0; _counter=0; } @@ -56,19 +57,16 @@ void JackSendReturn::process(unsigned int nframes, Buffers *buffers) sendL[i] = _sendVolLag * sendtrackL[i]; sendR[i] = _sendVolLag * sendtrackR[i]; + + _activeLag += SMOOTHING_CONST * (float(_active) - _activeLag); + + rettrackL[i] = retL[i] * _activeLag + sendtrackL[i] * std::fabs(_activeLag - 1); + rettrackR[i] = retR[i] * _activeLag + sendtrackR[i] * std::fabs(_activeLag - 1); } if(offset) assert(offset+nframes==buffers->nframes); - if(_active) { - memcpy(rettrackL,retL,nframes*sizeof(float)); - memcpy(rettrackR,retR,nframes*sizeof(float)); - } - else { - memcpy(rettrackL, sendtrackL,nframes*sizeof(float)); - memcpy(rettrackR, sendtrackR,nframes*sizeof(float)); - } _counter+=nframes; } diff --git a/src/jacksendreturn.hxx b/src/jacksendreturn.hxx index eee9a3a..4c0704c 100644 --- a/src/jacksendreturn.hxx +++ b/src/jacksendreturn.hxx @@ -44,6 +44,8 @@ public: private: bool _active; + float _activeLag; + float _sendVol; float _sendVolLag;