Guitar Effects Processor Critical Design Review October, 07, 2003 Groups Members: Adam Bernstein...

Post on 21-Dec-2015

215 views 0 download

Tags:

Transcript of Guitar Effects Processor Critical Design Review October, 07, 2003 Groups Members: Adam Bernstein...

Guitar Effects ProcessorGuitar Effects ProcessorCritical Design ReviewCritical Design Review

October, 07, 2003October, 07, 2003

Groups Members:Groups Members:

Adam BernsteinAdam Bernstein

Hosam GhaithHosam Ghaith

Jasenko AlagicJasenko Alagic

Matthew Iyer Matthew Iyer

Yousef AlyousefYousef Alyousef

System OverviewSystem Overview

Guitar effects generator Guitar effects generator – Takes input from standard audio source and Takes input from standard audio source and

produces output to standard amplifiers in real-produces output to standard amplifiers in real-time output time output

– Employs a modular design of effects Employs a modular design of effects including “Distortion” and “Octave” circuitsincluding “Distortion” and “Octave” circuits

– Is programmed by musician though user Is programmed by musician though user friendly interfacefriendly interface

– Produces good audio qualityProduces good audio quality

System Block DiagramSystem Block Diagram

MICRO-PROCESSING

UNITRAM

USER INTERFACE

MIXED-SIGNALINTERFACE

MIXED-SIGNALINTERFACE

MIXED-SIGNALINTERFACE

SIGNALPROCESSING

CIRCUIT(EFFECT 1)

SIGNALPROCESSING

CIRCUIT(EFFECT 2)

SIGNALPROCESSING

CIRCUIT(EFFECT 3)

AUDIOSIGNALINPUT

ROM

User InterfaceUser Interface Effect Configuration fileEffect Configuration file Real-time control softwareReal-time control software User program softwareUser program software

Effect Configuration FileEffect Configuration File

Specify port-to-effect mappingSpecify port-to-effect mapping Enables software to be user friendlyEnables software to be user friendly Example:Example:

– port 0 : Distortionport 0 : Distortion– port 1 : Octaveport 1 : Octave

Real-time Control SoftwareReal-time Control Software

Reads effect configuration file and Reads effect configuration file and generates a GUIgenerates a GUI

Demo!Demo!

User Program SoftwareUser Program Software

A user program consists of two simple A user program consists of two simple commands:commands:– StateState– Sequence of State commands in timeSequence of State commands in time

Software interprets an ASCII file containing Software interprets an ASCII file containing commands and sends it to the HC11 to be commands and sends it to the HC11 to be stored in SRAMstored in SRAM

Uses effect configuration file for user-Uses effect configuration file for user-friendly programmingfriendly programming

StateState

A State command specifies the intensity of A State command specifies the intensity of each effecteach effect

Examples:Examples:– state <id> : <effect_name> <value> <…>state <id> : <effect_name> <value> <…>– state 0 : distortion 128 octave 64state 0 : distortion 128 octave 64– state 1 : distortion 192 octave 128state 1 : distortion 192 octave 128– state 2 : distortion 256 octave 64state 2 : distortion 256 octave 64

SequenceSequence

Allows the user to specify a series of states Allows the user to specify a series of states and timesand times

Example:Example:– sequence <id > : <state_id> <time in ms> <…> sequence <id > : <state_id> <time in ms> <…>

<end_sequence_tag> <loop_bit><end_sequence_tag> <loop_bit>– sequence 0 : 0 0 1 5000 2 10000 % 1sequence 0 : 0 0 1 5000 2 10000 % 1

Digital Control SystemDigital Control SystemHC11HC11

System Block DiagramSystem Block Diagram

MICRO-PROCESSING

UNITRAM

USER INTERFACE

MIXED-SIGNALINTERFACE

MIXED-SIGNALINTERFACE

MIXED-SIGNALINTERFACE

SIGNALPROCESSING

