Explicit feedback for asynchronous audio with usbaudio2.sys

Robrecht Bisschop 1 Reputation point
2021-07-12T13:41:15.367+00:00

We are developing an 8-channel, 48K UAC2.0 compliant USB audio interface. We are using the clock of the interface for the 48kHz samplerate. To prevent any buffer over/under flow due to mismatch between device clock and PC clock, we are using a feedback endpoint to request a higher or lower data rate from the PC as described by the USB sepecification.

This is all working great on Linux and OSX. But on Windows this does not seem to work. It just seems to ignore the requested data rate from the feedback endpoint, and always sends the same amount of data in each usb audio packet.

According to this article
https://learn.microsoft.com/en-us/windows-hardware/drivers/audio/usb-2-0-audio-drivers
it should be supported. But it does not seem to be the case.

Anyone any idea what might be the issue?

Thanks.

Windows Hardware Performance
Windows Hardware Performance
Windows: A family of Microsoft operating systems that run across personal computers, tablets, laptops, phones, internet of things devices, self-contained mixed reality headsets, large collaboration screens, and other devices.Hardware Performance: Delivering / providing hardware or hardware systems or adjusting / adapting hardware or hardware systems.
1,553 questions
0 comments No comments
{count} votes

3 answers

Sort by: Most helpful
  1. JFreyberger 1 Reputation point
    2021-09-22T13:32:17.717+00:00

    Hi Robrecht,

    did you meanwhile get the feedback endpoint to work? I'm currently trying to turn a Raspberry PI into an UAC2 audio device but usbaudio2.sys seems to reject the standard USB device description. Well it doesn't completrely reject it, so the device is listed in the device manager but it doesn't create any audio endpoints and when I follow this link https://matthewvaneerde.wordpress.com/2017/10/23/how-to-gather-and-read-logs-for-microsofts-usb-audio-2-0-class-driver/ I detected that the pin creation fails. Now I'd be interested in your (or any working) USB device description as shown in a tool like https://www.uwe-sieber.de/usbtreeview.html . Do you think that's possible?

    Thanks and best regards,
    Johannes

    0 comments No comments

  2. JFreyberger 1 Reputation point
    2021-09-30T10:19:47.05+00:00

    Hi Robrecht,

    my general UAC2 problems seem to be solved and now I also did some tests on the feedback endpoint. But just as you I can see no effect of the value given in the feedback endpoint and windows always sends the same size of data packet. Did you succeed in solving this. Could this be perhaps related to the feedback and data endpoint interval? At the moment I'm trying an interval of 4 for both on a highspeed connection which should result in an interval of 1 millisec. Did you also check other values like 1 for 0.125 millisec or 6 for 4 millisecs?

    Thanks and best regards,
    Johannes

    0 comments No comments

  3. JFreyberger 1 Reputation point
    2021-09-30T12:58:19.213+00:00

    Hi again,

    I don't know, if you still work on this - for me the feedback endpoint started working in W10 after I changed the interval to 1 (=> 0.125 millisec for a highspeed USB connection)

    Best, Johannes

    0 comments No comments