Additive synthesis

related topics
{system, computer, user}
{math, number, function}
{album, band, music}
{math, energy, light}
{acid, form, water}

Additive synthesis is a technique of audio synthesis which creates musical timbre.

The timbre of an instrument is composed of multiple harmonic or non-harmonic partials (individual sine waves), of different frequencies and amplitudes, that change over time. Additive synthesis allows the emulation of sounds by giving control over the frequency and amplitude of each individual harmonic or partial. Often, each harmonic generator has its own customizable volume envelope, creating a realistic, dynamic sound that changes over time.

Contents

Theory

The concept behind additive synthesis is directly related to work done by the French mathematician Joseph Fourier. Fourier discovered that periodic functions are formed by the summation of an infinite series, called Fourier series. Following this, it was established that all periodic signals, when represented as a mathematical function, can be composed as a sum of sinusoidal functions ( sin(x), cos(x) ) of various frequencies. More rigorously, any periodic sound in the discrete time domain can be synthesized as follows:

or

where

The DC term is generally undesirable in audio synthesis, so the a0 term can be removed. Introducing time varying coefficients rk[n] allows for the dynamic use of envelopes to modulate oscillators creating a "quasi-periodic" waveform (one that is periodic over the short term but changes its waveform shape over the longer term).

Additive synthesis can also create non-harmonic sounds (which have non-periodic waveforms) if the individual harmonics do not all have a frequency that is an integer multiple of the fundamental frequency. By replacing the kth harmonic frequency, k f0, with time-varying and general (not necessarily harmonic) frequencies, fk[n], (the instantaneous frequency of the kth partial at the time of sample n) the definition of the synthesized output would be, (also eliminating the DC term):

or

Full article ▸

related documents
Server-side scripting
Wikipedia:Federal Standard 1037C terms/computer programming terms
AutoLISP
PureBasic
Oberon programming language
IBM 1620 Model I
Accumulator (computing)
Code coverage
Bourne shell
Client-side scripting
Denormalization
Initialization vector
Wikipedia:Free On-line Dictionary of Computing/I - K
ScriptBasic
Remote procedure call
Portable Distributed Objects
LZ77 and LZ78
Pentium FDIV bug
Serial number
Monolithic kernel
386BSD
Run-length encoding
XPCOM
Debugger
True BASIC
Third-order intercept point
World file
Computer algebra system
Adapter pattern
Maclisp