Friday, March 13, 2009

An ASIO Journey on Windows XP x64 Bit

I've started a new journey with Audio on Windows since finding NAudio, which has support for ASIO. It's become an even more interesting journey due to my decision to use Windows Professional XP x64 (The 64 bit edition); why exactly I use this has become a bit lost on me. I originally had grandiose plans of buying a gob load of memory but this only turned out to be 4 gig, of which more than 3 gig could be address by a 32 bit version (x86) of Windows any way - perhaps there was no greater reason, than because I could. Regardless of this I always seem to find myself in a slight predicament, many applications and hardware drivers still aren't x64 compatible.

See this ASIO love affair of mine, all boils down to the promise of low latency Audio mixing and manipulation, which for OpenSebJ is the Mecca of Audio Development - because none of the audio steamed to the sound card is buffered in advance, so any latency that exists is immediately obvious to the user. My PC has an inbuilt sound card, which has been more than sufficient for my Audio needs - however I got the idea that having a sound card with ASIO drivers included out of the box must be better, or at the very least a low latency Sound Card. Since all I have at the moment is on-board sound (Realtek High Definition Audio), I suspected a dusty old Sound Blaster Live! could produce better results.

Finding 64 Bit drivers, for Windows XP Professional x64 was remarkably easy, a simple matter of looking up Creative's website and navigating to the end-of-life products and downloading a provided driver. After installing I went to test out if the driver included ASIO and firing up the NAudio demo application I could select a Creative ASIO device, all looked good until I went to play the sample and was presented with this lovely error message.

Ahh, reassuring isn't it. They went to the hassle of adding an entry for the ASIO API to find but instead of supporting it, a box is popped to let you know how lucky you are to have purchased a Creative product with future support *uhum*. Well not to be too easily swayed, I went looking for alternatives and stumbled across The kX Project which is a third party WDM audio driver for EMU10K1 and EMU10K2-based sound cards (SoundBlaster Live! and SoundBlaster Audigy 1/2/4 cards) and yes, it supports ASIO. Amazing, however as you can probably guess form my surprise, no 64 bit versions of Windows are supported.

So back to where I was, except with another Sound Card in my system, not to be too dismayed I thought I would give ASIO4ALL a shot with the Creative Sound Blaster Live! and see how much 'better' it performs over the on-board sound. I currently use ASIO4ALL with the Realtek High Definition Audio on a Gigabyte mother board and the Audio Quality is good, with very few pop's and click's at a sample latency at 480 samples.

Here are some example audio files, they are all of a single Piano key but as you can hear the Sound Blaster example is dramatically different when using the ASIO driver. Much louder than the others but no volume setting was changed between the recording of the WaveOut version and the ASIO instance. Compared to the Realtek, which in my opinion, is much more consistent:

Realtek WaveOut, Latency 100ms
Realtek ASIO, Latency 480 Samples
Sound Blaster Live! WaveOut, Latency 100ms
Sound Blaster Live! ASIO, Latency 480 Samples

Although not the result I was looking for, which was optimistic at best, I haven't removed the old Sound Blaster yet. But since this hasn't lead me to my goal, I have since started doing some research for Sound Cards in the $50-$200 AUS range. This is budget central and I'm comfortable with that.

I've found a few cards that fit in this sort of price point, the general consumer range:

Behringer : External USB - UCA222
According to the documentation in the driver download on their site, the ASIO drivers are only for a 32 bit version of windows; they actually suggest downloading ASIO4ALL for 64 bit versions of Windows. Shame, looks good otherwise at an attractive price point.
AUS Stores: - $ 70.00 - $79.00

Lexicon: External USB - Recording Interface Alpha
Product documentation and information looks great but I haven't been able to see any mention of Windows Professional x64 - leaves me doubting it supports it but I will send a request to find out.
AUS Stores: - $ 210.00 - $269.00

E-MU's 0202 USB 2.0 Audio Interface
The E-MU is the only one in this price range which I have seen that explicitly states it supports Windows Professional x64. Warrants more investigation.
AUS Stores: - $259.00 - $188.81 - $219

Needless to say some more investigation of these products is required. I found that there are a lot more DJ Stores selling this sort of equipment in Australia than I originally thought; wish there were some better resources to find out all about them.

Also in my searching I did come across another generic ASIO driver ASIO2KS - it didn't work for me and proved a bit of an issue to fully remove but it may work for you. It had an issue with NAudio, trying to match the sample rate - some where between the two of them they couldn't agree and the end result was not good on this system.

I'll keep looking at what the best solution for me may be but in the mean time this MIDI keyboard caught my eye - may be the one to convert me and may be the first MIDI keyboard I own. More research required ;-)

Behringer U-CONTROL UMX25 Midi Keyboard
Looks like it packs a bang for the buck. Not sure about x64 support but at this price I may be convinced to run Windows XP 32 bit edition again.
AUS Stores: - $ 155.00 - $199.00


Anonymous said...

just in case you still care, the kX project has released an x64 alpha driver. works fine so far.

Laserbeak43 said...

Hi, Great tutorials. I was wondering if you would do an Audio driver chooser tutorial.