t Synthesis Chapter Four: Digital Synthesis Language Sampler 7

Chapter Four: Synthesis

14. A Digital Synthesis Language Sampler | Page 7

Controlling digital amplitudes

We are spoiled by electronic instruments and DAWs rescaling amplitudes from multiple notes, tracks and signals to avoid clipping when they are summed. Most synthesis languages leave it to the user to keep track of all the signal levels simultaneously contributing to the final output and to keep that total amount under the maximum sample amplitude values allowed.  Beyond this maximum value distortion and clipping occur. This is a particularly difficult task if many signals are sounding simultaneously. Controlling amps is an important compositional parameter that even experienced users are constantly tweaking.  Additionally, different programs may use a different type of amplitude scale. 

Classic csound, for example, uses actual raw amplitude values, the maximum of which is 2bit depth-1-1, since it uses both the signed positive and negative values (one bit is used for the sign, and then one subtracted from that to account for the value of 0).  The maximum amplitude total of all simultaneously sounding signals would therefore be 32,767.  MAX, SuperCollider, modern csound and others, use an amplitude scale between 0.0 and 1.0.  If  you had two simultaneous notes and each had an amplitude of 0.6, for a summed total of 1.2, clipping would occur.  Both of these scale types are referred to as linear amps, since a smooth linear transition from 0 to the maximum would result in a slowing of a perceived crescendo.  Most modern languages allow users to convert whatever amplitude scale is used into decibels, with a 96-110dB range being the norm, but inversely calculated from 0dB as the maximum, down to whatever the bit depth allowed to be silent, so -96 to -144 dB approximately.  This scheme is referred to as 0dBFS , since 0 is the maximum digital amplitude regardless of the bit depth. In this way, users can more accurately create smooth changes in amplitude. Because of the inverted logarithmic dB scale, however, tracking the total decibel amplitudes sounding becomes more challenging.  In all cases, composers are advised to use levels that are high enough to avoid digital noise, but also to leave room for additional signals as the project evolves, and then creating an overall master amplitude adjustment for final levels.

Chart of equivalent linear amplitude systems to 0dBFS scale
dBFS 0-32767 scale
(classic csound)
0-1 scale
0 dB 32767 1
-6 dB 16384 0.5
-20 dB 3276.7 0.1