Snakeoil Forums

Full Version: Are bit perfect players really bit perfect?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Snakeoil provides multiple software players. They are all supposedly bit perfect, so why did I bother bundling so many of them? After all, do all bit perfect players sound different?

Obviously not to me, hence the reason Snakeoil has several. And this may be the reason why: Q&A with John Swenson. Part 3: How bit-perfect software can affect sound (Courtesy audiostream).

Wish I found this article a long time ago, as the article mirrors some of my personal observations. e.g.

Quote:Packet jitter is most frequently caused by software. In many systems the time at which each packet is scheduled for transmission is computed in software. If that software is late in doing its job, the packet timing will change. This software that does the packet scheduling is almost always interrupt driven. The exact time this interrupt routine is called can be affected by other software on the computer, in particular process and thread priorities. The kernel scheduling protocol also has a significant affect.
Is the reason why I decided to use a RT kernel.

And I learnt something new - cache misses:
Quote:Special instructions that do a lot with just one instruction can also significantly decrease cache misses. But not all processors support all the different types of these instructions, so few programs really make use of these.
...
One interesting aspect of this is compiler optimizations can significantly increase the cache misses.
So the trick is to enable all features of the CPU (e.g. SSE3, and so on), but without compiler optimisations (-O2). The first part is really hard to do since I am not the author of any of the software players, but at least I can manage with the second. I'd see if I can incorprate this into the next release of Snakeoil.