The feed-forward echo is a delay effect, which creates one repetition of the input signal. The delay time is typically within a range of 50 ms to 350+ ms. The result is a single, audible echo.

Although audio engineers usually think about delay in time units of seconds (or milliseconds), our computer creates delay based on units of samples. As programmers, we can give instructions to the computer to put the value of one sample at a different sample location. This process will create a time delay, and it is accomplished if we are clever about how we index the array storing our signal.

Let’s define some notation. The following diagram represents a single delay block. An arbitrary delay length is shown, samples. A common, short-hand notation uses ${z}^{-d}$ to describe a delay block with samples.

The feed-forward echo is created by using a parallel delay path. Then, the unprocessed, “dry” path is summed together with the delayed, “wet” path. Another name for the wet path is a delay line.

It is also common to change the relative amplitude of the delay path compared to the unprocessed path. A scalar gain, b, can be multiplied by the signal on the delay path.

There are several different methods we can use in programming to create the feed-forward echo. First, separate array variables can be created for each path of the effect. For delay paths, extra “zeros” can be padded at the beginning of the array to create the time delay.

Second, the input array can be indexed based on the block diagram equations to create the effect.

Finally, a delay buffer can be created to store previous samples of the signal in memory. This buffer can be thought of as the actual delay block which receives a signal and puts out the delayed signal. As our code iterates through the samples in a signal, the previous values shift to the end of the buffer.

Next, let’s look at a special type of echo effect based on a tempo-synchronized delay time.