Windows and automatic sample-rate switching

To Doug Schneider,

I was searching Google and came across your article on computer-based audio written in April. It was an interesting article and I wanted to ask you a question about this subject. I've been using digital audio for a while now. Virtually all of my music is now in FLAC format and stored on a NAS box. I use a Windows 7 laptop to play the music. Although I have J. River, I primarily use MediaMonkey simply because I like the functionality better.

My question has to do with playing files encoded at higher bit depths and sample rates. Almost all of my stuff is in the 16/44 standard, but I have a few records in 24/96 and 24/192, which I've recently added. The problem I'm experiencing has to do with the digital interface from the laptop to the DAC that is attached to my amp. I have two interfaces, one being a S/PDIF jack in the PC that connects directly to my DAC, and the other is an M-Audio ProFire 610, which is a FireWire device connected to my PC and is in turn connected to my DAC through a coax digital cable.

Both of these interfaces and my DAC support up to 24/192, but I have to manually set the sample rate for each of the interfaces on the PC. I can't understand why the interface wouldn't just pass the file through at whatever bit depth/sample rate it is encoded at and let the DAC deal with it. Having to fix the sample rate essentially means I would have to change the sample rate in the PC every time I wanted to play a file encoded in something other than 16/44. That doesn't make sense to me. Am I missing something? All I really want is a solution where I can play files from my PC through to the DAC regardless of what bit depth/sample rate the files are in without having to monkey around with settings all of the time.

Any suggestions or explanations would be much appreciated. Thanks very much.

Stephen Graham

Your problem is a common one and I can easily explain what’s happening. Windows has a sound subsystem built in (Apple’s operating system has this too). You get at this by clicking Control Panel and then Sound, which will then show you the various devices that can be listened to. By default, the signal will go from your music player, whether it’s J. River’s Media Center or MediaMonkey, and pass through this subsystem before being routed to the appropriate output device. The bit depth and sample rate set for that device within the Sound section will determine what the corresponding output device receives. For example, if the device is set to 16-bit/44.1kHz resolution, a CD-quality music signal will pass through it unchanged, but if you try to send through a 24/96 or 24/192 file, Windows will actually downsample it to 16/44.1 since that’s the Sound setting. If it’s set to, say, 24 bits and 96kHz, a 24/96 signal will pass through unchanged, but a 16/44.1 signal will be upsampled to 24/96 and a 24/192 one will be downsampled to 24/96, which is not only annoying, but not necessarily good for sound quality either. This is exactly why right now you have to go into the Sound section and change the settings to correspond to the file you’re playing. What you want to do is have your music player bypass this section of the operating system so Windows stops messing with the signal and have it talk directly to the port and/or output device.

Here’s the next problem: I don’t know what the capabilities of your sound card are that has the S/PDIF connector on it, and I don’t know exactly how your FireWire device works. My experiences are limited to using a DAC connected to a USB port; however, I can tell you how that works and how to have the player talk directly to the port that way, which should give you some direction.

In reading about computer-based audio, you might have come across terms like ASIO and WASAPI. These are Windows-based drivers that allow a music player such as J. River’s Media Center, which is what I use, to communicate directly with the USB port and have full control of the signal, including the bit depth and sample rate. Upon installation, Media Center’s Output Mode will default to Direct Sound, which passes the signal through the Windows subsystem. You simply select Tools > Options > Output Mode and choose the driver of your choice (I always use one of the WASAPI options or ASIO, although Kernel Streaming is another way to accomplish the same thing) and, presto, direct control of the output device with automatic sample-rate switching.

As I said, though, I can’t tell you how to remedy your situation because I don’t know your hardware at all, but that should at least give you an understanding of the problem and what you need to do to try to fix it. . . . Doug Schneider