presentation name
Download
Report
Transcript presentation name
Digital Guitar Effects
Group 5
Shaun Caraway, EE
Matt Evens, EE
Jan Nevarez, CpE
Motivation and Value of
Project
Goals
• Professional grade audio quality
(Low noise, high resolution, etc.)
• Able to process a guitar signal in
real-time with less than 3 ms of
latency
• Simple user interface
• Include common effects used by
guitarist. Reverb, distortion, etc.
Specifications
•
•
•
•
•
Less than 3 ms of latency
16 bit 44.1kHz
Maximum input 2 Vpp
Line level output of 1.228 Vrms
Headphone output impedance less
than 50Ω
Over all System Design
JTAG INTERFACE
Audio Processing
Subsystem
JTAG INTERFACE
User Interface
Subsystem
LM1085
3.3V
I2C (TW)
ATMEL
ATSAM3X8E
SPI
WM8731
CODEC
I2C (TW)
ATMEGA328P
SPI
LM1085 3.3V
GPIO
I2C
(TW)
MSP430G2553
DISPLAY
CONTROLS
LM1085
5V
Algorithms
Algorithms
• Delay
– Used to create an “echo” type of sound.
1
x(n)
S
Z^-n
1
» y(n) = x(n) + [x(n – D) + G*y(n – D)]
S
y(n)
Algorithms
• Reverb
– Simulates sound being played in a large room or
hallway.
– Most intense algorithm. Pushed the limits of the
ATMEL SAM 3X8E
– Uses parallel combination of Comb filters in series
with all pass filters.
Algorithms
• Reverb
– All Pass Filter
» y(n) = -gx(n) + x(n – D) + gy(n – D)
– Comb Filter
» y(n) = x(n – D) + gy(n – D)
– Low Pass Comb Filter
» y(n) = x(n – D) – g2x(n – D – 1) + g2y(n – 1) + g1y(n – D)
» Where g = g2/(1-g1), with g < 1.0
Algorithms
• Reverb
x(n)
Pre-Delay
LPF1
APF1
APF2
Comb 1
Comb 2
S
LPFComb 3
LPFComb 4
LPF2
APF3
y(n)
Algorithms
• Chorus
– Meant to simulate multiple instruments playing
together.
– Generally used to “thicken” the sound.
» y(n) = a1x(n) + Gx(n – D(n))
Algorithms
• Compressor
– Meant to control the dynamics of incoming signal
» y(n) = x(n) + [x(n – D) + G*y(n – D)]
Algorithms
• Distortion
– Used to purposefully distort the incoming guitar
signal. Known as a static wave shapper.
» y(n) = arctan(x(n))
Hardware
User Interface Subsystem Microprocessors
MSP430G2553IPW28
Program Memory
16KB
Speed
16MHz
IO
24
I2C
Serial Communication interface Compatible with TW
Operating Voltage
3.3V
ATmega328P AVR
Program Memory
32 Kbytes
Speed
20MHz
IO
23
TW
Serial Communication interface Compatible with I2C
SPI
Serial Communication
Operating Voltage
5V
User Interface Subsystem Schematic
User Interface Subsystem Schematic
𝑅=
𝑉−𝑉𝑓
𝑖
𝑉𝑜𝑢𝑡 = 𝑉𝑖𝑛
=
5𝑉−2.5𝑉
25𝑚𝐴
= 100Ω
𝑅2
10𝐾
=5
𝑅2 + 𝑅1
10𝐾 + 10𝐾
𝑉𝑜𝑢𝑡 = 2.5V
User Interface Subsystem PCB
User Interface Subsystem PCB
MSP430-JTAG connection
I2C Terminal Block
MSP430G2553
ATMEGA328P
Controls Terminal Block
LCD module Terminal Block
Push Button
Voltage Regulators
Audio Processing Subsystem
SAM3X8E Cortex-M3
Program Memory
512 Kbytes
Speed
84MHz
I/O Lines
103
2xTW
Serial Communication interface Compatible with I2C
SPI
Serial Communication
CPU Core
ARM
Operating Voltages
3.3 and 1.95 V
Audio Processing Subsystem Schematic
Audio Processing Subsystem Schematic
Audio Processing Subsystem Schematic
1
𝑓 = 2∗𝜋∗10−9∗1000 = 159235.66879 Hz
Audio Processing Subsystem PCB
Audio Processing Subsystem PCB
ATMSAM3X8E JTAG-Interface/ Configuration
ATMSAM3X8E Microcontroller
WM8731 Audio CODEC
I2C/TW Terminal Block
Audio Input
Line Output
Headphone Output
Voltage Regulator
Power Requierments
0.1489
0.49137
0.039
0.195
0.68637
Power Requierments
LM1085 LDO regulator series
V in Max
27 volts
V out
3.3, 5 volts
Drop Out Voltage
1.3 volts
I out Max
3 amps
Enercell AC Adapter CAT-NO 273-333
Input
100-240V AC 50/60Hz 0.5Amps
Output
7.5V DC 2 Amps
Original DSP Subsystem
Original User Interface Subsystem
PCB
Software
Software Overview
User Interface
• Allow for control
• Display Menu Options
• Signal Interrupts
I2C Bus
Audio Processing Software
• Model Amplifier
• Model Effects
• Allow for various
parameter changes
User Interface Subsystem
• Written in C language
• MSP430 used Energia IDE
• ATmega328 used Arduino IDE
• Push buttons generate interrupts
• Generates binary coded commands
• MSP430 Transmits to the screen controlled by
the ATmega328 and the Audio Processing
Subsystem over the I2C bus
User Interface Subsystem
Codes for the Audio Processing
Codes for the Screen Subsystem
User Interface Subsystem
Main
void initSetup ()
void I2CTransmite()
void navigate()
void pushButton()
void menuSetup()
int main()
Menu
void initSetup ()
void downButton()
void upButton()
void forwardButton()
void backButton()
void whatToDo()
int main()
Buttons
void init()
void interrupt()
int main()
I2C
void SPIConfig()
void sendData()
int main()
LCD Controller
void initSetup ()
void changeDisplay()
void onRecieve()
int main()
Audio Processing Subsystem
• Writing in C via Atmel studios
• Model Amplifiers/Effects
• Communicates to the Codec through the SPI
peripheral
• Programs the Codec through the I2C bus
• Receives controller codes through I2C bus
Audio Processing Subsystem
Main
void initSetup ()
void I2CReceive ()
void modelAmplifier()
void modelEffects()
void SPItransmit()
void SPIreceive()
int main()
I2C
void I2CSPConfig()
void receiveData()
void transmitData()
int main()
Effects
Amplifier
void initSetup()
void changeGain()
Void changeInterval()
int main()
void initSetup()
void changeGain()
void changeBass()
void changeMid()
void changeVolume()
int main()
SPI
void SPIConfig()
void tranSmiteData()
void receiveData()
int main()
Administrative
Distribution of Responsibilities
Shaun
User Interface
Hardware
Audio
Processing
Hardware
Power
Jan
User Interface
Software
Audio
Processing
Software
Audio software
Algorithm
Simulation
Matt
Audio Codec
Input
Audio Codec
Ouput
Algorithms
Project Challenges
• Digital Signal Processing
• Doing multiple double and int multiplication and
division
• Preventing noise on the distortion effect
• Learning the PCB CAD software
• Hardware Debuging Challenges
Project Challenges - User Interface
POWER TRACE
VIA TO GROUND
GROUN PIN
Project Challenges - Audio Processing
JTAG Configuration – According to data sheet
JTAGSEL
TST
Signal
State
FWUP
HI
NRSTB
HI
JTAGSEL
HI
TST
LO
JTAG Configuration – Working
Signal
State
FWUP
HI
NRSTB
HI
JTAGSEL
LO
TST
LO
Project Challenges - Audio Processing
DATA
CLOCK
CUT TRACES
Budget
Questions?