CIRCUIT(EFFECT 1)

SIGNALPROCESSING

CIRCUIT(EFFECT 2)

SIGNALPROCESSING

CIRCUIT(EFFECT 3)

AUDIOSIGNALINPUT

ROM

EPROM ContentsEPROM Contents

Code to Initialize the systemCode to Initialize the system Interrupt driven serial communication with Interrupt driven serial communication with

PCPC Code to write to the SPI interface to adjust Code to write to the SPI interface to adjust

effectseffects Code to interpret user programsCode to interpret user programs

SRAMSRAM

Save the current system stateSave the current system state– Store connected effect circuitsStore connected effect circuits– Store effects variablesStore effects variables

Store user programs (loaded from user Store user programs (loaded from user interface)interface)

PeripheralsPeripherals

Support for up to 4 effect circuitsSupport for up to 4 effect circuits Each effect circuit can have 2 digitally Each effect circuit can have 2 digitally

controlled devicescontrolled devices

Communication with PeripheralsCommunication with Peripherals

Serial Peripheral Interface (SPI) to Serial Peripheral Interface (SPI) to communicate with effect circuitscommunicate with effect circuits

RS-232 interface to communicate with PC RS-232 interface to communicate with PC (user interface)(user interface)

I/O port (Port A)I/O port (Port A)– Turn effects on/offTurn effects on/off– Determine which effects are connectedDetermine which effects are connected

Port APort A

4 out of the 8 pins will be used as parallel 4 out of the 8 pins will be used as parallel inputsinputs– Used to detect which effects are connected.Used to detect which effects are connected.– CNCT0’-CNCT3’ bits (active low)CNCT0’-CNCT3’ bits (active low)

The rest are used as outputs to turn effects The rest are used as outputs to turn effects on and offon and off– ON0-ON3 bitsON0-ON3 bits

Port A ConnectionsPort A Connections

Effect 0

Memory Mapping SchemeMemory Mapping Scheme

Increasing Addresses

Address in Binary Hex Address Use 1111xxxxxxxxxxxx FFFFh 1110xxxxxxxxxxxx 1101xxxxxxxxxxxx 1100xxxxxxxxxxxx 1011xxxxxxxxxxxx 1010xxxxxxxxxxxx 1001xxxxxxxxxxxx 1000xxxxxxxxxxxx 8000h

SRAM (32KB)

0111xxxxxxxxxxxx 7FFFh 0110xxxxxxxxxxxx 6000h

Peripherals (8KB)

0101xxxxxxxxxxxx 5FFFh 0100xxxxxxxxxxxx 0011xxxxxxxxxxxx 0010xxxxxxxxxxxx 0001xxxxxxxxxxxx 0000xxxxxxxxxxxx 0000h

EPROM (24KB)

Address DecodingAddress Decoding

SRAM

Peripherals

EPROM

Mixed Signal InterfaceMixed Signal Interface

Communication between HC11 and Communication between HC11 and analog effect circuitsanalog effect circuits

System Block DiagramSystem Block Diagram

MICRO-PROCESSING

UNITRAM

USER INTERFACE

MIXED-SIGNALINTERFACE

MIXED-SIGNALINTERFACE

MIXED-SIGNALINTERFACE

SIGNALPROCESSING

CIRCUIT(EFFECT 1)

SIGNALPROCESSING

CIRCUIT(EFFECT 2)

SIGNALPROCESSING

CIRCUIT(EFFECT 3)

AUDIOSIGNALINPUT

ROM

SPI (Serial Peripheral Interface)SPI (Serial Peripheral Interface) The SPI is a typical Master/Slave partnership in The SPI is a typical Master/Slave partnership in

which directional communication takes placewhich directional communication takes place There are four channels that make up this interfaceThere are four channels that make up this interface

– SCLK (Serial Clock)SCLK (Serial Clock)– MOSI (Master Out Slave In)MOSI (Master Out Slave In)

