aboutsummaryrefslogtreecommitdiff
path: root/sc4pd/source/DelayUnit.cpp
diff options
context:
space:
mode:
authorTim Blechmann <timblech@users.sourceforge.net>2004-08-03 17:51:51 +0000
committerIOhannes m zmölnig <zmoelnig@iem.at>2015-10-14 15:11:56 +0200
commitf91b27f71b88c45202afe0baf9776e30c4177e19 (patch)
tree1773f3e03a575e45ea97cd7f9d677e2458edf613 /sc4pd/source/DelayUnit.cpp
parentb85f8bc7af3fda0f31af1c79a9f25145b8004705 (diff)
small changes
svn path=/trunk/externals/tb/; revision=1907
Diffstat (limited to 'sc4pd/source/DelayUnit.cpp')
-rw-r--r--sc4pd/source/DelayUnit.cpp19
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);
+}