From f91b27f71b88c45202afe0baf9776e30c4177e19 Mon Sep 17 00:00:00 2001 From: Tim Blechmann Date: Tue, 3 Aug 2004 17:51:51 +0000 Subject: small changes svn path=/trunk/externals/tb/; revision=1907 --- sc4pd/source/DelayUnit.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'sc4pd/source/DelayUnit.cpp') 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); +} -- cgit v1.2.1