diff options
author | Tim Blechmann <timblech@users.sourceforge.net> | 2004-08-03 17:51:51 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@iem.at> | 2015-10-14 15:11:56 +0200 |
commit | f91b27f71b88c45202afe0baf9776e30c4177e19 (patch) | |
tree | 1773f3e03a575e45ea97cd7f9d677e2458edf613 /sc4pd/source/DelayUnit.cpp | |
parent | b85f8bc7af3fda0f31af1c79a9f25145b8004705 (diff) |
small changes
svn path=/trunk/externals/tb/; revision=1907
Diffstat (limited to 'sc4pd/source/DelayUnit.cpp')
-rw-r--r-- | sc4pd/source/DelayUnit.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/sc4pd/source/DelayUnit.cpp b/sc4pd/source/DelayUnit.cpp index 7f96677..5b11f96 100644 --- a/sc4pd/source/DelayUnit.cpp +++ b/sc4pd/source/DelayUnit.cpp @@ -46,26 +46,24 @@ void DelayUnit_ar::DelayUnit_AllocDelayLine() delaybufsize = NEXTPOWEROFTWO(delaybufsize); // round up to next power of two m_fdelaylen = m_idelaylen = delaybufsize; - delete m_dlybuf; + delete[] m_dlybuf; m_dlybuf = new float[delaybufsize] ; m_mask = delaybufsize - 1; } void DelayUnit_ar::DelayUnit_Dtor() { - delete m_dlybuf; + delete[] m_dlybuf; } float DelayUnit_ar::CalcDelay(float delaytime) { - float next_dsamp = delaytime * Samplerate(); - return sc_clip(next_dsamp, 1.f, m_fdelaylen); + float next_dsamp = delaytime * Samplerate(); + return sc_clip(next_dsamp, 1.f, m_fdelaylen); } -void DelayUnit_ar::DelayUnit_Reset(float f, float g) +void DelayUnit_ar::DelayUnit_Reset() { - m_maxdelaytime = f; - m_delaytime = g; m_dlybuf = 0; DelayUnit_AllocDelayLine(); @@ -75,3 +73,10 @@ void DelayUnit_ar::DelayUnit_Reset(float f, float g) m_numoutput = 0; m_iwrphase = 0; } + +void FeedbackDelay_ar::FeedbackDelay_Reset() +{ + DelayUnit_Reset(); + + m_feedbk = CalcFeedback(m_delaytime, m_decaytime); +} |