[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: sound cards, bit depth and the Windows mixer

Windows provides support for hardware mixing and processing if the hardware
supports it and the hardware's driver software exposes the features to the
operating system.  Microsoft calls this the "kernel streaming" audio model.

Windows also provides software emulation of many audio processing
requirements, including sample rate conversion, bit-depth conversion, and
channel downmixing. This is the "kernel mixer" system (kmixer.sys). KMixer
can virtualize the available hardware resources so that a Windows software
application will work regardless of the exact features of the sound
hardware.  Ideally Windows will utilize the available hardware features
first and only go to software emulation if the requested feature is not
available in hardware.

This is good for end-users who simply want to hear sound when requested, but
it makes it more complicated if you want to guarantee that only your sound
hardware is doing audio processing.  The virtualization also creates issues
with the need for software audio buffering and the delay (latency) that goes
with them.  I have encountered issues primarily if the audio streams being
processed are of differing channels, bits per sample, and/or sample rate,
since kmixer can be called upon to pre-mix the various streams.  If kmixer
performs software sample rate conversion the quality may not be as good as
predicted by the hardware sample rate conversion specs, for example.

The best bet is to check with your hardware vendor to ensure that the
drivers are up to date and that the audio properties control panel
(performance tab) is set for "full hardware acceleration" and the mixer
sliders are set properly.  NOTE that there are often hardware differences in
the amount of attenuation applied for a specific slider setting:  different
hardware have different gain resolution.

You can do a search for "Streaming Audio Devices" at www.microsoft.com to
see the full background.

Rob Maher

> -----Original Message-----
> From: AUDITORY Research in Auditory Perception
> [mailto:AUDITORY@xxxxxxxxxxxxxxx] On Behalf Of John Culling
> Sent: Thursday, April 21, 2005 3:39 AM
> To: AUDITORY@xxxxxxxxxxxxxxx
> Subject: sound cards, bit depth and the Windows mixer
> Dear list,
> Does anyone know how the Windows "Volume Control" mixer
> is implemented. Possibly it is soundcard and driver dependent.
> My reason for asking...
> We were recently doing some basic tests on new soundcards
> (Edirol UA20 USB card, Echo Mia PCI card). Both are nominally
> 24-bit. We wanted to verify the dynamic range to at least 16
> bits, so we prepared 16-bit sound files with 1-kHz pure tones
> of various bit depths. The ultimate test was a 1 bit (dithered)
> signal. We viewed the ouput on a 'scope. Both cards passed
> with flying colours - the 1-bit signal was clearly visible, with
> little noise apparent - other than the 1-bit dither we added).
> Then we wondered whether full bit depth was only achieved
> if the system volume was on full (i.e. does turning down the
> volume lose bits). Intsallng the Echo Mia "pure wave" driver
> forced the system volume to full, but for the Edirol it was still
> adjustable. So we played our 1-bit signal and turned down
> the volume. The image on the 'scope scaled down nicely, but
> was eventually overcome by noise. So, no bit depth was being
> lost for this signal, but of course the soundcard has 24 bits,
> so the other 8 could be used for implementing digital volume
> control and mixing. If so, presumably a 16-bit card would not
> have behaved in this way. Is that the case?
> I can think of one alternative, but I think it unlikely. Could
> the card have several DACs for converting the different sources
> in the mixer (wav, CD, system sounds etc.) and an analogue
> mixer under control of the computer. This seems relatively
> complex and less satifying as an engineering solution, because
> it's generally better to minimise analogue circuitry. Maybe some
> soundcards do it though. Does anyone know?
> John.
> Dr. John F. Culling (Senior Lecturer)
> School of Psychology,
> Cardiff University.
> Tower Building, Park Place,
> Cardiff
> CF10 3AT
> Tel. +44 29 208 74523
> FAX +44 29 208 74858
> www.cf.ac.uk/psych/home/cullingj1/