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 that the audio file is send 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.
A lot of audio is 16 bits and this is supported by almost all sound cards.
Playing 24 bit audio on a 16 bit sound card is not bit perfect by design.
The samples must be converted 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.
There is even a benefit; you can apply digital volume control up to -48 dBFS without loss of resolution.
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.
It looks like using 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 sound card to the sample rate of the source.
One thing is obvious; you can get bit perfect playback only by choosing:
Your bit perfect playback is at the mercy of the programmer.
Perfect Playback
PCM is playing samples with a fixed word length and a fixed sample rate.
Perfect playback is
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