SECTION
2
Digital Level Control – done the right way
In high-end HiFi circles a level control done in the digital domain
is often viewed as being inferior to one operating in the analog
domain. Let’s look on how a digital level control works and why
it can be an excellent solution if it is properly implemented.
A level control is a multiplication of the audio signal with a con-
stant, the „gain factor”. The gain factor usually is in the range of
zero (signal fully o
ff
) to one (signal untouched). A factor of 0.5
then means that the audio signal is attenuated to half of its am-
plitude.
What exactly happens when we multiply two numbers? If we
e.g. multiply a 2 digit and a 3 digit number, the resulting number
can be up to 5 digits long (the sum 2 plus 3). As an example: 30
times 500 equals 15000. 2 digits times 3 digits yields a 5 digit
result.
In digital audio, the numbers are represented in the binary sys-
tem, not the decimal system. A decimal number consists of dig-
its 0 through 9, a binary number of digits 0 and 1. So a binary
number may look like this: 1011 0011 0101 1101. This is a 16 digit
or 16 bit binary number, the grouping into 4 bit chunks is for bet-
ter readability. The audio samples on a Album are represented
with such a binary number system with each sample value rep-
resented by 16 bits.
Now let’s assume we have a 8 bit gain factor for a level control.
If we apply that to a signal coming o
ff
a Album we multiply a 8
bit gain factor with a 16 bit sample value. The result is up to 24
bits long (the sum of the wordlengths of the two factors). An ex-
ample:
0100 1001 x 1001 0110 0111 1011 = 0010 1010 1110 1001 0001
0011
The question now is what do we do with the 24 bit long result?
The digital to analog converter which converts the samples af-
ter the level control may only be capable to handle 16 bit wide
samples. Thus what should we do with the excessive 8 bits? The
simplest solution is to truncate the 24 sample to 16 bits, i.e. to
cut o
ff
the 8 less significant bits.
The truncated 24 bit result above then would look like this:
0010 1010 1110 1001 i.e. the first 16 bits of the 24 bit result
above.
The remaining bits (0001 0011) are discarded. If these bits are
White paper on digital level control
149