Bit perfect playback

The holy grail of computer audio playback.
Feeding the unadulterated bits to the DAC.

 

An audio file has a:

Most of the time bit perfect playback refers to the absence of any type of DSP (Digital Signal Processing) like volume control, sample rate conversion, dither, etc.


True bit perfect playback is sending the audio file unaltered to the audio device.
Bit depth, sample rate, number of channels should remain unaltered.
This of course requires the hardware to match the properties of the audio source exactly.

How to get bit perfect playback

Bit depth

Playing 24 bit audio on a 16 bit sound card is not bit perfect by design.
The samples must be truncated to 16 bit and dithered.
Playing 16 bit audio on a 24 bit sound card is a matter of adding 8 zeros to the sample.
This won’t affect sound quality as no information is discarded or added.

Sample rate

If you have a sound card playing at 48 kHz only, you will never play at native sample rate unless the source is 48 kHz too.
If your sound card supports multiple sample rates the question is if automatic sample rate switching is supported.
This depends on your media player and the driver you are using.


In case of Win7 the default driver for audio is DS (Direct Sound).
All audio is send to the Win audio engine in the default sample rate.
This is a setting you choose in the audio panel.
If you set this setting to match your audio source e.g. 44.1 kHz you expect bit perfect output.
Inside the audio engine everything is converted to 32 bit float, mixed if needed and then converted back to the bit depth of the audio device.
As the audio engine expects mixing en volume control, the output is dithered.
DS won’t give you bit perfect playback even when you match the sample rate manually.

 

Drivers like ASIO or WASAPI talk straight to the driver of the sound card.
This allows for changing the settings of the sound card to match the source e.g. setting the audio device to the sample rate of the source.

 

This requires an audio device that can handle different sample rates.
A driver that can alter the sample rate like WASAPI or ASIO.
In general, WASAPI allows for automatic sample rate switching when used with the onboard audio or a USB DAC. When used together with a discrete sound card, automatic sample rate switching often does not work.
ASIO can only be used if the audio device comes with ASIO support.

Your media player also must be able to select different audio drivers.

The Holy Grail

You have done your homework, bought the right hardware, installed the driver, verified all your settings so now you have bit perfect playback.
Finally you have reached the holy grail of computer based playback.

 

There are two types of bit perfect playback.
By configuration and by measurement.
In the first case you believe it is bit perfect. In the second case you record the digital out and compare it with the original file.
Sometimes you might be in for a nasty surprise as an audio device might receive bit perfect data but internally apply all kind of DSP.

 

Many DACs do up-sampling. Often everything is up-sampled to e.g. 24/192.
Your data might be as bit perfect as possible, inside the DAC it is altered.
This is done by a DSP-chip, a microprocessor.
Compared with a PC they are down in power and precision. A PC can do everything in 64 bit float or even 128.
An option is to let the PC do the SRC; you defeat the SRC of the DSP chip.
Of course, the results are completely system dependent.

 

Many DACs do up-sampling. Often everything is up-sampled to e.g. 24/192.
Your data might be as bit perfect as possible, inside the DAC it is altered.
This is done by a DSP-chip, a microprocessor.
Compared with a PC they are down in power and precision. A PC can do everything in 64 bit float or even 128.
An option is to let the PC do the SRC to 24/192; you defeat the SRC of the DSP chip.
It is possible that the PC does a better job sound quality wise.

The holy grail of bit perfectness might be the lesser solution!

 

Perfect Playback
PCM is playing samples with a fixed word length and a fixed sample rate.
Perfect playback is

  • bit perfect – the samples are not altered
  • time step perfect – the time step between each sample are exactly the same length

Bit perfect is relatively easy to obtain. Tons of guides on the internet.
Time step perfect will never be obtained as there is no perfect clock.
There will always be a slight variation (intrinsic jitter).
If this jitter remains below a certain threshold, it will not be audible.

Experiments like measuring the SPDIF out will tell you if the output is bit perfect.
They won’t tell you anything about the accuracy of the timing
By design they measure only half of the PCM phenomenon

How bit perfect is bit perfect playback

You have chosen the right media player, the right drivers hence you have bit perfect playback.
All audio is send straight to the audio device, no resampling, no dithering, no DSP of anykind is going on.
Does that mean the playback chain is pit perfect?
The answer is that it is bit perfect by configuration.
Your audio device might e.g. resample the input to an internal sample rate be it a upsampling or oversampling DAC, one that uses ASRC (asynchronous sample rate conversiom).
Configuring your PC for bit perfect playback means the path between the media player and the audio device is transparent. That is all it does. It doesn’t guaranteed anything what is happening downstream.
It doesn’t guaranteed anything what is happening upstream as well.
A DLNA server converting everything to MP3 to preserve network bandwidth is an example.

References