Connexions

You are here: Home » Content » Audio Effects: Real-Time Control using RTDX
Content Actions

Audio Effects: Real-Time Control using RTDX

Module by: Thomas Shen Based on: Audio Effects: Real-Time Control with the Serial Port by Douglas L. Jones, Swaroop Appadwedula, Matthew Berry, Mark Haun, Dima Moussa, Daniel Sachs

Summary: You will implement a feedback-echo effect and adjust its parameters in real time with a MATLAB graphical user interface.

Implementation

For this exercise, you will extend the system from Audio Effects: Using External Memory to generate a feedback-echo effect. You will then extend this echo effect to use the USB port on the DSP EVM. The USB interface will receive data from a MATLAB GUI that allows the two system gains and the echo delay to be changed using on-screen sliders.

Feedback system implementation

system.png
Figure 1: Feedback System with Test Points
First, modify code from Audio Effects: Using External Memory to create the feedback-echo system shown in Figure 1. A one-tap feedback-echo is a simple audio effect that sounds remarkably good. You will use both channels of input by summing the two inputs so that either or both may be used as an input to the system. Also, send several test signals to the six-channel board's D/A converters:
  • The summed input signal
  • The input signal after gain stage G 1 G 1
  • The data going into the long delay
  • The data coming out of the delay
You will also need to set both the input gain G 0 G 0 and the feedback gain G 1 G 1 to prevent overflow.
As you implement this code, ensure that the delay n and the gain values G 1 G 1 and G 2 G 2 are stored in memory and can be easily changed using the debugger. If you do this, it will be easier to extend your code to accept its parameters from MATLAB in MATLAB Interface Implementation.
To test your echo, connect a CD player or microphone to the input of the DSP EVM, and connect the output of the DSP EVM to a loudspeaker. Verify that an input signal echoes multiple times in the output and that the spacing between echoes matches the delay length you have chosen.

MATLAB interface implementation

After studying the MATLAB interface outlined at the end of Using RTDX with a MATLAB GUI, write MATLAB code to send commands to the USB interface based on three sliders: two gain sliders (for G 1 G 1 and G 2 G 2 ) and one delay slider (for n). Then modify your code to accept those commands and change the values for G 1 G 1 , G 2 G 2 and n. Make sure that n can be set to values spanning the full range of 0 to 131,072, although it is not necessary that every number in that range be represented.

Comments, questions, feedback, criticisms?

Send feedback