[wdmaudiodev] FW: Is a WDM kernel streaming driver right for our application?

  • From: "Jerry J. Trantow" <Jerry.Trantow@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 29 Aug 2002 14:49:23 -0500




-----Original Message-----
From: Jerry J. Trantow
[mailto:Jerry.Trantow@xxxxxxxxxxxxxxxxxxxxxxxxxxx] 
Sent: Thursday, August 29, 2002 2:28 PM
To: 'wdmaudiodev@xxxxxxxxxxxxx'
Subject: FW: [wdmaudiodev] Is a WDM kernel streaming driver right for
our application?



-----Original Message-----
From: Jerry J. Trantow [mailto:jtrantow@xxxxxxxx] 
Sent: Thursday, August 29, 2002 1:45 PM
To: 'wdmaudiodev@xxxxxxxxxxxxx'
Subject: RE: [wdmaudiodev] Is a WDM kernel streaming driver right for
our application?

Are you designing the USB hardware?

If not, beware that any USB audio hardware with the Philips UDA1325
(Roland UA-30 and lots of others) will have occasional 1 msec glitches.

If you are designing hardware, set up a simple test which plays and
records audio data.  The test should be able to detect any glitches over
a long period of time (hours).  I wrote a small test that plays sine
waves and compares the output of an adaptive filter to the record
stream.  It easily detects the 1 msec glitches generated by the Philips
part.  If the hardware you target can not pass this test, do yourself a
favor and change hardware.

I did a few projects all based on the Philips UDA1325 which were
extremely frustrating based on chip defects and zero support from
Philips.  We chose early on to depend on the Windows drivers and add the
extra features we needed with an upper and lower filter driver on
usbaudio.sys.  At the time, I thought this was the best long term
solution.  It turned out we needed lower latency than can be achieved 

If your system is going to be used by multiple applications, beware of
limitations with usb audio unless WAVEFORMAT_EXTENSIBLE is used.  This
message board is definitely the best place to make contact with other
developers and MicroSoft engineers.  (Thanks to all for your help!)

Also note that XP is the only Win OS where the audio drivers use 24 bits
of resolution for playback. (I have not checked Win2000 SP3.)  Don't
trust any documentation without verifying the actual data and commands
going to/from the audio device.  There have been lots of USB audio
problems caused by the OS drivers doing a poor job matching the
waveformat to a usb interface and then doing a sample rate conversion.
It's nice to work with SPDIF where you can use test patterns and not
have to worry about filter effects.

You should have a clear idea of the latency requirements.  It's quite
possible to get down to a few msec with ASIO drivers.

Leave lots of project time for installation issues.  There are a huge
number of OS dependencies in the driver installation schemes.  If you
can get it past your marketing, don't bother supporting Win9x.  There
are so many support/install issues with Win98SE and WinMe you are much
better off not even supporting them.  

-----Original Message-----
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Sauerwein, Tim
Sent: Thursday, August 29, 2002 12:06 PM
To: 'wdmaudiodev@xxxxxxxxxxxxx'
Subject: [wdmaudiodev] Is a WDM kernel streaming driver right for our
application?


Hello Friends,

My company is considering a project that uses an MS Windows PC for
real-time signal processing of an audio stream.  The input arrives over
USB,
and the output also leaves over USB.  We can tolerate some latency, but
we 
must keep a steady output rate and never miss a sample.

We think of using a real-time extension to Windows, and building a 
real-time system that is designed to meet its deadlines always.  But we
also wonder if a WDM kernel streaming driver might work just as well.

So I am delighted to have come across the community of experts in
WDMAUDIODEV, and I seek your advice.  In particular:

(1) What things can cause Windows to switch away from a kernel
streaming driver for long enough to make it miss a sample?  How likely
are such things to occur in practice?

(2) What is the practical limit to how much of the CPU the streaming
driver can consume, and still have confidence that the driver will not
miss samples?

(3) How much will our customers have to tune their PCs to make our 
solution work right?  (We think of establishing minimum requirements for
the PC.)

(4) We are competent real-time programmers, but new to streaming
drivers.  Will there be lots of subtle issues that we might not expect?

Thanks in advance for any help.

- Tim

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:
mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
//www.freelists.org/cgi-bin/webpage?webpage_id=wdmaudiodev

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
//www.freelists.org/cgi-bin/webpage?webpage_id=wdmaudiodev

Other related posts:

  • » [wdmaudiodev] FW: Is a WDM kernel streaming driver right for our application?