Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

usb audio class device not cross platform #20

Open
raveslave opened this issue Oct 30, 2023 · 3 comments
Open

usb audio class device not cross platform #20

raveslave opened this issue Oct 30, 2023 · 3 comments

Comments

@raveslave
Copy link

In the examples, I noted this define: USB_DEVICE_WORKAROUND_AUDIO_20_WINDOWS, confirmed that you can either get it to run on windows, or mac, but not both...

Since an audio class device is expected to run on both macOS, Linux and Windows, any plans to fix this "compile time workaround"? Would be great if the official NXP UAC2 device driver could get a little update to work cross-platform.

@AidenHu
Copy link

AidenHu commented Oct 31, 2023

The workaround is to fix the issue that Windows OS (like Windows 10) does not comply with the USB Audio 2.0 spec. Although we still not get the official confirm about this finding from MSFT, but we provide a solution related to the macro USB_DEVICE_WORKAROUND_AUDIO_20_WINDOWS. This macro is disabled by default. User need to enable this macro manually if the environment meet the 3 conditions:
1. device is full speed running audio 2.0
2. usb host is Windows OS that supports USB audio 2.0, like Win 10
3. use feedback endpoint

We can make sure that our case can work on the OS that totally comply with USB audio spec no matter audio 1.0 or audio 2.0, but we can not meet not meet the requirement for cross-platform working based on the wrong behavior of Windows OS itself, sorry about this.

@raveslave
Copy link
Author

raveslave commented Nov 2, 2023

thanks for reply, we're aware of audio-class is broken on windows resulting in most sound-card vendors choose to provide their own drivers as a workaround... wish we could have Microsoft jump in an resolve this once and for all including driverless multi-channel support.

so it is possible to run stereo in & out on both macOS and Windows10/11 driverless as long as we make use of the high-speed phy, correct!?

I will have to try again on the LPC55 ev-kit as I'm not sure if I tested using the FS or HS phy

  • what would be the most recent / mature example project that we can test?
  • is there an example that uses HS that also supports hubs?
  • do you happen to have a test-protocol of what platforms and OS'es this implementation has been verified against?

@AidenHu
Copy link

AidenHu commented Nov 14, 2023

Yes, if you use USB HS then you can ignore this issue on Windows 10/11.
For your last 3 questions:

  1. You can use the recently released 2.15.0 SDK from https://mcuxpresso.nxp.com
  2. If you use LPCxpresso55s69 and LPCxpresso55s16, you can use the HS port except for the FS port. About hub, I am not sure what your purpose is, so sorry that I can not give more comments.
  3. Previously I tested the usb_hid_audio_unified case on Linux/Mac OS/Windows, actually the aim is not only for the test-protocol.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants