Developing Software Synthesizers

36
Developing Software Synthesizers By: Dan Bogucki

description

Developing Software Synthesizers. By: Dan Bogucki. Overview. What is Sound? What is a Sound Synthesizer? History of the Synthesizer Hardware vs. Software Why turn to Software Synthesizer? Types of Synthesizers Methodology The Makeup of a Synthesizer Developing a Software Synthesizer. - PowerPoint PPT Presentation

Transcript of Developing Software Synthesizers

Page 1: Developing Software Synthesizers

Developing Software SynthesizersBy: Dan Bogucki

Page 2: Developing Software Synthesizers

Overview What is Sound? What is a Sound Synthesizer? History of the Synthesizer Hardware vs. Software Why turn to Software Synthesizer? Types of Synthesizers Methodology The Makeup of a Synthesizer Developing a Software Synthesizer

Page 3: Developing Software Synthesizers

What is Sound? Sound is moving energy that travels as

a pattern of changing pressure

Sound is the perceived vibration (oscillation) of air resulting from the vibration of a sound source Sound source can be anything

Guitar sound board, speaker cone, hair dryer, vocal cord, etc

Page 4: Developing Software Synthesizers

Sound Waves As your sound source expands and

contracts a pattern of changing air pressure energy moves away from the source

Ottewill, Matt. "What Is Sound?" Planet Of Tunes. N.p., n.d. Web. 13 Mar. 2013.

Page 5: Developing Software Synthesizers

Sound Waves Four Types of basic waveforms

Sine

Square

Sawtooth

Triangle

Page 6: Developing Software Synthesizers

Sound Waves

Page 7: Developing Software Synthesizers

What is a Sound Synthesizer? An electronic instrument capable of

producing sound

Generate electric signals (waveforms) which are converted to sound through speakers or headphones

Page 8: Developing Software Synthesizers

History of the Synthesizer 1860 – Hermann von Helmholtz built an electro-

mechanical oscillator 1906 – Lee de Forest invented a vacuum-triode

amplifier valve 1950s – Transistors became available 1961 – Harald Bode invented the Melochord, the

first voltage controlled synthesizer 1964 – Robert Moog constructed a transistor

voltage-controlled oscillator and amplifier 1966 – Moog launched the first commercial version

of the Moog Synthesizer

Page 9: Developing Software Synthesizers

History Continued 1950s – Max Mathews of Bell Telephone Lab

began exploring the use of using digital computers as a means to generate sounds.

1960 - Mathews produced MUSIC III 1962 – MUSIC IV 1968 – MUSIC V 1968 – Barry Vercoe developed MUSIC 360 1973 – Vercoe developed MUSIC11 1979 – Australian Fairlight CMI synthesizer was

introduced

Page 10: Developing Software Synthesizers

Hardware vs. Software Software synthesizers use digital processors

Hardware synthesizers use analog circuitry

Computer technology is advancing faster than hardware synthesizer technology For example, wavetable and additive synthesis

is not feasible with hardware synthesizers

Musicians preference between hardware sounds and character vs. software sounds

Page 11: Developing Software Synthesizers

Why Turn to Software Synthesizers? Popularity of personal computers

More flexibility and invention for both the end user as well as the software itself

Cost

Page 12: Developing Software Synthesizers

Software Synthesizer Example

https://www.youtube.com/watch?v=6FgKeGUZKiE

Page 13: Developing Software Synthesizers

Synthesizer Methodology Additive Synthesis

Subtractive Synthesis

FM Synthesis

Wavetable Synthesis

Page 14: Developing Software Synthesizers

Additive Synthesis Most fundamental method of sound

synthesis

Based on the Fourier Theory

Produces sound by adding different sine waveforms together

This technique can potentially generate sounds similar to acoustic musical instruments

Page 15: Developing Software Synthesizers

Subtractive Synthesis Basically the reverse of additive

synthesis

Produces sounds by generating a waveform that contains more harmonic content than a sine wave

