I'm trying to emulate a tape delay in a VST plugin, but I'm not sure how to handle the delay changing? I want it to sound like a tape is actually fast forwarding/rewinding.

Most digital delays I've looked at have two taps and they set one to the new delay time and crossfade between them. It doesn't really sound like anything. I tried changing the delay over 40ms, by linearly moving from the old delay time to the new delay time, but that sounds very artificial. I figure the tape actually needs to accelerate and then decelerate.

I tried different functions instead of linear for moving the delay time, including sine and quadratic.

I'd like it to sound like the tape delay in Logic Pro. Any idea what they are doing when the delay changes?

  • $\begingroup$ A google search on "tape delay" algorithms brings up tons of links, forum discussions discussing analog tape delay algorithms, wow/flutter, tape saturation, etc. I think this question should be more specific. $\endgroup$ – ruoho ruotsi Aug 17 '15 at 18:27
  • $\begingroup$ kvraudio.com/forum/viewtopic.php?t=265070 $\endgroup$ – ruoho ruotsi Aug 17 '15 at 18:27
  • $\begingroup$ I'm not interested in wow/flutter, saturation, etc. I'm just interested in how to emulate the delay time changing (which would be the tape speed changing) using a circular buffer. (Or other data structure if required) $\endgroup$ – FigBug Aug 17 '15 at 22:22
  • 1
    $\begingroup$ The changing tape speed actually results in what is called wow and flutter - a more or less intense pitch variation of the audio signal. However, the amount of change of speed is probably very low in usual tape delays and brings about only a subtle pitch-change effect. Hence, I think considering the comments by @ruohoruotsi might be a good idea... $\endgroup$ – applesoup Aug 18 '15 at 10:36

From the KVR forum link above, dig in from this section:

a Tape or Bucket Brigade Delay is better emulated using a fixed delayline with a variable sampling-rate. Classic digital delays typically modulate the length of the delay-line while, Tape and BBD modulate the speed to change the delay.

It's similar to a guitar where to change pitch you can either change the length of the string or change its tension. The big advantage with modulating speed instead of position is that the delay changes are naturally smoothed/integrated/delayed by the delayline itself and that makes a huge difference sound-wise.

Regarding implementation, you'll want to write samples from your delay buffer (to your output buffer) at a fixed rate, but reading from it at interpolated/smoothed, variable rates. You'll need a good interpolation algorithm to minimize distortion (aliasing) during automation of delay times/params during playback.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.