EE 451

Lab 11: Simple Audio Effects

``Reverberation'' is an interesting sound effect which can be generated easily with the 56002. A simple reverb is an echo, generated by adding a delayed output signal to the input signal:


\begin{displaymath}y(n) = x(n) + \alpha y(n-D)\end{displaymath}

where $\alpha$ is a constant (say, 0.5), and $D$ is large enough to produce delays of, say, 50 ms to 500 ms.

An echo generated using Equation 1 has a disadvantage in that the frequency response is not flat - i.e., some frequencies will be enhanced over others. This can be fixed using an equation of the form


\begin{displaymath}y(n) = \alpha x(n) + x(n-D) - \alpha y(n-D) \end{displaymath}

This gives $\vert H(\omega)\vert = 1$ for all $\omega$.

Another interesting effect is a ``chorus'' effect, which would be generated by several instruments playing the same notes at about the same times, but with small changes in amplitude and timing. A simple chorus effect can be generated with the equation:


\begin{displaymath}y(n) = x(n) + \alpha_1 y(n-D_1) + \alpha_2 y(n-D_2) + \alpha_3
y(n-D_3)\end{displaymath}

where $\alpha_i$ and $D_i$ are different. (For a true chorus effect, these would change slightly with time.) To keep the system from saturating, all the $\alpha$'s must be less than 1/3.

  1. You should know enough about the 56002 to implement an echo generator. The 56002 boards in the DSP lab are set up to have 16 kB of memory in the X data bank. At a 48 kHz sampling frequency, this will allow delays of 340 ms. To allow for longer delays, you can set up the 56002 to sample at 16 kHz. This will allow delays of up to one second, which will make a nice echo, and have a Nyquist frequency of 8 kHz. Use the 56002 to implement the above difference Equation 1, and try out your echo generator on an audio signal, using several different values for $\alpha$ and $D$.

  2. Implement a simple reverb. Use a sampling frequency of 48 kHz, and use a delay of about 1 ms.

  3. Implement a simple chorus effect.



Bill Rison
2000-11-29