The waveform is passed through filters which subtract harmonics

Page 16: Developing Software Synthesizers

FM Synthesis Uses FM sidebands as harmonics for synthesized

waveforms.

Applied digitally through FM operators Digital sine waveform and an envelope

Output is then used to modulate the frequency of another operator

Modulation of one sine wave by another produces more complex sounds

Used widely in radio transmission

Page 17: Developing Software Synthesizers

Wavetable Synthesis Also known as sampling

Most widespread and popular method

Recorded or synthesized musical events are stored in the internal memory and are played back on demand

Provides a set of playback tools Pitch Shifting Looping Enveloping

Page 18: Developing Software Synthesizers

General Makeup of a Synthesizer Today Oscillators

Envelopes

Filters

Frequency Modulators

Samplers (in some synthesizers)

Functionality and options are endless

Page 19: Developing Software Synthesizers

Oscillators Control to repeat a waveform with a

fundamental frequency and peak amplitude

Page 20: Developing Software Synthesizers

Envelopes The synthesizer’s time varying gain

function Simple analogy: A sequence of events

that occurs every time you press a key Attack Decay Sustain Release

Page 21: Developing Software Synthesizers

Filters Subtract frequency content Behave like an equalizer Four basic types

Low-pass High-pass Band-pass Band-reject

Page 22: Developing Software Synthesizers

Developing a Software Synthesizer To create sound we need to move an

object. In this case a speaker or headphones

Formula for generating a sine wave is Y = sin(x)

Simple right?

Page 23: Developing Software Synthesizers

Developing a Software Synthesizer Many programming languages have

standard mathematics libraries with many of the trigonometric functions represented

Most basic computer synthesis methods follow this same general scheme: a formula or function is defined that accepts a sequence of values as input

Page 24: Developing Software Synthesizers

Developing a Software Synthesizer Computer soundcards have digital-to-

analog converters

They are able to generate an electrical signal from a digital number that is given to it

Page 25: Developing Software Synthesizers

Producing a Simple Sine Wave A cycle of a sine wave is 2π radians long Sine waves have a peak amplitude of

+/- 1

A sample rate would be 44100 cycles per second – range of the entire human ear

Page 26: Developing Software Synthesizers

Producing a Simple Sine Wave Input: Peak amplitude (A), Frequency (f)

Output: Amplitude value (y)

y = A * sin(phase)

phase = phase + ((2 * pi * f) / samplerate) if phase > (2 * pi) then phase = phase - (2 * pi)

Page 27: Developing Software Synthesizers

Producing a Square Wave Input: Peak amplitude (A), Frequency (f) Output: Amplitude value (y)

if phase < pi then y = A else y = -A

phase = phase + ((2 * pi * f) / samplerate)

if phase > (2 * pi) then phase = phase - (2 * pi)

Page 28: Developing Software Synthesizers

Virtual Studio Technology (VST) Interface for integrating software audio

synthesizer and effect plugins with audio editors

Use digital signal processing

VST is supported by a large number of audio applications

Page 29: Developing Software Synthesizers

Virtual Studio Technology (VST) Run within your Digital Audio Workstation (DAW)

Classified as instruments or effects

VST instruments include synthesizers and samplers

VST effects include effects like reverb and phaser

First released in 1996

Page 30: Developing Software Synthesizers

Virtual Studio Technology (VST) VST is the plugin standard for DAWs

Allows any third party developer to create a VST plugin for use within DAWs

Steinberg’s VST SDK is a set of C++ classes based around an underlying C API. You can download the SDK from their website

Steinberg also developed the VST GUI (another set of C++ classes) which is also available to add graphical interface to your VST

Page 31: Developing Software Synthesizers

Virtual Studio Technology (VST) There are several third party ports

available jVSTwRapper – Java version Python ctypes-based VST wrapper Noise and VST.NET – two .NET versions LADSPA – Linux Audio Developers Simple

Plugin API JRUBY And many more!