» One way communication channel from the master to the slave(s)One way communication channel from the master to the slave(s)

– MISO (Master In Slave Out )MISO (Master In Slave Out )» Opposite of MOSIOpposite of MOSI

– SS (Slave Select)SS (Slave Select)» The request line controlled by the master to initiate communication The request line controlled by the master to initiate communication

with the slave(s)with the slave(s)

Sample SPI Data TransferSample SPI Data Transfer

Connection between Effect and Connection between Effect and HC11HC11

SCK: Serial Clock

MOSI: Master Out Slave In

MISO: Master In Slave Out

SS’: Slave Select bits (Active Low) Multiplexed

CNCT’: Device connected bit (Active Low)

ON: Turns device on

MOSI MISO SS1’SCK SS2’ CNCT’ ON

Physical SPI LayoutPhysical SPI Layout

Xicor X9250Xicor X9250 Digitally Controlled Digitally Controlled

PotentiometerPotentiometer Turns on/off a series of Turns on/off a series of

~1000 gates moving a ~1000 gates moving a “Wiper Arm” up and “Wiper Arm” up and down the potentiometer down the potentiometer altering the effective altering the effective resistanceresistance

System Block DiagramSystem Block Diagram

MICRO-PROCESSING

UNITRAM

USER INTERFACE

MIXED-SIGNALINTERFACE

MIXED-SIGNALINTERFACE

MIXED-SIGNALINTERFACE

SIGNALPROCESSING

CIRCUIT(EFFECT 1)

SIGNALPROCESSING

CIRCUIT(EFFECT 2)

SIGNALPROCESSING

CIRCUIT(EFFECT 3)

AUDIOSIGNALINPUT

ROM

Octave Effect TheoryOctave Effect Theory

The octave effect doubles the frequency of The octave effect doubles the frequency of the input signal then superimposes the new the input signal then superimposes the new signal onto the original soundsignal onto the original sound

The user controls how much the original The user controls how much the original signal is to be mixed back in with its signal is to be mixed back in with its octave.octave.

Octave Effect Theory Cont’dOctave Effect Theory Cont’d

The input signal is first The input signal is first passed through a full wave passed through a full wave rectifier creating the rectifier creating the following signalfollowing signal

Lowpass filter to “smooth Lowpass filter to “smooth out” sharp edges, out” sharp edges, effectively creating DC-effectively creating DC-biased sinusoidbiased sinusoid

High-pass filter with High-pass filter with cutoff frequency < 80 Hz cutoff frequency < 80 Hz eliminating the DC-bias of eliminating the DC-bias of the signalthe signal

Octave Effect LayoutOctave Effect Layout

Distortion Effect TheoryDistortion Effect Theory

Signal is clipped from both the top and bottom, Signal is clipped from both the top and bottom, effectively adding higher frequency harmonics.effectively adding higher frequency harmonics.

The two voltage levels at which the signal is The two voltage levels at which the signal is clipped are fixed. To increase distortion, the input clipped are fixed. To increase distortion, the input signal is amplified, leading to more distortion but signal is amplified, leading to more distortion but also to higher volume (increased RMS value).also to higher volume (increased RMS value).

To keep volume fixed: a gain stage must be To keep volume fixed: a gain stage must be cascaded decreasing the amplitude of the output cascaded decreasing the amplitude of the output signal at the same rate that the distortion is signal at the same rate that the distortion is increased.increased.

Distortion Effect LayoutDistortion Effect Layout

Milestone I GoalsMilestone I Goals

Design and fully implement analog effect Design and fully implement analog effect circuits using knob potentiometers as effect circuits using knob potentiometers as effect intensity controllersintensity controllers

Implement real-time computer GUI Implement real-time computer GUI interfaceinterface

Be able to read/write to SRAM with Be able to read/write to SRAM with microprocessormicroprocessor

Milestone II Milestone II

