An introduction to computer audio
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 and the format should remain unaltered.
This of course requires the hardware to match the properties of the audio source exactly.
Do observe that bit perfect playback is about the samples played without any DSP applied. It says nothing about the accuracy of the time step.
As PCM audio is samples with a fixed sample rate; perfect playback is bit perfect and time step perfect.
Playing a 16 bits audio file on a 24 (or 32) bit DAC is not bit perfect by definition as to play it, 8 zero bits must be appended to each sample.
However appending 8 zeros won’t alter the sound.
It might even be beneficial as you can use these eight bits for 48 dB volume reduction without loss of resolution.
MSB first (Most Significant Bit)
1111111111111111 - 16 bits word
111111111111111100000000 - pad 8 bits for a 24 bit word
Apply volume control
However this is a bit theoretical as very good DACs in practice resolve 19 bits leaving you with 3 bits or 18 dB effective volume control before there is audible degradation. Most DACs only have 17 or 18 bits of resolution, so a digital volume control can only apply 6 to 12 dB of attenuation before artifacts show up.
Once again, this applies to playing a 16 bit source on a 24 bit DAC.
More about digital volume control.
This is a matter of disabling all DSP in your media player.
Configure the audio of your operating system right to avoid e.g. sample rate conversion.
Choosing the right drivers like WASAPI or ASIO.
See the Operating Systems section for more details.
Either you believe you have your configured your system right or you proof it.
This can be done by playing a file.
Record the digital out of your sound device.
Load both the original and the recorded file in an audio editor.
Time align (crucial, they must start with the same sample at the same time)
Subtract the tracks.
If you don’t end up all samples being zero, there is a difference so the recording is not bit perfect.
This is called the null test.
Even if you have bit perfect playback this does not necessarily means you hear them all.
DACs do differ in their ability to resolve the bits.
Some cannot even resolve all the 16 bits, some might go as far as 22.
This is called the linearity of a DAC.