Developing Software Synthesizers By: Dan Bogucki.

36
Developing Software Synthesizers By: Dan Bogucki

Transcript of Developing Software Synthesizers By: Dan Bogucki.

Developing Software SynthesizersBy: 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

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

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.

Sound Waves Four Types of basic waveforms

Sine

Square

Sawtooth

Triangle

Sound Waves

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

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

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

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

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

Software Synthesizer Example

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

Synthesizer Methodology Additive Synthesis

Subtractive Synthesis

FM Synthesis

Wavetable Synthesis

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

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

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

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

General Makeup of a Synthesizer Today Oscillators

Envelopes

Filters

Frequency Modulators

Samplers (in some synthesizers)

Functionality and options are endless

Oscillators Control to repeat a waveform with a

fundamental frequency and peak amplitude

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

Filters Subtract frequency content Behave like an equalizer Four basic types

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

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?

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

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

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

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)

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)

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

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

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

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!

Virtual Studio Technology (VST) LADSPA Header File

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

Questions / Comments?

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>

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

"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.