How to set up your Digital Audio Workstation for bit-accurate playback
I know, I know… it’s: “Give me liberty, or give me death!“ But what’s a guy with an incurable, hyper-active goofball gene to do? I almost couldn’t get myself to give this little guide a “normal” (=boring) subtitle so that you fine people would actually understand, right off the bat, what this latest outpouring of mine is about. Okay, let’s get to it.So, let’s say you’ve completed the build of your first DAW. (And a mighty fine one it is!
) You have already successfully recorded some tracks with “the little DAW application that could”. And now you’re about to dive, ears first, into your first big mixing session. Then you remember that some old geezers seasoned audio engineering pros once gave you the advice to “put your ears in reference mode” before starting a mixing session by listening to some great-sounding reference material.
So you got yourself all those great reference tracks — some FLAC files, some WAV files, some lossless WMA and AAC files, with all kinds of sample rates and bit depths, ranging from the standard CD sample rate of 44.1kHz and 16-bit resolution, all the way up to 192 ksamples/second and 24-bit resolution.
Yet somehow, when you start playing those awesome tracks that came highly recommended by those old geezers seasoned audio engineering pros through your world-class audio interface and your expensive reference class studio monitors, it all somehow sounds “kaka”. (That’s a scientific pro audio engineering term, by the way.) Where’s the “transparency”, the clarity, the detail, the air, the…??? You’ve heard some lossy 320kbps MP3 files on your PeaPod (available from the new Ma©®ox mega-über corporation any day now™) that sounded better! “What is wrong?” – you scream at the top of your lungs…
Very likely, somewhere along the audio chain from the source file to the digital-to-analog converters of your audio interface, something was “done to” the audio bit stream. Maybe some link in the chain applied some effects, e.g. equalization, limiting, or “replay gain” (most likely, this would happen in the player application), or some sample rate conversion was done, possibly even more than once! All in all, that means that the bit stream arriving at your audio interface’s DACs has been — possibly significantly — altered.
So how do we get those original bits straight to those DACs, “unmessed-with”? Take the 50 cents tour, and I’ll show ya… this way, please…
Identifying and eliminating the culprits
While I will be illustrating things with WinAmp as the player application and the E-MU Tracker Pre as the audio interface, the basic principles apply to other media players and audio interfaces, as well.
There are essentially two ways to go:
- Using the audio interface’s WDM driver
- Using the audio interface’s ASIO driver
Option 1 has the advantage that practically all media players and audio applications support WDM drivers natively. The same goes for sound cards / chips / audio interfaces. The big downside of WDM: the audio bit stream has to pass through the whole Windows audio sub-system, and things can “get messy” in there. More on that in a bit.
Option 2 bypasses most of Windows’ internal paths and sends the audio data — almost — directly to the audio interface. The downside: many media players do not support ASIO natively, and while some programs can be upgraded via a plug-in, those plug-ins are oftentimes buggy.
So let’s look at what can be done using WDM, first.
- First stop: Windows Control Panel > Sounds > Audio Tab: make sure your audio interface (E-MU Tracker Pre, in my case) is selected here as the standard playback device (which should be the only option, anyway, if you don’t have any other audio card or onboard sound chip in your system). Click on “Advanced” (right next to “Volume”), go to the “Effects” tab and make sure that effects are set to “none”. Okay things here and hop on over to the “Volume” tab; make sure that the volume is all the way up — otherwise the Windows mixer would (have to) alter the incoming bit stream in order to lower the volume; click on “Advanced” (which launches Windows’ mixer applet) and mute everything except “Wave”; close the mixer applet, go to the “Sounds” tab and turn Windows sounds off. Click “OK” and close Windows Control Panel.
- Launch WinAmp, go to Options > Preferences > General Preferences > Playback. On the “Playback” tab, put a check mark next to “Allow 24bit”. You’ll get a warning message that 24-bit playback may cause unexpected problems. Click on “Yes” to confirm that you want to use 24-bit playback. If you miss this crucial setting, WinAmp will always convert things down to 16-bit resolution (using some dithering algorithm, if dithering is checked), and you’d lose all the extra resolution those extra bits provide (if your source material’s resolution is higher than 16 bits, of course). While you’re there, un-check both “use dither” and “allow surround sound” (those E-MU USB interfaces have only two outputs, so stereo is the only “name of the game”); on the “Equalizer” tab, disable the limiter; on the “Replay Gain” tab, disable “Replay Gain”.
- Still in WinAmp preferences, go to “Plug-Ins > Output” and make sure that “Nullsoft DirectSound Output” is selected. (”Nullsoft WaveOut Output” might work, as well, but I don’t know for sure.) Click on “Close” to exit Preferences.
- Go to “Options” > “Equalizer” and make sure “EQ Enabled” does not have a check mark in front of it.
- Exit WinAmp. (Some changes won’t “stick” until you do).
- Launch the E-MU USB Control Panel (Start > Creative Professional > E-MU USB Audio > E-MU USB Audio Application) before relaunching WinAmp. Match the E-MU audio interface’s sample rate to that of your audio file (e.g. 96kHz).
- Relaunch WinAmp.
- Enjoy your tunes.
Does this guarantee bit-accurate playback of your source material? Well, let’s say that your chances are good that that’s the case. It is as close as you can get to it using WDM drivers.
In essence, make sure that:
- the original bit stream leaves your player program unaltered (see WinAmp steps outlined above)
- the audio stream that gets passed on to the Windows mixer is the only audio stream passing through it
- Windows mixer does not have to alter the audio stream in any way (like lowering the volume, adjusting left-right balance)
- the audio interface’s DACs are set to the same sample rate as the source material. (See, the thing is: the Windows mixer “asks” the audio interface what resolution and sample rate it can handle and then upconverts all audio streams with lower bit depths and/or sample rates to that top resolution and sample rate, mixes all audio streams, adjusts volume levels and balance and possibly applies some effects – gasp!)
As you can see, the only way to (hopefully) get your original audio data “unmessed-with” to your audio interface’s DACs is by giving neither the player application nor the Windows mixer anything to do.
On to scenario 2 — using ASIO drivers. What do we potentially gain by using ASIO drivers? Basically, we “take a shortcut” from the output of the player program directly to the audio interface hardware, bypassing Windows’ normal audio sub-system.
WinAmp does not have native ASIO support, but there is a plug-in available for download here. The site is in Japanese, but just click on the “out_asio…” links under the WinAmp heading and grab those downloads. (I’m currently using dll version 0.67. I may try the 0.70 exe version to see if there’s any difference.)
- Once you have the zip file(s) on your computer, extract the .dll file and simply copy it into WinAmp’s plug-in folder. (”C:\Programs\Winamp\Plugins” is the default path.)
- Launch WinAmp, go to “Options > Preferences > Plug-Ins > Output” and select the newly available “ASIO output” option. Click on “Close”, exit and relaunch WinAmp to make the change “stick”.
- Enjoy your tunes.
Keep in mind that everything else remains the same, so enabling 24-bit playback in WinAmp, turning dithering and all kinds of other things off is just as important when using the ASIO driver instead of the WDM driver.
Just for fun, try turning the volume down in WinAmp with the volume slider now. It no longer has any effect, and neither does moving the “”Wave” volume slider in Windows’ mixer. That’s a good sign because it means that the Windows mixing engine gets bypassed. The master volume slider still works, however, which tells me that not everything gets bypassed. That’s why it remains important to keep that slider all the way up and adjust the volume in the analog domain, past DAC.
You get another nice “convenience feature” when using those E-MU USB audio interfaces (Tracker Pre, 0202 USB, and 0404 USB) via ASIO: the driver automatically matches the sample rate of the source material and switches things accordingly. That’s really neat when your “audio reference material” collection contains tracks with different sample rates. No more need to adjust the sample rate manually — just lean back and let the playlist “noodle”…
Your mileage may vary…
I’m getting really great results with my Asus motherboard-based budget computer, running Windows XP SP3, using WinAmp with the afore-mentioned ASIO plug-in to “talk directly” to my E-MU Tracker Pre. I’m either listening to tunes over my active studio monitors (a pair of very “honest” Mackie MR5s), hooked up to the Tracker Pre’s analog outputs, or with my Sennheiser HD 280 Pro headphones directly over the Tracker Pre’s headphone output (which uses the same high-quality DACs as the analog line outputs).
Everything is perfectly stable, and I don’t get any audio drop-outs, clicks, pops, crackles or distortions.
Your “mileage” may, of course, vary. Things may be very different with other audio interfaces and media players. And even if you use one of those fine E-MU USB audio interfaces that give you “audio gourmet quality on a beer budget” in conjunction with WinAmp via the ASIO plug-in and configure it exactly as I outlined above, you may still bump into problems. Maybe you’re using Windows Vista (or Media Center Edition) as your operating system, instead of Windows XP. Maybe the motherboard in your computer is a “notorious troublemaker” and causes annoying audio glitches. Maybe some other programs or Windows services are running in the background on your machine, disrupting the audio data stream.
If you must know…
If you want to dig deeper, you may want to check out Microsoft’s “techno babble” about the Windows audio sub-system and Windows’ “KMixer” program by looking here and here. (Thanks to Bruce for providing me with those links… frankly… it was more than I ever wanted to know about that “stuff”… :)) ).
I’m also putting the finishing touches on another guide explaining how to optimize a Windows PC for glitch-free audio playback. It’s called: “Help! I got a case of the Crapples!”
And that’s just the beginning… keep an eye on daw.kickassproject.com for more irreverent goofing and the occasional nugget of useful information…
And if you want to learn even more, check out www.productionforums.com — it’s a really nice crowd there, very friendly, helpful and knowledgeable people. Oh, and I’m the resident goofball there…
_________
Document Version 0.2 · Copyright © 2009 by David “TwoRocks” SunDancer · Released under a Creative Commons Attribution-Noncommercial-No Derivative License (What does that mean, dude? Speak English!) · You can always find the latest version of this guide right here. and I welcome your feedback!