44
Digital Guitar Effects Group 5 Shaun Caraway, EE Matt Evens, EE Jan Nevarez, CpE

Digital Guitar Effects

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Digital  Guitar Effects

Digital Guitar EffectsGroup 5

Shaun Caraway, EEMatt Evens, EE

Jan Nevarez, CpE

Page 2: Digital  Guitar Effects

Motivation and Value of Project

Page 3: Digital  Guitar Effects

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.

Page 4: Digital  Guitar Effects

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Ω

Page 5: Digital  Guitar Effects

Over all System Design

ATMEL ATSAM3X8E WM8731

CODEC

LM1085 3.3V

JTAG INTERFACE

MSP430G2553

ATMEGA328P

LM1085 3.3V

LM1085 5V

JTAG INTERFACE

CONTROLSDISPLAY

I2C (TW)

I2C

(T

W)GPIO

I2C (TW)

SPI

SP

I

Audio Processing Subsystem

User Interface Subsystem

Page 6: Digital  Guitar Effects

Algorithms

Page 7: Digital  Guitar Effects

Algorithms

• Delay– Used to create an “echo” type of sound.

» y(n) = x(n) + [x(n – D) + G*y(n – D)]

S Sx(n) y(n)

1

1

Z^-n

Page 8: Digital  Guitar Effects

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.

Page 9: Digital  Guitar Effects

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

Page 10: Digital  Guitar Effects

Algorithms

• Reverb

Pre-Delay LPF1 APF1 APF2

Comb 1

Comb 2

LPFComb 3

LPFComb 4

APF3LPF2S

x(n)

y(n)

Page 11: Digital  Guitar Effects

Algorithms

• Chorus– Meant to simulate multiple instruments playing

together.– Generally used to “thicken” the sound.

» y(n) = a1x(n) + Gx(n – D(n))

Page 12: Digital  Guitar Effects

Algorithms

• Compressor– Meant to control the dynamics of incoming signal

» y(n) = x(n) + [x(n – D) + G*y(n – D)]

Page 13: Digital  Guitar Effects

Algorithms

• Distortion– Used to purposefully distort the incoming guitar

signal. Known as a static wave shapper.

» y(n) = arctan(x(n))

Page 14: Digital  Guitar Effects

Hardware

Page 15: Digital  Guitar Effects

User Interface Subsystem Microprocessors

MSP430G2553IPW28Program Memory 16KB

Speed 16MHz

IO 24

I2C Serial Communication interface Compatible with TW

Operating Voltage 3.3V

ATmega328P AVRProgram Memory 32 Kbytes

Speed 20MHz

IO 23

TW Serial Communication interface Compatible with I2C

SPI Serial Communication

Operating Voltage 5V

Page 16: Digital  Guitar Effects

User Interface Subsystem Schematic

Page 17: Digital  Guitar Effects

User Interface Subsystem Schematic

V

Page 18: Digital  Guitar Effects

User Interface Subsystem PCB

Page 19: Digital  Guitar Effects

User Interface Subsystem PCB

MSP430-JTAG connection

I2C Terminal Block

MSP430G2553

ATMEGA328P

Controls Terminal Block

LCD module Terminal Block

Push Button

Voltage Regulators

Page 20: Digital  Guitar Effects

Audio Processing Subsystem

SAM3X8E Cortex-M3Program 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

Page 21: Digital  Guitar Effects

Audio Processing Subsystem Schematic

Page 22: Digital  Guitar Effects

Audio Processing Subsystem Schematic

Page 23: Digital  Guitar Effects

Audio Processing Subsystem Schematic

Hz

Page 24: Digital  Guitar Effects

Audio Processing Subsystem PCB

Page 25: Digital  Guitar Effects

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

Page 26: Digital  Guitar Effects

Power Requierments

0.491370.1489

0.68637

0.1950.039

Page 27: Digital  Guitar Effects

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

Page 28: Digital  Guitar Effects

Original DSP Subsystem

Page 29: Digital  Guitar Effects

Original User Interface Subsystem PCB

Page 30: Digital  Guitar Effects

Software

Page 31: Digital  Guitar Effects

Software Overview

User Interface• Allow for control• Display Menu Options• Signal Interrupts

Audio Processing Software• Model Amplifier• Model Effects• Allow for various

parameter changes

I2C Bus

Page 32: Digital  Guitar Effects

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

Page 33: Digital  Guitar Effects

User Interface Subsystem

Codes for the Audio Processing

Codes for the Screen Subsystem

Page 34: Digital  Guitar Effects

User Interface Subsystem

void initSetup ()void I2CTransmite()void navigate()void pushButton()void menuSetup()int main()

Main

void SPIConfig()void sendData()int main()

I2C

void init()void interrupt()int main()

Buttons

void initSetup ()void downButton()void upButton()void forwardButton()void backButton()void whatToDo()int main()

Menu

void initSetup ()void changeDisplay()void onRecieve() int main()

LCD Controller

Page 35: Digital  Guitar Effects

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

Page 36: Digital  Guitar Effects

Audio Processing Subsystem

void initSetup ()void I2CReceive ()void modelAmplifier()void modelEffects()void SPItransmit()void SPIreceive()int main()

Main

void SPIConfig()void tranSmiteData()void receiveData()int main()

SPIvoid I2CSPConfig() void receiveData()void transmitData()int main()

I2C

void initSetup()void changeGain()void changeBass()void changeMid()void changeVolume()int main()

Amplifiervoid initSetup()void changeGain()Void changeInterval() int main()

Effects

Page 37: Digital  Guitar Effects

Administrative

Page 38: Digital  Guitar Effects

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

Page 39: Digital  Guitar Effects

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

Page 40: Digital  Guitar Effects

Project Challenges - User Interface

POWER TRACE

GROUN PIN

VIA TO GROUND

Page 41: Digital  Guitar Effects

Project Challenges - Audio Processing

JTAG Configuration – According to data sheet

Signal State

FWUP HI

NRSTB HI

JTAGSEL HI

TST LO

JTAG Configuration – WorkingSignal State

FWUP HI

NRSTB HI

JTAGSEL LO

TST LO

JTAGSEL

TST

Page 42: Digital  Guitar Effects

Project Challenges - Audio Processing

DATA

CLOCK

CUT TRACES

Page 43: Digital  Guitar Effects

Budget

Page 44: Digital  Guitar Effects

Questions?