An introduction to computer audio
A (device) driver is a piece of software allowing other programs to communicate with a device without having specific knowledge of this device.
If you print a document, the device driver of the printer translates the incoming stream into something the printer understands.
In case of audio, it is no different.
A media player doesn’t know every possible sound card.
The driver of the sound card takes care of the specifics.
In case of computer audio drivers like WASAPI or ASIO are deliberately chosen to bypass parts of the audio system of the operating system.
This in general results in lower latency, a bit perfect path and automatic sample rate switching.
A sound card driver provides the communication interface between an application and the audio system hardware. In general it is hardware-specific and/or is compatible with a standard like ASIO or Microsoft's Universal Audio Architecture.
From Vista on WASAPI is often used to bypass the audio engine (the mixer).
It depends on your media player if you are able to choose a specific driver.
Players like iTunes and WMP don't offer these options.
Some drivers simply don't deliver bit perfect output.
The latter applies to the C-Media based soundcard's: while the hardware is fully capable of bit perfect playback at a multitude of sample rates, all versions of the official driver process the sound. Some versions even cripple the sample size of the sound data from regular 16 bit down to 14 bit which results in a hefty loss of dynamic range (roughly estimated from 96dB/16 bit to 84dB/14 bit).
Obvious drivers can have their impact on sound quality.
When using playback software with native EMU ASIO support (Wavelab, Cubase, Reaper, JRiver Media Center, Foobar with ASIO Plug-In), I got bit perfect true data. With these software I got jitter values of random nature with approximately 2.5 ps. In this case, it doesn't matter which software I using, they all deliver nearly the same results and the difference between two measurements is in the same range as between the different software.
When using playback software that uses direct sound output (Winamp, Media Monkey), the digital data is shifted one bit into the LSB direction (just one bit, not one byte), so I receive no longer a 1:1 bit true data (but this is a different story). When I then measure the jitter a will receive the same amount of random jitter with approximately 2.5 ps, but relatively high discrete jitter with about 10 ps. (when I compare a DAC output with this two different digitals, than the direct sound output with the higher discrete jitter delivers much more worse analog out as the random jitter).
When using a playback software with wave out (Winamp, Media Monkey), I also get no bit perfect true data, because the wave driver add some dither to the signal. It is “only” a dither at the 24.th bit, but compare to only toggling the 24.th bit, it really being added to the signal, so a get a different signal with a slightly lower resolution. When I then measure the jitter, I will receive a random jitter of approximately 3.5 ps without discrete jitter frequencies.