|
Audio Asylum Thread Printer Get a view of an entire thread on one page |
For Sale Ads |
66.234.193.96
In Reply to: RE: Ping Old Listener -- J.River Setup Question posted by Charles Hansen on April 19, 2009 at 19:22:24
> In J.River under "Tools - Options - Playback - Audio", there
> are several choices available.
> Under "Output Mode" I have:
> - Wave Out
This interface goes back to the early 90s and 16 bit Windows 3.x. It is functional for audio output. I've used it. It isn't low latency so it isn't great for recording. It doesn't have the features needed for good video game support either. You may also see this interface described as MME for Multi-media Extensions.
> - Direct Sound
So Microsoft developed DirectSound as part of the DirectX package for better game I/O. It wasn't much different than Wave Out for audio output.
Both these interfaces send audio through the entire Microsoft audio stack including the KMixer component that gets reviled by audiophiles. J. River's advice is to try one of these interfaces and if it doesn't work, try the other. That is a reasonable approach.
> - ASIO
If you wanted to use a Windows PC to record music, you needed a better interface. So Steinberg developed a driver interface ASIO and wrote ASIO output modules for their pro-audio products. Companies making Pro-Audio I/O PCI boards implemented ASIO drivers. The drivers had to be installed under Windows but they didn't use Microsoft's audio stack. The result was a short controlled path from the application program to the audio output hardware. It was possible to achieve low latency which allows you to do more recording work using PC s/w for more things. Low latency isn't necessary for audio output unless you want to synchronize multiple channels closely or synchronize audio with video.
Since an ASIO driver doesn't send audio through the Windows audio stack, you can avoid KMixer. For some audiophiles, avoiding KMixer made ASIO interesting for audio output. More recently, cics has advocated using ASIO with very minimal buffering (and low latency) as producing better sound than you get with more buffering.
Another reason to use ASIO is purely practical. Companies selling Pro-Audio PCI boards needed a functioning, low-latency driver to sell their hardware. In contrast, until recently two channel audio input and output were not high on Microsoft's priorities. It takes time, money and skill to develop driver software and time to get applications and drivers to work together seemlessly. ASIO is mature. That's good. Mature hardware is good too.
If your hardware comes with a good ASIO driver, try to use it.
> - Disk Writer
As the name says, what you play goes to a wav file on your hard drive.
If you run J. River MC under Vista, you should see another choice: WASAPI exclusive mode. Although Vista has been out for some time, adoption of this interface has been slow. Don't be surprised by glitches and incompatibilities. While the audio path is shorter for WASAPI exclusive mode than for regular WASAPI mode, it still involves some user mode code. ASIO may be a safer choice under Vista for a but longer.
My recommendations are my own based on experience working on drivers and inside operating systems. My conclusions are from that experience. You can use them or not.
--- Some extra info to fill out the whole picture.
I haven't said anything about the application side of the interface. J.River MC 13 comes with support for all these output choices. Some other players need a plug-in module from a 3rd party for ASIO or WASAPI exclusive mode output.
Most USB devices being sold now rely on USB audio drivers written by Microsoft. So you don't get an ASIO driver with your USB device. In the XP environment, some people installed ASIO4ALL which looks like an ASIO driver but sends output to a low level interface (kernel streaming) rather than to the audio hardware like a real ASIO driver. There are two practical reasons why this is less desirable than an actual ASIO driver: The ASIO4All module hasn't been tested with most audio devices that it will be used with. And the kernel streaming interface is far less tested as an entry point for the audio stream than Wave Out, DirectSound or ASIO. If you need to use ASIO4ALL, give it a try. If you don't need to use it, don't.
In general, the fewer 3rd party modules or plug-ins you need to use, the better your chances of trouble-free operation.
Ask more questions if I left some things unsaid.
Bill
Follow Ups:
So just to make sure I am following you correctly:
a) Both Wave Out and Direct Sound go through the KMixer.
b) This is not necessarily a bad thing assuming that you have turned off all your system sounds and keep the volume controls all at 100%.
c) ASIO4ALL is not "true" ASIO driver that bypasses the full Windows audio stack. However, it seems that it does bypass the KMixer by re-inserting the audio further up the stack with a technique called "kernel streaming" that may or may not work well, depending on the hardware and software being used.
Or am I just confusing myself (again)?
> a) Both Wave Out and Direct Sound go through the KMixer.
Yes.
> b) This is not necessarily a bad thing assuming that you have turned off
> all your system sounds and keep the volume controls all at 100%.
Maybe. There are some complications here. For Wave Out and Direct Sound, more than one source can send audio to a device at the same time. Hence the need for a mixer. Those audio streams may have different sample rates and different sample sizes. So now the mixer needs to do sample rate conversion too. Which sample rate does the mixer choose? The Source 1 rate or the source 2 rate or a different rate that makes the math quicker or higher quality?
If the audio device is designated as the default audio output device, then Windows will send systems sounds to this device. So the mixer might be mixing a 44.1 KHz 16 bit stereo stream with a 8 KHz 8 bit mono stream.
I turn off my system sounds but Windows Explorer still makes funny sounds when I search for files. Some web pages send sounds to the default device too. One simple solution is to leave on-board sound as the default device while you use another device for music playback.
Now suppose the mixer temporarily changed the sample rate to accommodate a second stream. When that stream stops, does it put the sample rate back on the fly or wait until there is no output? It is quite beyond an application program's control. You might get bit-perfect output today and not tomorrow.
You often see a comment that Windows should not have the mixer in the audio path unless it needed. However, that need might arise during playback of a stream. Plugging in the mixer while you are playing audio is a recipe for glitches and greater complexity.
You also see remarks about how terrible KMixer is. It may have been a good good compromise for the applications that mattered to Microsoft when they developed it. Vista's mixer may use higher precision arithmetic and better algorithms but it is probably at least as complex as the Win XP mixer.
I haven't even talked about distributing a 2 channel stream to a 5.1 output device or going the other way.
Here is the real point: Windows has a mixer function because of the complexity of the general audio output function. Most of the complexities are not necessary for two channel output. High quality two channel audio is best served by a short, simple, exclusive path to the audio output hardware. ASIO and WASAPI exclusive mode provide that sort of path. Think of the Windows audio stack as the Gordian knot and ASIO as the sword.
Statement b) expressed an assumption on your part that went beyond what I said. It gets into complexities I didn't need to bring up to answer your original question. Now you have a sampling of those complexities.
> with a technique called "kernel streaming" that may or may
> not work well, depending on the hardware and software being used.
You went a bit farther than my remarks I think. Here are two guiding principles I reply on for survival in the computer world: 1) Don't assume that anything works until it is adequately tested. Direct use of kernel streaming is much less tested than Wave Out, Direct Sound or ASIO. In particular, ASIO4All has probably not been tested with all combinations of player software and audio devices. 2) Stay on the beaten path unless you understand why you are departing form it. Kernel streaming is off the beaten path compared to the interfaces you asked about.
Disclaimer: This kernel streaming topic is a question of judgement on my part from my working experience. That's different from reciting facts.
Bill
Post a Followup:
FAQ |
Post a Message! |
Forgot Password? |
|
||||||||||||||
|
This post is made possible by the generous support of people like you and our sponsors: