Verifying 24 bit Playback

Feb 16, 2011

This technique describes a simple method of verifying 24 bit playback in a digital audio system. Several low level (in the lowest 8 bits) 24bit/96 kHz test tone wave files are played back in a listening test.

Measurement Setup

Several low level wave (uncompressed PCM) files were synthesized programatically with a 30 sec constant test tone at 1 kHz. Each wave file contained a tone with higher intensity, corresponding to progressively using more of the lowest order bits of the 24bit/96 kHz wave file samples. The wave files were played back using three different methods: All 3 methods gave identical results in a listening test demonstrating correct 24 bit playback. The remainder of this article will discuss the first method above. The MediaSource playlist and player is shown below:

The sample wave files used in this test are: (Note that the higher order bits in the sample data of the wave file will be either zero (for positive values during the sine wave cycle) or all 1 (for negative values) for a given sample because of the 2's complement signed integer represention of 24bit integer samples).

A good quality Creative X-Fi Elite Pro sound card which supports 24bit/192 kHz audio was used to output the digital audio stream:

The SPDIF optical output of the sound card was coupled to the SPDIF input of a Pioneer VSX-9140TXH digital receiver and the audio output to the speaker system was monitored by ear:
(WARNING: since the amplifier gain must set at very high levels to hear these weak tones, it is extremely important to exercise great care to insure a normal level audio file is not played back accidently).

Example Results

The ability to hear such low level audio files depends of course on the S/N performance of the analog section of the amplifier/receiver. A 1 kHz tone was used as it is in the range of high hearing acuity (maximum is about 3 kHz). With the Pioneer amplifer, each audio file could progressively be heard to weaken as expected. Since the level display on the receiver is calibrated in dB, a check was made between the 8bit-level tone and the 7th-bit level tone by noting the amplifier setting for the higher-level 8-bit tone, then playing back the 7-th bit tone and increasing the amplifier gain to get approximately the same level. This required an increase of about 6db = 20log(2) which is what is expected for a factor of 2 (a extra bit of audio) in signal level.

I judged that the weakest audio level discernible with this amplifier corresponded to the wav with a digital amplitude of 31 (or binary 11111) or the 5th bit. Since full scale digital for a 24 bit signal is 8,388,607 (for a signed 24 bit integer), this represents roughly a digital signal/noise ratio of 20log(31/8388607) or -109 dB which is consistent with the sound card and receiver specifications.

The technique above therefore can be used to aurally verify true 24 bit support, or more accurately bit support down to the lowest audible bit as determined by the S/N of the amplifier/receiver. The same playback testing method can of course be applied in other scenarios such as DLNA streaming applications.


What happens if a 24 digital low level audio signal is truncated during downsizing to 16 bits? What does one expect to hear? One possibility that the author has observed is the following:
For a weak audio signal in the lowest 8 bits, truncation of the signal to 16 bits from 24 bits will still leave the upper bits set to 1 during the NEGATIVE swing of the original 24 bit signal. Therefore, we will end up with 16 bit samples that swing from a zero sample value (during the positive cycle of the original data) to a sample value of 1111111111111111 or -1 (corresponding to the negative values in the original samples). This -1 value is a consequence of the 2's complement representation of a negative value in the original 24 bit sample! Therefore the original simple 24 bit sine wave will become a 16 bit signal which swings from 0 (all 16 bits off) to -1 (all 16 abits set) and this will occur at the same frequency as the original 24 bit audio signal and will certainly be audible in most sound systems. The identical 16 bit signal will be heard no matter what the low level signal amplitude is (as long as it is restricted to the lowest 8 bits). Therefore we can easily check if there is truncation by simply listening to playback with the set of low-level 24 bit samples described above.

This truncation effect has been observed by the author in a DLNA streaming configuration, using the test files described above, demonstrating without doubt that 24 bits are being truncated to 16..