Page 32: Developing Software Synthesizers

Virtual Studio Technology (VST) LADSPA Header File

http://www.ladspa.org/ladspa_sdk/ladspa.h.txt

Page 33: Developing Software Synthesizers

Questions / Comments?

Page 34: Developing Software Synthesizers

References Alles, Harold G. "Music Synthesis Using Real Time Digital Techniques." Proceedings of the

IEEE 68.4 (1980): 436-49. Web. 10 Mar. 2013. <http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1455942>.

Crombie, D.; Lenoir, R.; McKenzie, N., "Producing accessible multimedia music," Web Delivering of Music, 2003. 2003 WEDELMUSIC. Proceedings. Third International Conference on , vol., no., pp.45,48, 15-17 Sept. 2003 <http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1233872&isnumber=27650>

Echeverria, U.G.; Castro, F.E.G.; Lopez, J.M.D.B., "Comparison between a Hardware and a software synthesizer," Electronics, Communications and Computer (CONIELECOMP), 2010 20th International Conference on , vol., no., pp.311,314, 22-24 Feb. 2010doi: 10.1109/CONIELECOMP.2010.5440747 <http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5440747&isnumber=5440746>

"electronic music." Encyclopædia Britannica. Encyclopædia Britannica Online Academic Edition. Encyclopædia Britannica Inc., 2013. Web. 10 Mar. 2013. <http://www.britannica.com/EBchecked/topic/183823/electronic-music>.

Gibbons, J. A.; Howard, D.M.; Tyrrell, A.M., "FPGA implementation of 1D wave equation for real-time audio synthesis," Computers and Digital Techniques, IEE Proceedings - , vol.152, no.5, pp.619,631, 9 Sept. 2005 doi: 10.1049/ip-cdt:20045178<http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1532084&isnumber=32679>

Page 35: Developing Software Synthesizers

References Horner, A., "Low peak amplitudes for wavetable synthesis," Speech and Audio Processing, IEEE

Transactions on , vol.8, no.4, pp.467,470, Jul 2000 doi: 10.1109/89.848227<http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=848227&isnumber=18448>

Lindemann, E., "Music Synthesis with Reconstructive Phrase Modeling," Signal Processing Magazine, IEEE , vol.24, no.2, pp.80,91, March 2007 doi: 10.1109/MSP.2007.323267<http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4117931&isnumber=4116828>

Ottewill, Matt. "Synthesis Types." Planet Of Tunes. N.p., n.d. Web. 10 Mar. 2013.

Phelan, Cormac; Bleakley, Chris J.; Cummins, Fred, "Adapting and parameterising auditory icons for use in a synthetic musical instrument," Signals and Systems Conference (ISSC 2009), IET Irish , vol., no., pp.1,6, 10-11 June 2009 doi: 10.1049/cp.2009.1695<http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5524704&isnumber=5524662>

"Principles of Sound Synthesis." Sound Synthesis Tutorial. N.p., n.d. Web. 10 Mar. 2013.

Rabenstein, R.; Trautmann, L., "Digital sound synthesis by physical modelling," Image and Signal Processing and Analysis, 2001. ISPA 2001. Proceedings of the 2nd International Symposium on , vol., no., pp.12,23, 2001 doi: 10.1109/ISPA.2001.938598<http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=938598&isnumber=20289>

Seum-Lim, Gan. "Digital Synthesis of Musical Sounds." Digital Synthesis of Musical Sounds. National University of Singapore, n.d. Web. 10 Mar. 2013

Page 36: Developing Software Synthesizers

"DrPetter's Homepage - Basic Sound Theory and Synthesis." DrPetter's Homepage - Basic Sound Theory and Synthesis. N.p., 25 Mar. 2010. Web. 13 Mar. 2013.

Burk, Phil, Larry Polansky, Douglas Repetto, Mary Roberts, and Dan Rockmore.

"Music and Computers." Music and Computers. N.p., n.d. Web. 13 Mar. 2013.