AMP SIMULATION PROJECT
For our final project in EECS 351, we decided to tackle creating a virtual simulation of a team member's AB763 Fender Twin Reverb guitar amplifier. The project requires knowledge of circuits, digital signal processing, signal flow, audio hardware, and audio signal recording. The general approach we took is to model each part of the amplifier system: each specific triode vacuum tube, the vibrato circuit, spectral filter bank, reverb tank, speaker cone, and the speaker cabinet. In order to accurately model each piece, we made detailed recordings of the amplifier to try to isolate the specific parts of the system. We used our DSP knowledge to find translations for the pieces of the amp that are LTI: the filter banks, amplification tubes, coupling capacitors between tubes, and the linear vibrato effect. For the non LTI systems (the speaker cones and reverb tank) we used impulse responses and lookup tables with an input of volume to estimate their effect on the signal.
Our goal is to create an accurate (to a point) recreation of the sound you hear running a guitar signal through this specific amp. Guitar amps such as this one can weigh up to 100 pounds and can be tedious to move around. Also, audio engineers and producers may want to try out the sound of an amplifier that they do not actually own, and a virtual recreation would be a cheap and quick way to do so. We used Matlab to analyze data we collect, the Audio Studio in the Duderstadt to get the cleanest recordings we could of the amp in various states, and our stretch goal was to use the Juce C++ library to create a real time version of the resulting processing, but this proved to be an unrealistic goal due to the optimization needed to create a real time effect that works without timing issues and our skill levels in such areas.
PROCESS AND DATA
Click on pieces of the signal flow diagram to see a description of the data we gathered, how it was gathered, and an analysis of what we determined from it about processing a signal with this effect.
ANALYSIS & FUTURE PLANS
We were fairly happy with how our project ended up running. The output for the most part sounded fairly accurate. It would still be cool to make it run in real time one day using a platform like Juce.
For the tools from outside of class, we used LTSpice for the tubes, the iirpeak function for the tone knobs, the smooth function for the vibrato, we learned about making our outputs into lookup tables and functions, we learned more about padding arrays and manually creating filters and applying them to signals when the size of our FFT would mismatch the input signal size for the tone knobs, as well as about some of the outputs provided by Matlab for statistical analysis of fits which were used in the vibrato analysis.
From class, we did frequency domain analysis for the tone knobs and bright switch, used moving average functions to simplify data for the tone knobs, designed notch filters for the different frequency bands, and studied the properties of the different elements included in the amp. We ended up approximating some elements like the reverb and the speaker cones using impulse responses and lookup tables.
If we were to complete this project again, we would spend more time earlier on the tone knobs. We ended up having to appriximate them in the long run more than we hoped because the direct application using the analysis of the data we collected sounded completely unlike the actual output of the amp. We would say that the process of analyzing the data we collected went well, but when re-applying it to a new signal we encountered most of the issues that slowed us down in iterating to find the best solution that sounded closest to the physical amp.
Finally, below is a master comparison of the amp recorded using all of the different parameters and the simulated output (all settings at 5 except master volume at 2).
Senior in Computer Engineering and Sound Engineering
Senior in Performing Arts Technology minoring in Computer Science
Junior in Electrical Engineering and Sound Engineering