Software-Based Guitar Sound Effects Synthesizer
Project Design Report
May01-17
Faculty Advisor, Client: Stephenson
Kevin Crotty
Lukasz Darowski
Nathan Linquist
Daniel McPartland
Sriram Narayanan
11/28/2000
1
List of Figures
List of Tables
Abstract
Acknowledgement
Definition of Terms
Introduction
General Background
Technical Problem
Operating Environment
Intended Users
Assumptions and Limitations
Design Requirements
Design Objectives
Functional Requirements
Design Constraints
Design Milestones
End Product Description
Approach and Design
Technical Approach
Technical Design
Testing Description
Risk and Risk Management
Recommendation for Continued Work
Financial Budget
Personnel Effort Budget
Project Schedule
Project Team Information
Summary
References
Appendix A
1
List of Figures
Figure 1. Physical Multi-Pedal Model______7
Figure 2. The software-based guitar effects synthesizer system______9
Figure 3. The Cypress EZ-USB FX development board______10
Figure 4. Effects patch______11
Figure 5. Block diagram of an effect object______11
Figure 6. The digital signal processing and GUI interface______14
Figure 7. Gant Chart______18
List of Tables
Table 1. Estimated monetary cost of the project______17
Table 2. Estimated time expenditure for each team member for the project____17
Table 3. Contact information for each member of the team______19
1
Abstract
The existing technology used to create guitar sound effects is often prohibitively expensive to the amateur guitarist. The object of this project is to provide an affordable alternative that uses the computational power of modern personal computers to simulate guitar effects. The universal serial bus (USB) provides a fast interface with the PC, allowing for real time communication with the multi-effects pedal. Through this interface, the computer modifies the guitar signal based on mathematical models for each effect. This software implementation will enable the addition of other effects in the future.
Acknowledgement
The GFX team would like to extend thanks to Cypress for the donation of their EZ-USB microcontroller and accompanying development board. We would also like to thank KeilCompany for donating software development tools.
Definition of Terms
chorusA sound effect which modifies a guitar’s output signal by adding an out of phase delayed signal on top of the original signal to create the effect of having more than one guitar.
delayA sound effect that overlays the signal with a very slightly delayed (less than 50 ms) version of the signal.
distortionA sound effect that modifies the sound of the guitar by changing the amplitude characteristics of its signal. Originally discovered by driving vacuum tubes into their breakdown region. This effect is often used to create a “metallic” sound in heavy medal music.
echoA sound effect created by delaying the input signal 50 ms or more, then mixing then mixing it with the current signal. This delay will cause the listener to hear an echo.
equalizationA sound effect created by boosting or cutting certain frequency components of a signal.
flangeA sound effect that creates a “whooshing” sound by interfering a delayed signal with the original signal.
multi-pedalAn arrangement of two or more pedals.
noise gatingA sound effect created by either attenuating or amplifying a signal if it is either above or below a given threshold.
pedalThe pedal is a foot operated digital switch that is used to select effects.
reverberationA sound effect that mimics the result of reflections of sound within a room to create a feeling of spaciousness.
USBUniversal serial bus - This is a data bus that provides reasonably fast data transfer between a host PC and a peripheral device.
wahA sound effect that dynamically changes frequency response in response to the position of an analog switch.
Introduction
General Background
Rock and roll music is dominated by electric guitars. A major reason for the guitar’s popularity is the broad range of sound effects available to musicians by electronically modifying its signal. The sound effects range from simple overdriven distortion to complex chorus and echo effects. Traditional effects pedals are based on analog electronic circuits which are connected serially to provide different combinations of effects. Such devices are usually expensive and can perform only one particular effect at a time. The combination of more than one effect requires the purchase of more hardware, which in turn increases the total cost. In practice, an average guitar player needs to invest a lot of money into hardware before he can start making a wide variety of music. To solve the problem of high cost, a new solution is needed.
Based on advances in desktop computing, a modern PC has enough computing power to modify the digital sound without noticeable latency. Using an inexpensive electronic circuit, the guitar signal can be forwarded to a PC, which in turn modifies the signal and outputs the desired sound effects back to the device, which can the be plugged into a standard guitar amplifier. Mechanical pedals will provide the switching mechanism between different sound effects and may be programmable by the host. This approach takes advantage of the common availability of PCs, offers a modifiable and extensible method for synthesizing guitar effects, and saves money by providing one device that create entire suites of sound effects at the same time.
Technical Problem
The guitar effects synthesizer can be divided into two parts: hardware and software. The hardware will include mechanical pedals for switching between sound effects, a digital to analog converter, an analog to digital converter, and a USB microcontroller. Because the software based guitar effects synthesizer will use USB communication to transfer data between the PC and the pedals, the host PC must run Windows98 or later model Windows operating system with USB support.
The graphical user interface, the mechanism through which the computer user communicates with the software based guitar effects synthesizer, will be created with LabVIEW software. The computer monitor will be used to display the current list of effects, and standard input devices such as a keyboard and a mouse will allow the user to interact with the system.
The electronic device will be powered directly by the USB, so that no external power supply will be needed. The key step on the software development side of the project will be to successfully interface the USB microcontroller with the host PC. After that milestone is completed, specific digital signal processing algorithms can be used to create the range of desired sound effects.
Operating Environment
The guitar software-based effects synthesizer will be expected to operate within a temperature range of 0 degrees Celsius to 40 degrees Celsius. The device is not expected to be exposed to water, although it is expected to operate effectively in high humidity environments. Due to the electronic nature of the device, it must tolerate an environment that includes electromagnetic interference from other devices that may be present, including 60 Hz power lines.
Intended Users
The software-based guitar effects synthesizer is intended for amateur guitarists with limited budgets. The synthesizer is expected to be an affordable alternative to analog pedals currently available to this group of guitarists.
Assumptions and Limitations
The software-based guitar effects synthesizer project is based on the assumption that many amateur guitarists own a personal computer that meets the following limitations:
The PC must be USB compatible
The PC must operate on Windows98 or newer operating system.
The PC must have a minimum processor speed of 500 MHz.
The PC must have at least 64 megabytes of RAM.
The sound quality of the software-base guitar effects amplifier will be limited by the resolution of the analog to digital converter, as well as the digital to analog converter used to input and output the signal. It will also be limited by the frequency at which the guitar’s signal is sampled. In order to accomplish this, sampling must be done more frequently than the most frequent audible sound. Because this frequency is approximately 20 kHz, the minimum sampling frequency will be limited to 20 kHz. Finally, the total number of sound effects that can be applied will be limited by the speed of the host PC and the complexity of the processing algorithms such that the maximum latency will be 10 ms.
To eliminate design complexity, the number of effects that can be sequentially chained together will be limited to eight. To further reduce the complexity of the design, the total number of chains of effects that can be mapped to one pedal will be limited to eight as well. Because the number of pedals on the physical multi-pedal is limited to three, this limits the total number of programmed effects available to the user at any give time to twenty-four.
Design Requirements
Design Objectives
1. The Guitar Effects Synthesizer must be easy for the guitar player to use.
Because guitar players are accustomed to using standard analog pedals to produce their guitar effects while playing, the design must present a mechanical interface that is similar to what is currently on the market.
2. The Guitar Effects Synthesizer must have an easy to use software interface.
Because the user of the Guitar Effects Synthesizer will use a software interface to map various effects onto the multi-pedal, the synthesizer must have an interface that is easy for the guitar player to use.
3. The Guitar Effects Synthesizer must support a wide berth of effects.
One of the main advantages that a PC based synthesizer has over typical analog synthesizers is that an unlimited number of effects could be programmed into the computer. To take advantage of this, the design must be extensible to allow for the implementation of many different effects.
4. The Guitar Effects Synthesizer must be inexpensive.
Current guitar effects are often very expensive. Given the relatively small amount of hardware necessary to implement this system on the PC, the cost of the design can be kept low to be competitive in the market.
Functional Requirements
1. The user interface must allow users to switch and chain effects.
One common practice among guitar players is to hook multiple effects together in a chain. In order for the software-based design to produce the same effects, it must also allow the user to mimic the same configurations. This means that the user interface must allow the user to specify which effects he wants, and must allow him to specify the order in which the effects are processed from the software interface. He must also be able to configure the pedals to control the effects while playing. The effects supported must include distortion, noise gate, chorus, reverberation, echo, delay, flange, pitch shift, equalizer, and wah.
2. The pedals must be programmable.
The guitar effects synthesizer will have only a small number of pedals compared to the number of effects that can be supported. Because of this, the user must be able to program which effect is controlled by which pedal at any given time.
3. The synthesizer must correctly sample the input from the guitar.
The synthesizer must accurately read the output from the guitar, or its output will not be acceptable to the guitar player, regardless of what effects are applied to the signal.
4. The software must correctly process the input based on the user’s chosen effect.
The major function of this system is to process the guitar’s signal to give it certain effects. The software-based synthesizer must apply the effects the user chooses. Without this feature, the synthesizer would basically be non-functional.
5. The guitar effects synthesizer must output the processed signal.
The output from the synthesizer must be fed into current analog amplifiers. Because of this, the synthesizer must convert its digital signal into an analog signal that can then be input into any standard electric guitar amplifier.
Design Constraints
1. The guitar effects amplifier must have negligible latency.
The speed at which the synthesizer can produce its output is very critical to this application. A long time delay from the time the signal is input into the system until the synthesizer produces its output will cause the sound produced to lag behind what the guitar player is playing. This would be unacceptable to the musician. To prevent this from happening, the design must be implemented such that the maximum latency is less than 10 ms.
2. The guitar effects amplifier must be USB compatible.
The analog signal from the guitar must be digitized, and then input into the user’s PC. This will be done via the PC’s USB. In order to accomplish this, any part of the synthesizer outside of the PC must be USB compatible.
3. The system must operate in normal PC environment.
The guitar effects synthesizer must work properly in the same physical environment that one would expect to use a PC in (0ºC to 40ºC). This includes the assumptions that the system will not be exposed to extreme temperatures, and the system will be used only in dry environments.
4. The size of the program running on the USB microcontroller must be less than 2 kB.
Because the software development package that we received with the Cypress EZ-USB microcontroller is an evaluation copy, it will only compile programs that are less than 2 kB long. Thus, the microcontroller program is limited to that length, unless a full version of the compiler is obtained.
Design Milestones
1. The hardware to be used in the system is selected.
Hardware outside of the PC will be needed to sample the guitar’s analog output, convert it to a digital signal, and interface it with the USB. This includes the microcontroller and development board as well as an analog to digital and a digital to analog converter for the effects unit. The selection of the particular hardware is critical to the synthesizer’s functionality, and also must precede much of the programming work that can be done.
2. The development environment is selected.
Once the hardware, which will consist primarily of a microcontroller, has been selected the team must choose an environment in which the software for the microcontroller can be written and tested. The selection of an appropriate development environment is therefore critical to the design of this synthesizer.
3. Communication must be established between the PC and the synthesizer’s microcontroller.
The communication between the PC and the microcontroller is critical to the system. The digital signal must be transferred to the PC as well as information about the multi-pedal. If communication between the two devices cannot be established, then there is no chance the system will function.
4. The guitar effects signal processing algorithms are implemented.
Once communication has been established between the PC and the synthesizer’s microcontroller, the PC must process the input signal. Therefore, correct implementation of the algorithms that will accomplish this is the next major step in the project.
5. The graphical-user interface is implemented.
The final major step in the project will then be implementing the graphical interface that allows the user to select effects and map them onto the multi-pedal. Once this milestone is reached, the system should be functional.
End Product Description
The Guitar Effects Synthesizer will consist of two major parts. The first of these parts is a physical multi-pedal as shown in Figure 1. This pedal must have a standard quarter inch analog in jack and a standard quarter inch analog out jack. The device must also have a USB interface, to allow it to exchange data with the personal computer. The multi-pedal will consist of three digital switches, or pedals, which will allow the user to control his or her guitar’s effects while he/she is playing. The multi-pedal will also have one analog “expression” pedal for control of the wah effect. This device will attach to the PC using a standard USB cable. Refer to Figure 1 for physical layout of the multi-pedal’s components.
Each of the three digital switch pedals will be programmable with up to eight user-defined effects. The user will specify these effects through the PC software before the system begins operation. To switch effects, the user must press one of the pedals. This action will increment the user through the list of effects programmed to that particular pedal. If the user then steps on a different pedal, the guitar effect synthesizer will then apply the first effect in the list of effects specified for that pedal to the output signal. Subsequent depressions of that pedal will then sequentially apply the other effects in the pedal’s programmed list.
To use the system, the user must be able to specify what effects are mapped to each pedal, and also the order in which these effects will be associated with each pedal. This will be done through the PC’s graphical user interface (GUI). This interface will allow the user to chain together effects and to make a list of these effect chains for each pedal. Once this specification is done, and the system is started, the user will then be able to control the effects applied to the system through the multi-pedal while he/she play the guitar.
Approach and Design
Technical Approach
The technical approach used by the software-based guitar effects synthesizer team is that of a two-computer system as shown in Figure 2. As shown in the figure, a microcontroller embedded in the multi-pedal will sample the electric guitar’s output at a frequency of 44 kHz. This data will be saved in a buffer in the microcontroller’s buffer. Every one millisecond this data will be sent to the PC as well as data regarding the status of the pedals via the USB. Once arrived at the USB, the data will be sent to the digital signal processing section of the PC program. Here, the data will be modified based on the user’s input regarding the effects mapped to each pedal. Once the data has been modified, it will be sent back to the pedal’s microcontroller, again using the USB. The microcontroller will then route the data to a digital to analog converter, again at a frequency of 44 kHz. This converter will be attached to the analog output jack, which the user can then attach to any analog output device.