[wdmaudiodev] Re: WASAPI exclusive mode audio render issue

  • From: "Vincent Burel \(VB-Audio\)" <vincent.burel@xxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 16 Sep 2015 09:21:17 +0200

Hello,

The funny point is that in 2015 (more than 10 years after Windows VISTA)
there is always no standard, strict and reliable call sequence to use
WASAPI, and I can say that because I've tried all examples provided by
Microsoft some years ago, all are not reliable... This reality cost me one
year of validation with Voicemeeter...

I did not analysis precisely your call sequence, but generally speaking I
can say that in share mode you are basically talking to kmixer (which
accepts most audio format) while in exclusive mode you are talking to audio
device more directly. The main difference is in the format negotiation...
also I'm not sure your audio loop can work in exclusive mode, do you get a
first Event ?

Regards
Vincent Burel
www.vb-audio.com
www.mt128.com
www.vb-cable.com
www.voicemeeter.com
https://www.facebook.com/vbaudiosoftware
https://plus.google.com/110557338955940627490
https://twitter.com/VB_Audio

-----Message d'origine-----
De : wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] De la part de Jerry Evans
Envoyé : mardi 15 septembre 2015 20:49
À : wdmaudiodev@xxxxxxxxxxxxx
Objet : [wdmaudiodev] Re: WASAPI exclusive mode audio render issue

Hi Matthew (and indeed anyone else interested),

Attached is the most minimal example I could muster.

Just compile with VS2013/2015. It is completely self-contained. When run it
spins up a single rendering thread that opens the default render client
@44K1/16/stereo. it'll then generate a stereo 440Hz sine tone. That's it.
The proverbial 'hit any key' should clean up and exit.

2 varieties of problem to demonstrate here:

'Ex-wasapi.exe p' shows the effect of calling GetPadding() before
GetBuffer()

i.e. this glitches on a USB device. On the test HDA it simply emits silence
with no apparent errors.

'Ex-wasapi.exe m' fails on HDA as AudioClient->Initialize tries to use the
minimum from GetDevicePeriod().

I have not scoped the HDA output using the default intervals but the tone
sounds OK on rubbish internal laptop speakers.

Hope you get similar failures at your end :)

Jerry.

P.S. My guess is you may not have a M-Audio Delta card so that experiment is
off the table.

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

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:
http://www.wdmaudiodev.com/

Other related posts: