Audio over usb

Hi All,

I have developed an audio minidriver based on the MSVAD framework to route
audio data over a proprietary USB driver. The virtual audio driver uses
the
port class driver interface. The USB driver transmits audio through the
USB
device to a remote Headset wirelessly (over Bluetooth). As per the USB
driver requirements, it expects the audio to be pumped at 480bytes every
30ms. Audio driver exposes the audio capabilities as 16bit PCM with 8000
samples and as per the settings, audio driver is supposed to receive
160bytes every 10ms from the audio subsystem. So, this ideally matches the
USB requirements. However, I observed that the data flow is not smooth and
there are breaks heard in the song heard on the headset. This shows that
the rate requirements are not met. I also observed that the data received
from the sub-system is not always 160. It sometimes varies between 32-128.

I tried an experiment where I transmitted an audio file directly over the
USB driver satisfying the rate requirements. This works perfectly. The
quality of audio is good. I am facing the quality problem only when the
song is played over the virtual audio driver. Platform I am using is
Win2k.

Could anyone suggest how to circumvent this problem?

Thanks & Regards
Divya

Divya wrote:

I have developed an audio minidriver based on the MSVAD framework to route
audio data over a proprietary USB driver. The virtual audio driver uses
the
port class driver interface. The USB driver transmits audio through the
USB
device to a remote Headset wirelessly (over Bluetooth). As per the USB
driver requirements, it expects the audio to be pumped at 480bytes every
30ms. Audio driver exposes the audio capabilities as 16bit PCM with 8000
samples and as per the settings, audio driver is supposed to receive
160bytes every 10ms from the audio subsystem. So, this ideally matches the
USB requirements. However, I observed that the data flow is not smooth and
there are breaks heard in the song heard on the headset. This shows that
the rate requirements are not met. I also observed that the data received
from the sub-system is not always 160. It sometimes varies between 32-128.

I tried an experiment where I transmitted an audio file directly over the
USB driver satisfying the rate requirements. This works perfectly. The
quality of audio is good. I am facing the quality problem only when the
song is played over the virtual audio driver. Platform I am using is
Win2k.

You might get more complete advice by joining the WDMAUDIODEV newsgroup
hosted at freelists.org. My guess is that you need to be checking the
timestamps on the frames you’re getting and originating a quality
message when you see that data is falling behind.


Walter Oney, Consulting and Training
Basic and Advanced Driver Programming Seminars
Now teaming with John Hyde for USB Device Engineering Seminars
Check out our schedule at http://www.oneysoft.com

Thanks for the suggestion… Will check it out.

You might get more complete advice by joining the WDMAUDIODEV newsgroup
hosted at freelists.org. My guess is that you need to be checking the
timestamps on the frames you’re getting and originating a quality
message when you see that data is falling behind.


Walter Oney, Consulting and Training
Basic and Advanced Driver Programming Seminars
Now teaming with John Hyde for USB Device Engineering Seminars
Check out our schedule at http://www.oneysoft.com