Guitar Effects Processor Using DSP Alex Czubak Gorav Raheja Advisor: Dr. Thomas L. Stewart
Problems Need for real-time effects generation for live performances and recording Effects pedals exist, but better used for presets
Overview Overall Project GUI Interface Filter Design Results and Conclusions
Overview Overall Project GUI Interface Filter Design Results and Conclusions
Overall Project Guitar signal to DSP Passes through filters User controls filters through GUI Signal outputs to speaker
Project Specs 8 Effects filters in both parallel and series Sampling Rate = 48,000 samples/sec GUI controls effects filters Real-time processing at a speed at most 1/sampling rate
Cancelled Original Spec Noise Filter Eliminates 60-Hz hum from single-coil pickups Sampling rate made design difficult Pole and zero practically overlap Multiband approach considered Z-Transform Function if sampling rate = 48000
Cancelled: Noise Filter FFT of signal shows pointlessness of filter FFT of Strat: A-110 Hz Noise Component of Strat Signal
Guitars Used Squier Stratocaster Squier Telecaster Custom 3 Single-coil pickups 5-way selector switch Squier Telecaster Custom 2 Humbucker pickups 3-Way Selector Switch
Amplifiers Used Fender Frontman 15R Guitar Amplifier External Reverberation Potentiometer set to 0 so designed Reverberation effects can be tested Distortion channel, ignored to test designed filter Output: 15 watts into 8 ohms
DSP Board Used Spectrum Digital TMS320C6713 DSK DSP Chip: Texas Instruments C6713 @ 225 MHz 16 MB SDRAM 512 KB Flash Memory AIC23 Stereo Codec allowing 8-kHz to 96-kHz sampling rate A/D and D/A Converters only handle 2 Volt amplitude max
Programs Used MATLAB and Simulink Code Composer 3.1 Quick conversion of audio for testing Graphical modeling of filters GUI design links with models Auto C-code generation for DSP board Code Composer 3.1 Programs code to board Only way to interface with board
Overview Overall Project GUI Interface Filter Design Results and Conclusions
GUI Allows user to select and control effects Interface simple and easy to use
GUI Software Design
GUI Testing Initial examples to understand GUI in MATLAB Uploading/playing wave files Tying GUI through Simulink models Connecting GUI through Simulink to DSP board for “real time” implementation
Tying GUI and simulink
Sample testing (no effects)
Sample test (with effects used)
Overview Recap of Overall Project GUI Interface Filter Design Results and Conclusions
Filter Design: Overview 8 user-modifiable filters Distortion Volume Envelope Octaver Flanger Phase Shifter Chorus Delay/Echo Reverb Control Signal: A @ 110 Hz
Filter Design: Distortion Boosts and clips signal Gain values from 1 to 50 Saturation at -0.5 and +0.5 Telecaster – A 5th Chord Simulink Distortion Model
Filter Design: Volume Envelope Signal attack is eliminated Violin-type sound Signal gradually approachs full value Does so for each plucked note
Filter Design: Octaver Octave Down Halves frequency of signal Output at same speed as input A @ 55 Hz from MATLAB Code
Filter Design: Flanger Signal is split Passed through variable-time delay Controlled by sine wave at <= 1 Hz Maximum delay = 10 ms Flanged “NBC” Simulink Model of Flanger Effect Filter
Filter Design: Phase Shifter Similar to Flanger, but: All-pass filter instead of just delay Creates non-linearly spaced notches 2 filters = 1 notch 8 filters for 4 notches
Filter Design: Chorus Similar to Flanger, but: 4 splits instead of 1 Creates multi-guitar sound User selects how many are on Sine waves run at 3 Hz and 6 Hz
Filter Design: Chorus Simulink Model of Chorus
Filter Design: Delay/Echo Signal is split Fixed delay determined by user Audio Test of Delay/Echo Delay/Echo Model
Filter Design: Reverb Delay-based filter Attenuated feedback decays sound Delay determines length of decay Reverb Test Filter
Overview Recap of Overall Project GUI Interface Filter Design Results and Conclusions
Results MATLAB 5 of 8 effects fully functional Octaver slows signal Volume Envelope only for first note Phase Shifter not adding any effect
Results GUI Connection to Simulink easier versus direct hard-coding No real-time application, but Simulink connection is the step before that
Results Real-Time 3 of 8 effects work properly 3 have variable-time delay issue “Popping” occurs Happens if effect is present in system 2 haven’t been finalized in Simulink
Results Real-time demo
Conclusions Effects Simulink and Code Composer allow quick real-time development Real-time variable-time delay a complicated matter Embedded M-file block not a simple solution for Volume Envelope
Conclusions GUI Significant learning curve at first Need to define all variables from workspace if used No info on connecting GUI to DSP board Simulation environment demonstrated good functionality
Conclusions Future Ideas Effects GUI Improved variable-time delay algorithm for DSP Board Add more effects to system Wah-wah Talk-Box Add pedal functionality to select effects on the fly USB or PC Card connection to laptop for portability GUI Allow real-time implementation More variable control for more dynamic effects
And so… We were able to bring the house down!!!
Questions?