420 likes | 1.34k Views
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
E N D
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 • 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 • 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 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
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 • 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!!!