Introduction
As you can see from the title, our project, in a nutshell, is a Sound Effects Processor (for the lack of a better name), which is capable of taking an audio input, adding effects to it digitally and passing an analog output to an amplifier.
Fig 1. Joel(left) and Jeremy(right), the architects of The Sound Effects Processor taking a well deserved break.
For this endeavour, we first built an input stage that will amplify the input signal, as well as bias it to 2.5V (since the ADC can only sample positive signals). The ADC (MAX1111) is controlled by the microprocessor (Mega 32) using the SPI interface which was much easier than manually configuring a port to interface with the ADC(believe me, we tried that). We set the Mega 32 to sample the input at about 12 KHz which is fast enough to meet the Nyquist requirement for analog to digital sampling. The digital effects were done using by manipulating the input (which will be discussed in the Design page) and the output is passed to a R-2R DAC to a output amplifier stage and finally, to the speaker.
Fig 2. A photo of our input and output analog stages. The DAC is on the left while the ADC is to the right.
Design
After cracking our heads for days about what to do, we were inspired by a couple of projects done in the previous years that dealt with sound processing (such as The Shredder). The high level design is summarized in the block diagram shown below in figure 1.
Figure 1. Hardware block diagram. The flow of the block diagram is rather straightforeward:
- the audio input goes through an amplification and bias stage and then flows through the ADC which is controlled via the SPI by the microcontroller.
- the input is sampled at about 12,000 samples per second. We decided that 6 kHz and above will cover most of the frequency content of the expected audio signal. 12 kHz made it sound better.
- the microcontroller stores the input in an array and sends the output through PORT D to the DAC while polling the buttons for user input
- if no effects are turned on, the sampled output is sent straight out
- if any of the effects are on, the microcontroller does the appropriate DSP to the input and outputs theprocessed signal
- the LCD will display which effects are on or off as well as the volume
For more detail: Sound Effects Processor