I came up with this formula for calculating a delay tail:
(I'm assuming an impulse with an amplitude of 1.0 going into the delay)
My reasoning is that with feedback of one, the tail is infinite. With feedback of zero, the only tail is the one repeat (no regeneration).
With feedback in the range of (1,0), we want the number of times it takes to multiply the impulse (and the resulting feedback) by the feedback level to get down to our target. So we want the log's base to be the feedback level and take the log of the target. We add the delay time to the result to account for the first repeat that happens regardless of the feedback level setting.
Is this a good rule of thumb for calculating a delay's tail? Is there a better way? Or am I completely off?
Context: I want to implement the CLAP tail extension for my delay effect and need a good method for calculating it.
(I'm assuming an impulse with an amplitude of 1.0 going into the delay)
Code:
delayTime = 1.0; // One secondtarget = 0.001; // -60dBfeedback = 0.5;if(feedback >= 1.0) { // Tail is infinite} else if(feedback == 0.0) { tail = delayTime;} else { tail = delayTime + delayTime * (log(target) / log(feedback));}
With feedback in the range of (1,0), we want the number of times it takes to multiply the impulse (and the resulting feedback) by the feedback level to get down to our target. So we want the log's base to be the feedback level and take the log of the target. We add the delay time to the result to account for the first repeat that happens regardless of the feedback level setting.
Is this a good rule of thumb for calculating a delay's tail? Is there a better way? Or am I completely off?
Context: I want to implement the CLAP tail extension for my delay effect and need a good method for calculating it.
Statistics: Posted by Leslie Sanford — Sat Jul 27, 2024 12:01 am — Replies 3 — Views 101