Be able to communicate to PC via RS-232Be able to communicate to PC via RS-232 Write software to parse an effects program Write software to parse an effects program

filefile Program digitally controlled components Program digitally controlled components

through SPIthrough SPI Replace knob analog potentiometers with Replace knob analog potentiometers with

digitally controlled componentsdigitally controlled components

Division of LaborDivision of Labor

Tasks:Tasks: Done by:Done by:

Design and Implementation of Design and Implementation of Distortion CircuitDistortion Circuit

Adam, Jasenko and HosamAdam, Jasenko and Hosam

Design and Implementation of Design and Implementation of Octave CircuitOctave Circuit

Adam, Jasenko and HosamAdam, Jasenko and Hosam

Mixed-Signal InterfaceMixed-Signal Interface Adam, Jasenko, Yousef, HosamAdam, Jasenko, Yousef, Hosam

Microprocessor/SoftwareMicroprocessor/Software Matthew, YousefMatthew, Yousef

Systems IntegrationSystems Integration EverybodyEverybody

Testing and Quality AssuranceTesting and Quality Assurance EverybodyEverybody

Updated ScheduleUpdated ScheduleID Task Name Duration Start Finish

1 Initial Idea Proposal 6 days Mon 8/25/03 Mon 9/1/03

2 Investigation Phase 6 days Mon 8/25/03 Mon 9/1/03

3 Critical Design Review 6 days Tue 9/2/03 Tue 9/9/03

4 Preliminary Design Review 20 days Wed 9/10/03 Tue 10/7/03

5 Milestone 1 15 days Wed 10/8/03 Tue 10/28/03

6 Milestone 2 15 days Wed 10/29/03 Tue 11/18/03

7 Preliminary User Manual 6 days Tue 9/2/03 Tue 9/9/03

8 Final User Manual 62 days Wed 9/10/03 Thu 12/4/03

9 Technical Reference Manual 63 days Tue 9/9/03 Thu 12/4/03

10 Analog "Distortion" Circuit 20 days Tue 9/9/03 Mon 10/6/03

11 Analog "Octave" Circuit 14 days Thu 10/9/03 Tue 10/28/03

12 Mixed-Signal Interface 45 days Tue 9/9/03 Mon 11/10/03

13 Working protoboard w/CPU 23 days Tue 9/9/03 Thu 10/9/03

14 Create a CPU 45 days Tue 9/9/03 Mon 11/10/03

15 Interface SRAM with MPU 17 days Mon 10/6/03 Tue 10/28/03

16 Software Development 45 days Tue 9/9/03 Mon 11/10/03

17 Comm. to PC via RS-232 32 days Mon 10/6/03 Tue 11/18/03

18 Real Time GUI Interface 17 days Mon 10/6/03 Tue 10/28/03

19 Additional analog effects 12 days Mon 11/10/03 Tue 11/25/03

20 System Integration 12 days Mon 11/10/03 Tue 11/25/03

21 Testing and Quality Assurance 4 days Wed 11/26/03 Mon 12/1/03

22 Internal Expo 1 day Tue 12/2/03 Tue 12/2/03

23 Capstone Expo 3 days Wed 12/3/03 Fri 12/5/03

Team

Everybody

Everybody

Everybody

Everybody

Eveybody

Everybody

Everybody

Everybody

Jasenko and Adam

Jasenko, Adam

Jasenko, Adam, Yousef

Matthew, Hosam, Yousef

Matthew, Hosam, Yousef

Matthew, Hosam, Yousef

Matthew, Yousef,Jasenko

Matthew

Jasenko, Adam, Yousef

Everybody

Everybody

Everybody

Everybody

22 25 28 31 3 6 9 12 15 18 21 24 27 30 3 6 9 12 15 18 21 24 27 30 2 5 8 11 14 17 20 23 26 29 2 5 8 11 14 17 20August 2003 September 2003 October 2003 November 2003 December 2003

Questions?Questions?