Digital delay has become a staple in modern music creation. It is very difficult to pick out a modern record that does not use digital delay in some way, shape, or form. Digital delay can be used as an effect, as a rhythmic device, or to fatten up a track. As a guitarist, delay is one of my favorite things to use as it allows me to sound like the Edge from U2 and it adds magic my solos, making my playing more interesting. Currently, digital delay units can be found in CPU’s to use as plugins in DAWs, and in DSP chips to use in rack units and guitar pedals. I am going to discuss a few techniques used in creating these delay units from a digital signal processing (DSP) prospective and a sample by sample basis, and then talk about my favorite digital delay unit that utilizes these techniques. If you are unsure about what I mean when I say "sample," you might want to check out this resource before reading on.

 

 

Feed-Forward Delay

A feed-forward design typically allows for one repeat of a delay. This can be useful when a slap-back type delay sound is desired. This is how it works on a sample by sample basis: The unit takes in the first audio sample at the input and sends it straight to the output while simultaneously placing a copy of that sample at the beginning of a memory buffer. This buffer is initially filled with zeros (samples of nothing/placeholders) and the size of this buffer (or the amount of zeros) determines how slow or fast the repeat will be. Out of the delay buffer, the sample is typically multiplied by a gain factor (to determine how loud the repeat is), and then added back in with the current sample going out of the unit. Let me demonstrate this a little better. Let’s use an impulse signal that has one sample with the value of 1 as our input, a delay of three samples, and a gain value of 0.7.

 

Sample Number Input Buffer Output
Initialization (no input): null 000 ] null
1st sample:
1
[ 100 ]
1
2nd sample: 0
0, 10 ]
0
3rd sample: 0
00, 1 ]
0
4th sample: 0
000 ]
0.7


Remember, on the fourth sample, the value of 1 coming out of the buffer is multiplied by the gain value of 0.7, and then summed with the current input sample value (which was 0), which gives us 0.7 at the output. The equation looks like such:   (1 x 0.7) + 0 = 0.7. This is how it works with more complex audio signals as well. The math is all the same, just different numbers!

 

 

Feed-Back Delay

What if we wanted a delay unit that was capable of having more than one repeat? This is where a feed-back design is necessary. This is almost the exact same idea as the feed-forward design. The only difference is that we take whatever is at our output and feed it back into the beginning of the buffer after being multiplied by some gain value. This gain value determines how many delay repeats the unit will have. Higher gain values will create more repeats and lower gain values will create less repeats. Let’s look at the same signal used in the previous example being sent through a feed-back delay system, with a feed-back gain of 0.5 and output gain of 0.7.

Sample Number Input Buffer Output
Initialization (no input): null 000 ] null
1st sample:
1
100 ]
1
2nd sample: 0
010 ]
0
3rd sample: 0
001 ]
0
4th sample: 0
0.3500 ]
0.7
5th sample: 0
00.350 ]
0
6th sample: 0
000.35 ]
0
7th sample: 0
0.1230, 0 ]
0.245

This system looks identical to the feed-forward system until we reach the 4th sample. At this point, our output of 0.7 is multiplied by the feed-back gain value of 0.5 to give us a value of 0.35 to put back into the beginning of the buffer. At the 7th sample, 0.35 is multiplied by 0.7 (our output gain) to give us 0.245. This value is then multiplied by our feed-back gain value of 0.5 to give us a value of 0.123 to feed back into the beginning of the buffer. Can you guess what the 8th sample will look like?

 

Boss DD-20

One of my favorite guitar pedals, the Boss DD-20, is a great example as it utilizes both feed-forward and feed-back delay designs along with more. It has a slap-back mode which uses a feed-forward system, a standard digital delay mode that uses the feed-back system, and other modes such as smooth, analog, and modulate that incorporate additional processing within the feed-back system. In other words, these other modes use the feed-back design with the addition of filters, saturation, and modulation on the repeats. The E.LEVEL knob on the DD-20 sets the feed-forward or feed-back systems' output gain (we used a value of 0.7 for our examples). The F.BACK knob sets the feed-back gain for the feed-back delay system (we used a value of 0.5 for our example). Another cool feature this pedal has is the option for reverse delay. This occurs from the feed-back system reading the memory buffer backwards. Another great feature on this pedal is the ability to tap in a tempo with your foot and set time subdivisions (quarter note, eight note, dotted-eighth note, etc.). Using the sampling rate, it converts this time into samples to set the time between each repeat. There are a lot of great delay concepts that the DD-20 utilizes, and puts them all in a sturdy, user friendly box. Although it is an older unit, it held the test of time as it is still very popular (look out for it on my pedalboard!). 

Click Here to check out the DD-20

 

There is still plenty to go into regarding digital delay, but I figured this was enough to peak your interest. I know that as a guitarist who's used digital delay his entire life, I was very interested to learn how it all worked. Additionally, I think it is important to understand how feed-forward and feed-back systems work before attempting to tackle more complex systems.

November 04, 2019 — Sean Newell

Leave a comment