Transcript
Synthadeus
Page 1
Synthadeus
Synthadeus
Page 2
Software Requirements Specification for
Synthadeus Version 1.0 approved 20151019
Prepared by:
Anthony Allen
James Bellard
Hunter Crossett
J. Everett Moser
Ronald Richardson II
Dan Robert
Justin Ross
Synthadeus
Page 3
Table of Contents Table of Contents Revision History 1. Introduction 1.1 1.2 1.3 1.4 1.5
Purpose Document Conventions Intended Audience and Reading Suggestions Product Scope References
2. Overall Description 2.1 2.2 2.3 2.4 2.5 2.6 2.7
Product Perspective Product Functions User Classes and Characteristics Operating Environment Design and Implementation Constraints User Documentation Assumptions and Dependencies
3. External Interface Requirements 3.1 3.2 3.3 3.4
Performance Requirements Safety Requirements Security Requirements Software Quality Attributes Business Rules
6. Other Requirements Appendix A: Glossary Appendix B: Models Reference Appendix C: Digital Synthesis Overview
Audio Graph Oscillators Envelopes Equalizers Filters Sample Output Realtime Audio Playback
5. Other Nonfunctional Requirements 5.1 5.2 5.3 5.4 5.5
User Interfaces Hardware Interfaces Software Interfaces Communications Interfaces
4. System Features 4.1 4.2 4.3 4.4 4.5 4.6 4.7
Synthadeus
Page 4
Revision History Name James Bellard J. Everett Moser Hunter Crossett Ronald Richardson II Dan Robert Dan Robert J. Everett Moser Justin Ross J. Everett Moser
Date 10/16/15 10/16/15 10/18/15 10/18/15 10/18/15 10/19/15 10/19/15 10/19/15 10/19/15
Reason For Changes Nonfucional reqs System Requirements Editing Appendix A Hardware interfaces GUI Formatting Editing Prioritization
Version 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
Synthadeus
1.
Introduction
1.1
Purpose
Page 5
Synthadeus 1.0 is an easytouse software synthesizer intended for audio engineers, audio producers, and music enthusiasts alike. The Software Requirements Specification document provides details for the entire system, including the application’s audio engine features and the graphical user interface . The document will also cover software dependencies as well as optional hardware requirements.
1.2
Document Conventions
Words that are bolded are described in further detail in Appendix A . Additionally, for more information about audio synthesis in general, please see Appendix C . All diagrams can be referenced from Appendix B . All references to together sections will be directly stated, and the specific section letter or number is bolded .
1.3
Intended Audience and Reading Suggestions
This document is designed for project managers, marketing staff, and, to a lesser extent, users. The document is broken up into two parts, requirements and relevant information. Requirements will be introduced throughout the major sections of the document while relevant information can be found in the appendices at the end of the document. This document assumes the reader is knowledgeable about the basics of audio synthesis. For those who are not familiar with audio synthesis, start with Appendix C . This document uses several terms relating to digital signal processing and audio synthesis which the reader may not be familiar with. Many of these terms will be defined in Appendix A , and the section is designed as a reference while reading the document. For information about the project in general, please see Section 2 and Section 3 . These sections give a broad overview about what the product is and what the product does. For those readers interested in the graphical user interface and other aspects relating to the visual aspects of the project and how the user experience operates, see Section 3 and Section 4.1 . These sections will give an overview of how the product should look and what each visual item represents. For those readers interested in the individual synthesis features of the project, please see Section 3.2 and Section 4 . These sections specifically describe features that will be included in the application. For requirements not covered in this document, please see Section 6 .
1.4
Product Scope
Synthadeus is a software synthesizer designed to allow users to easily create and modify sounds. Sounds (and their modifications) are represented as nodes , which can be linked together to be altered. Nodes can be linked manymany allowing easy modifications to entire groups.
Synthadeus
Page 6
Nodes may also represent effects which may affect sounds. These effects can be used along with the sounds to create the final audio sample . Synthadeus is powerful and easy to use. Beginners will find creating and adjusting sounds to be easy and intuitive, while experts will be able to create a wide variety of sounds and fine tune them as they see fit. For a more detailed description of user classes, please see Section 2.3 . The purpose of Synthadeus is to supplement the audio producer or musician’s sound creation library. Synthadeus can be used to render simple or complex sounds, rendering audio files which can be loaded into a digital audio workstation and used in other parts of the audio professional’s work flow.
1.5 ● ● ●
References For more information about this project, please view https://everettmoser.me/synthesizer . For more information about digital signal processing, please refer to Signals and Systems by Alan V. For more information about DirectX , please see the Microsoft Documentation found at https://msdn.microsoft.com/enus/library/windows/desktop/ff476080%28v=vs.85%29.aspx?f =255&MSPPError=2147217396 .
Synthadeus
2.
Overall Description
2.1
Product Perspective
Page 7
This product is the first of its kind. It will enter the space of music creation software as an intermediary between the artist and a digital audio workstation . Many software packages in this realm emulate a specific synthesizer or method of synthesis, sticking as closely to tradition as it can. This is a new approach to creating seemingly endless sounds and instruments. This new take on audio synthesis will allow users to have more control over the synthesis process and ultimately come closer to the sound they desire to create. This product is being designed to supplement work already done with digital audio workstations , and it should add to the existing work flow audio producers or artists already have in place. For more information about audio synthesis, see Appendix C .
Synthadeus
2.2
Page 8
Product Functions
The software application needs to take the user’s ideas and translate them into actual sound. To do this, the software package must provide: ● Oscillators ● Envelopes ● Filters ● Equalization Each of these takes input and generates output, ultimately producing a sound from the user’s speakers. Each of these output can also feed input for other components as well. In addition, the system needs a realtime audio playback system so the user can listen to the sounds he/she creates. Finally, the user must be able to export the sound as a .wav file so they can import it into a digital audio workstation and utilize it in audio production.
2.3
User Classes and Characteristics
There are two kinds of users anticipated to use the system: enthusiasts and professionals. Enthusiasts shall be classified as users who use this product less than 4 days within a given week timespan. Professionals shall be classified as users who use this product more than 4 days within a given week timespan. The most important user class is the professional, and each recruitment described in this document shall outline this as a software application for a professional. Enthusiasts are not differentiated from professionals in terms of product features. This project may be forked in the future to accommodate both user types if feedback from both groups yields
Synthadeus
Page 9
different feature requests. The main philosophy used when creating this application should be “ Easy enough for an enthusiast, powerful enough for a professional. ”
2.4
Operating Environment
This product must operate in a PC running Window 7 SP1, Windows 8/8.1, or Windows 10 operating system. The system is compiled as an x86 program, and it is dependent on Windows binaries as well as DirectX binaries being present on the system. The application expects a GPU to be present on the system, however, the application must run on hardware configurations without it. The hardware is expected to have, at minimum, a 2.0 GHz dualcore processor, 4 GB or RAM, and a NVIDIA GT 620.
2.5
Design and Implementation Constraints
The realtime audio engine must be able to achieve uninterpretable playback on a standard PC, with minimum specifications described above. All graphical and audio operations must have a moderate level of efficiency. The system is designed to crash on failure, regardless if the failure is recoverable. The developers will use Incremental Implementations to manage the priorities. The priorities in order of importance to the end user are incremented as follows: Phase 1 ● Oscillator Section 4.2 ● Audio Graph Section 4.1 ● Playback Section 4.7 Phase 2 ● Sample Export Section 4.6 ● More Audio Nodes Section 4.3, Section 4.6 ● Equalization Section 4.4 Phase 3 ● Filter Section 4.5 ● Envelopes Section 4.3 ● GUI Enhancements Section 3.1
Synthadeus
2.6
Page 10
User Documentation
The enduser documentation provided with Synthadeus will include a local copy of a manual written as an web page. This will include descriptions of all product functionality and provide basic HowTo’s for common tasks. To supplement the HowTo’s, various videos will be available via the YouTube streaming service which will also guide the users through the same list of HowTo’s. These videos will not be provided at launch, but instead will be released over the course of time as a tutorial series.
2.7
Assumptions and Dependencies
It is assumed the system has DirectX installed for the proper binaries required for the 2D graphics component installed prior to the installation of Synthadeus. Synthadeus will not attempt to check for the presence of these binaries or prompt the user to install them prior to or during use of the application.
3.
External Interface Requirements
3.1
User Interfaces
Graphical User Interface This is the Synthadeus graphical user interface. There are several features needed to create the interface, but the features will be implemented progressively each time the product iterates.
Synthadeus
Page 11
Central graph display: ● Allows selecting, deleting, copying, and making connections between nodes . ● Allows searching for nodes in current project by name. ● This is the main feature of the GUI . Project folder sidebar: ● Allows quick access to a listing of recent projects and their nodes . ● Nodes can be pulled from this sidebar into the central graph display. ● This is a relatively low priority feature, and it will probably be implemented in a future release of Synthadeus. Node sidebar: ● Allows editing the details/attributes of the selected node . ● Can create/delete nodes from this sidebar. ● This is a main feature of Synthadeus and it has a high priority. Tab bar: ● Allows switching between multiple projects open at the same time. ● This is a relatively low priority feature, and it will probably be implemented in a future release of Synthadeus.
Synthadeus
Page 12
File menu: ● Allows creating, opening, and saving projects. ● This is a main feature of Synthadeus and it has a high priority. Edit menu: ● Allows undoing or redoing recent changes. ● This is a relatively low priority feature, and it will probably be implemented in a future release of Synthadeus. View menu: ● Allows menu/sidebar placement settings to be changed. ● Can change central graph display zoom setting. ● This is a relatively low priority feature, and it will probably be implemented in a future release of Synthadeus. Help menu: ● Directs user to basic application functions tutorial. ● This is a relatively low priority feature, and it will probably be implemented in a future release of Synthadeus. Synthadeus’s graphbased music building GUI is based on the Unreal Engine 4 game development editor (shown below).
Synthadeus
3.2
Page 13
Hardware Interfaces
Input: Synthadeus takes in data from various input devices in Musical Instrument Digital Interface (MIDI) standard. These devices, or controllers, include: ● Music Sequencers ● Instrument Controllers ● Fingerboards ● Guitar Synthesizers ● Wind Controllers ● Electric Drums As long as the device follows MIDI protocol, it can be used to input data into the Synthadeus application. Each of these controllers can add extra functionality to this synthesizer and help create a broader range of unique sounds. However, they are not required. In fact, a vast array of musical sounds can be created using only a basic keyboard as input. That is because Synthadeus allows a keyboard to provide similar functionality to that of a piano. Output: Synthadeus outputs graphical data to the monitor and audio data to the speakers/headphones. Graphical data is processed by the GPU and then rendered onto the screen. 2D geometry rendering tasks are handled with the help of Microsoft’s Direct2D API, while text rendering tasks are handled with the help of Microsoft’s DirectWrite API. Audio data is handled with the help of Microsoft’s Windows Core Audio API’s.
Synthadeus
4.
Page 14
System Features
This project has a few subsystems which will be used to build into the following list. At its core, the application allows the user to create, modify, and manage sounds through a graphical layout of the synthesis process. Underneath, the application uses a robust, custombuilt audio engine and an efficient 2D rendering component.
4.1
Audio Graph
Users should be able to design and refine their sound via a sound graph . This is essentially a bunch of visual nodes the user can link inputs and outputs together to create a synthesized sound.
4.1.1
Description and Priority
This is the main feature the user will interact with. The rest of the features of the product will revolve around making this a very unique way to interface with synthesized sounds. As such, the whole focus of the project is to get this aspect right. For more information about audio synthesis, see Appendix C .
4.1.2
Stimulus/Response Sequences
The graph should visually represent nodes and links on the screen. The user is allowed to click and drag nodes around the screen, modify values by adjusting components on the nodes , create or break links, and move the viewing area round the graph area with the mouse and arrow keys.
4.1.3
Functional Requirements
The graph needs to visually keep track of the audio flow within the application. Additionally, users must be able to modify the graph . ● AGRREQ1: Allow the user to create graph nodes to represent various component. ● AGRREQ2: Allow the users to move the graph nodes around the viewing area. ● AGRREQ3: Allow the users to connect nodes together with the appropriate outputs only feeding the correct inputs. ● AGRREQ4: Allow the user to break links between nodes . ● AGRREQ5: Allow the user to remove nodes from the graph .
4.2
Oscillators This is feature every synthesizer must have, and it is required to produce sound.
4.2.1
Description and Priority
For the definition about what an oscillator is, see Appendix A . The user should be able to create oscillators as they wish, and they application should support up to 10 different oscillators , each with their own properties and inputs.
Synthadeus
4.2.2
Page 15
Stimulus/Response Sequences
Users should be able to create oscillators using the GUI interface. Once created, the various properties should be alterable within the main client window. The defined waveform should be shown graphically. Upon input from an audio input device, the oscillator should generate audio and pass it to the next node in the Synthesizer Graph .
4.2.3
Functional Requirements
An oscillator has a few parameters which the user may alter. These are volume , panning , frequency , and waveform . Each of these input values must be provided by a proper input node , and the node should refuse connections from invalid input sources. ● OSCREQ1: Oscillators will accept constant input into its input parameters. ● OSCREQ2: Oscillators will output a waveform output. ● OSCREQ3: Oscillators will show a graphical representation of its waveform .
4.3
Envelopes
This is a common synthesizer feature, and it helps give the user more control over the sound they desire to create.
4.3.1
Description and Priority
For the definition about what an envelope is, see Appendix A . The user should be able to create envelopes as they wish, and they application should support up to 10 different envelopes , each with their own properties and inputs.
4.3.2
Stimulus/Response Sequences
Users should be able to create envelopes using the GUI interface. Once created, the various properties should be alterable within the main client window. The defined function should be shown graphically. Upon input from an audio input device, the envelope should generate the appropriate value with respect to time and pass it to the next node in the synthesizer graph .
4.3.3
Functional Requirements
An envelope has a few parameters which the user may alter. These are attack , decay , sustain , and release . ( ADSR ) Each of these input values must be provided by a proper input node , and the node should refuse connections from invalid input sources. ● ENVREQ1: Envelopes will accept constant input into its input parameters. ● ENVREQ2: Envelopes will output a piecewisefunctionesque output. ● ENVREQ3: Envelopes will show a graphical representation of its value with respect to time.
4.4
Equalization
This is a common audio feature found in many audio playback software packages. It helps give the user more control over the sound they desire to create.
Synthadeus
4.4.1
Page 16
Description and Priority
For the definition about what an equalizer is, see Appendix A . The user should be able to create equalization filters as they wish, and they application should support up to 10 different equalizers , each with their own properties and inputs.
4.4.2
Stimulus/Response Sequences
Users should be able to create equalizers using the GUI interface. Once created, the various properties should be alterable within the main client window. The defined function should be shown graphically. Upon input from an audio input device, the equalizer should generate the appropriate value with respect to time and pass it to the next node in the synthesizer graph . Equalizers will operate on two frequency bands at minimum.
4.4.3
Functional Requirements
An equalizer has a two parameters per frequency band which the user may alter. These are frequency , and value. Each of these input values must be provided by a proper input node , and the node should refuse connections from invalid input sources. ● EQLREQ1: Equalizers will accept constant input into its input parameters. ● EQLREQ2: Equalizers will output a waveform . ● EQLREQ3: The equalizer will have a graphical display of its values in the frequency domain.
4.5
Filters
This is a common synthesizer feature, and it helps give the user more control over the sound they desire to create.
4.5.1
Description and Priority
For the definition about what an filter is, see Appendix A. The user should be able to create filters as they wish, and they application should support up to 10 different filters , each with their own properties and inputs.
4.5.2
Stimulus/Response Sequences
Users should be able to create filters using the GUI interface. Once created, the various properties should be alterable within the main client window. The defined function should be shown graphically. Upon input from an audio input device, the filter should generate the appropriate value with respect to time and pass it to the next node in the synthesizer graph . Filters may either be highpass or lowpass filters .
4.5.3
Functional Requirements
An filter has a two parameters which the user may alter. These are cutoff frequency , and resonance . Each of these input values must be provided by a proper input node , and the node should refuse connections from invalid input sources. ● FILREQ1: Filters will accept constant input into its input parameters. ● FILREQ2: Filters will output a waveform .
Synthadeus
Page 17
●
4.6
FILREQ3: domain.
The filter will have a graphical display of its values in the frequency
Sample Output
The system needs to transition from an Audio Graph to an actual audio clip sample so the user may use the sounds created in the application in other parts of the audio production process.
4.6.1
Description and Priority
Not only should the user be able to construct sounds through the Audio Graph, the user should also be able to export these sounds as a .wav file .
4.6.2
Stimulus/Response Sequences
User should be able to bring up a dialog box. This box should then prompt the user to select a file path and a file name. After that occurs, the program will create a .wav file with at least 2 seconds of audio.
4.6.3
Functional Requirements
The output must accept file name and path as input parameters and write a .wav file to the user’s chosen location. If the application does not have privileges to write to the given location, the application will not save the file. ● SMPREQ1: The user must be able to specify file name and path. ● SMPREQ2: The file must contain at least two seconds of audio data. ● SMPREQ3: The file format will always be .wav .
4.7
Realtime Audio Playback The system can preview the sound the user creates at various pitches.
4.7.1
Description and Priority
The application should allow a way to preview the sound. The application should respond to keyboard events and/or MIDI events to produce sound at specific frequencies.
4.7.2
Stimulus/Response Sequences
Upon a key press or a MIDI event, the application should produce the appropriate playback based on the key frequency from the input. Upon key release, the should stop playback. During playback, there should be some animation of the graphics representing oscillators, envelopes , filters , and equalizers .
4.7.3
Functional Requirements
The system should ● RTPREQ1: The playback should correspond to key presses and/or MIDI events. ● RTPREQ2: The key or MIDI event should correspond to a note used as an input parameter to the Audio Graph. ● RTPREQ3: The system should have a response time less than 50 ms.
Synthadeus
Page 18
5.
Other Nonfunctional Requirements
5.1
Performance Requirements 5.1.1 Description and Priority
These are the minimal performance requirements. After doing a bit of research, we found that these specs are the minimum for the what humans what humans normally require for audio and video. However, contrary to the popular myth, humans can perceive higher than 30 FPS, and milliseconds also make a difference. So, the end goal is to actually get response times as low as possible, and (less importantly) graphic speed as high as possible. The audio should run as close to 44100 Hz as possible, as this is considered optimal.
5.1.2 Nonfunctional Requirements ● ● ● ●
5.2
PFRREQ1: 2D Graphics will run at at least 30 FPS . PFRREQ2: Audio will run smoothly at a 44100 Hz sample rate . PFRREQ3: Audio will be produced within 50 milliseconds of keyboard input so that there is no audible input lag for someone playing music using Synthadeus. PFRREQ4: Graphics will display on the monitor within 100 milliseconds of user input, so that there will be no production lag for someone using Synthadeus’s GUI features.
Safety Requirements 5.2.1 Description and Priority Although safety is not an area of concern with our product, there are some minimal requirements (which should be requirements for every piece of software) that must be met.
5.2.2 Nonfunctional Requirements ● ●
5.3
SFTREQ1: The software should not cause any memory leaks (it should not write to memory it does not own). SFTREQ2: Operations should not overexert the hardware and cause hardware failures.
Security Requirements There are no anticipated security requirements for this project.
5.4
Software Quality Attributes
These qualities should be captured if the functional requirements are fulfilled. We will use specific hardware to test it, because this is hardware that we have (testable) and because the Lenovo ThinkPad is affordable.
Synthadeus
Page 19
5.4.1 Description and Priority Priority of these qualities are in this order: reusability, customizability, portability.
5.5.2 Requirements ●
SQAREQ1: Synthadeus will be easy to customize. To achieve this, we allow users to craft their own sounds using Synthadeus’s GUI .
●
SQAREQ2: Synthadeus will be reusable. The user can save and load crafted with Synthadeus’s GUI.
●
SQAREQ3: Synthadeus must be portable It must be able to run on a Lenovo ThinkPad laptop with Windows 7 installed. SQAREQ3: Synthadeus must be portable. We will use the AKAI MPK keyboard to test it (along with the laptop).
●
5.5
Business Rules 5.5.1 Description and Priority Synthadeus is freely available for download on GitHub. Anyone who downloads Synthadeus will be free to use it to synthesize whatever music they like. Anyone will be free to modify the source code of Synthadeus. Anyone will be free to redistribute Synthadeus. The creators of Synthadeus take no responsibility or liability for any damages including, but not limited to:indirect or consequential damages or any damages arising from use or loss of use, data, or profits, or other action, arising out of, or in connection with Synthadeus. All music created with Synthadeus shall not be associated with the creators of Synthadeus and rights to the content shall remain under the user provided the user has no other business restrictions to what he/she creates.
5.5.2 Requirements ●
BSRREQ1: An info document will be included with Synthadeus, which will be a copy of our business rules above.
●
BSRREQ1: Synthandeus will be freely available to download on GitHub.
6.
Other Requirements
Our project is self contained. Synthadeus does not have any need for databases, international requirements, legal requirements, reuse objectives, or anything that needs to be
Synthadeus
Page 20
otherwise stated. Unless a requirement has been specifically stated, it may be left up to the judgement of the development team as issues arise.
Synthadeus
Page 21
Appendix A: Glossary Analogue Synthesizer Combines voltage controlled circuits such as filters, oscillators, and etc. to generate and shape sound electronically. ADSR A four letter acronym which stands for attack, decay, sustain, release. These are the four parameters which control an envelope. Attack The time it takes for a note to reach its maximum level. ∞
Convolutions Function multiplication. It is defined as ∫ f (t − s)g(s) ds . This operation applies a −∞
filter to a waveform. Cutoff Frequency The frequency either above or below where the output is reduced to a specified level. Decay The time it takes for a note to go from the maximum level to the sustain level. Digital Audio Workstation (DAW) The main software program used by professionals to make music. Digital Synthesizer Signal flow is digital, containing a string of zeros and ones fed from one algorithm to another to create sound. DirectX An API that consists of predefined functions and commands for rendering graphics with the GPU. Equalizer A component used to adjust the tone or frequency response of an audio system. Envelope The change of intensity of a sound over time. It is controlled by four parameters: attack, decay, sustain, and release. Filter Circuits that operate on a frequency that selectively filters one frequency or range of frequencies out of a mix of different frequencies. Frequency The measurement of how often a given event repeats in time. This is the amount of time it takes to complete a full cycle of a waveform. Frequency Modulation A method of synthesis such that audio is created by chaining together several operators, which contain an oscillators, an envelope, and a filter. Frames Per Second (FPS) This is a unit that measures the performance of a device’s display. Graphics Processing Unit (GPU) Graphics processing unit. A single chip processor that is used for computing 3D functions.
Synthadeus
Page 22
Graphical User Interface (GUI) Includes graphical elements such as windows, icons, and buttons. Music Instrument Digial Interface (MIDI) The protocol designed to record and play back music on digital synthesizers. Node A vertex in the audio graph specifying an operation which must be performed to audio. Oscillator A device that generates oscillating electric currents or voltages. In the digital world, it generates discrete samples to represent these electric currents or voltages. Panning The spread of a monaural signal in a stereo or multichannel sound field. Pitch Determines the key or keynote of a sound or melody. Release The time it takes for a note to fall from the sustain level to zero when released. Zero represents silence. Resonance A parameter of filters relating to energy loss for a given signal. It is also known as the Q factor. Sample A digital representation of an analog signal. Sample Rate Measured in hertz, it is the rate at which samples of an analog signal are taken to be converted into digital form. Subtractive Synthesis A simple chain of an oscillator running through a filter which is sent to an amplifier for gain staging and ADSR control. Sustain The volume level while a note is held after the initial attack and decay. Waveform Audio File Format (.wav file) A wave file, containing raw audio data and the file’s number of tracks (mono or stereo), sample rate, and bit depth. Waveform A representation of how a signal changes over time.
Synthadeus
Page 23
Appendix B: Models Reference The following have been used within the document at an earlier point in time. The figures are provided here again for reference along with the section number on which they appear.
Audio Flow Diagram (Section 2.2)
Application Architecture Diagram (Section 2.1)
Synthadeus
Page 24
Wave Construction Diagram (Appendix C)
Synthadeus
Page 25
Appendix C: Digital Synthesis Overview One of the key elements of modern music in the 21st century is the Synthesizer. Synthesis is the process of generating a waveform for a desired sound. There are several different synthesizers, but they can generalized into larger categories for simplicity. Audio synthesis, at its very basics, is simply adding the right sine functions and convolutions together in sequence to produce a waveform between 20Hz and 20KHz. These waveforms are sent to your speakers or headphones to produce audible noise. There are two kinds of overall groups of synthesizers, Analogue synthesizers, or hardware synthesizers, and Digital synthesizers, or software synthesizers. Both undergo the same operations in the same sequence, but analogue synthesizers rely on electrical components to compute the waveform function while digital synthesizers generate the waveform in software. Synthesizers also have two main methods of generating waveforms: Subtractive Synthesis and Frequency Modulation . Subtractive synthesis begins with a waveform that has lots of activity within the frequency spectrum and uses filters to remove the nondesired portions of the sound. Frequency modulation takes wave operators, or a string of synthesis components, and adds a few together to create the desired sound.
There are typically three main components in a synthesizer: the Oscillator, the Filter, and the Envelope. Each of these controls specific aspects of the sound and are crucial to the production of the correct waveform. An oscillator generates a basic waveform for manipulation. A filter takes a waveform and raises or lowers specific frequencies. An envelope is a basic function to control the different wave parameters. There are three properties of a audio wave: Pitch, Volume, and Panning. These deal with how sound is hear within the listener's ear. Pitch deals with how high or low a wave sounds, and it is correlated with the frequency of the wave. Volume is how loud or soft a wave sounds, and it is correlated with the amplitude of the wave. Panning deals with spatially where the sound is
Synthadeus
Page 26
presumed to be heard from, and it correlates to how much of the wave is sent to the left and right speaker to be heard.
S noop D ogg APPROVED