Skip to main content

Topic: Improving foobar's bit-perfect sound reproduction (Read 12314 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • foorious
  • [*][*][*]
  • Banned
Improving foobar's bit-perfect sound reproduction
Hi eveybody,

(foreword : in this topic I am NOT taking sides - just delivering some information to whom it may concern)

1. The problem

Well, we almost all know that foobar can deliver bit-perfect playback via Kernel Streaming or ASIO (there's even WASAPI now for Vista). So where's the point ? Isn't bit-perfect... well, perfect ? 

The point itself doesn't reside entirely within foobar, but also within Windows itself.    To keep it simple, let's just say that Windows' disk interference can alter sound reproduction : not by altering the bits themselves (since we're talking bit-perfect playback), but by altering the frequency at which the bits are delivered (this is generally referred as digital jitter). Digital jitter is sometimes audible and sometimes not : it depends of course on your ears and your hi-fi system. But the fact is that it exists anyway (this is a fact that has been proven a long time ago). So if we're looking for perfection, bit-perfect playback is a must... but it may not be enough.

2. A first solution

To avoid digital jitter, the first approach is called "memory playback" : the music is preloaded in RAM memory (not just a part of the file but the whole file(s), even before the playback begins). Another complementary approach can be getting rid of every part of Windows that can interfere with the sound reproduction (even in KS / ASIO mode) : for example replacing explorer.exe with something else.

Long story short, some folks at Sourceforge have been thinking about all this, and have released cMP (cics Memory Player). cMP is an open-source memory playback utility that can be used together with a player like foobar, in order to (theroretically) perfect the sound reproduction (provided you have a high-end audio system capable of actually making you hear the difference).
cMP 1.0 is available for download here :
The manual (short, easy to read) is here :

Now let's get to the interesting part.

3. What about foobar then ?

cMP can be used together with a player... but AFAIK it just uses the player as... a mere player, not as a library management software. That means cMP has its own (and very simplified) interface. So for all of us who use foobar as a library management software, cMP doesn't seem to be the ideal solution.

Yet the ideas that lead to cMP development remain interesting IMHO, and maybe they could lead to some future improvements in foobar's core ? Best of both worlds, that would be the idea. For example a user-configurable "memory playback" option where we could really define the amount of RAM that we'd like to allocate for playback (if we have 2 GB, we could be tempted to use almost 1 GB for playback, which would allow to preload either a whole music CD in decompressed WAV form or several 24-bit multichannel files in decompressed WAVX form).

Another solution would be to let foobar "as is", and simply develop a "lighter version" of cMP (without interface) that could somewhat replace explorer.exe while still allowing to use foobar as both a player AND a library management software. 

4. Another example

Still not convinced ? Well, let's take a look at this other project then : XXHighEnd.

This is about some new 'high-end' audio-player (commercial unfortunately), developed by a guy (some Peter... again !  ) who was a former foobar user that wanted to improve sound reproduction while preserving bit-perfect. In his own words : "I know this sounds stupid, knowing - or assuming that bit perfect = bit perfect. But sadly, this is not so. This is not so at all because all is influenced by jitter. So you could well say that all XX is doing, is eliminating jitter"... 

You can read more about it here : and more particularly this topic :

Again, it's not the guy's approach (commercial) that interests me, but rather the idea of improving sound reproduction towards a "double fidelity" approach : data fidelity (bit-perfect) and time fidelity (less digital jitter).

Well, enough said for now. Again, I'm not taking sides here. I just think all this information may lead to an interesting discussion - between open-minded people I hope - about the future of foobar's core OR the development of a lighter version of cMP that could run as an intermediary layer between foobar and Windows core. I guess most people won't be interested in this topic - but I hope there are some who will feel concerned. I also hope some foobar techies will be willing to participate.

I know this topic could lead to some over-passionate debate, so I would ask folks from all sides to remain calm and respectful, and to dissociate myths from facts without over-confidence. To be honest, I don't know if this topic will be useless or not : only time will tell. So thanks in advance for your constructive contribution.