Hi,
I'm currently trying to use the XK_AUDIO-316-MC board as a 7.1 sound card, but I'm encountering difficulties getting it to function properly under Windows.
I'm working with the sw_usb_audio_sw_v8_1_0 firmware provided by XMOS, configured with the 2SSi8o8xxxxxx option (outputs only, no SPDIF). My goal is to use the board with the native Windows 11 UAC2.0 driver, without the Thesycon driver.
Here's the issue: In the Windows sound configuration, the speaker list doesn't appear: However, when I click on the test buttons, I can hear all the test tones coming from the correct channels.
After some investigation, I looked into the USB descriptors and noticed that the bmChannelConfig field is set to 0. From my understanding, for the board to be recognized as a 7.1 sound card, this field should be set to 0x0000063F (FL, FR, FC, LFE, BL, BR, SL, SR).
When I change bmChannelConfig to this value, I can see the channel configuration in the Windows sound settings, but the test tones no longer play:
Has anyone successfully managed to get this software working in that configuration? If so, could you please share which version of the software you used and any specific compile options? I don’t mind if it’s an old or outdated version; I just need to get it working.
Any advice would be greatly appreciated!
trouble with sw_usb_audio-_sw_v8_1_0 on XK_AUDIO-316-MC
-
- New User
- Posts: 2
- Joined: Sat Oct 19, 2024 11:40 pm
trouble with sw_usb_audio-_sw_v8_1_0 on XK_AUDIO-316-MC
You do not have the required permissions to view the files attached to this post.
-
- XCore Addict
- Posts: 150
- Joined: Sun Feb 23, 2014 11:30 am
Hi.
Did you try to use it not with internal Win11 driver, even demo?
Did you try to use it not with internal Win11 driver, even demo?
-
Verified
- XCore Legend
- Posts: 1158
- Joined: Thu Dec 10, 2009 9:20 pm
- Location: Bristol, UK
Try clearing out your Windows driver cache when you make changes to a devices descriptors, this is a good tool: https://www.nirsoft.net/utils/usb_devices_view.html
Technical Director @ XMOS. Opinions expressed are my own
-
Verified
- XCore Legend
- Posts: 1158
- Joined: Thu Dec 10, 2009 9:20 pm
- Location: Bristol, UK
Mod edit: moved to USB audio
Technical Director @ XMOS. Opinions expressed are my own
-
- New User
- Posts: 2
- Joined: Sat Oct 19, 2024 11:40 pm
Hi,
Thanks for the tip,
I tried the tool you provided and uninstalled all related usb devices.
The problem remains.
With the thesycon demo driver, no problem at all.
It is less urgent, since we decided not to use the windows interface to configure our product.
We are going to use a CDC interface instead.
Anyway, I am still curious if you have any other clues.
Here are the descriptors, I suspect " Warning: Junk at end of descriptor (17 bytes):
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 " to be the problem.
Looking at file "lib_xua/src/core/endpoint0/xua_ep0_descriptors.h", I got the impression that configDesc_MixerUnit is left uninitialized ...
Thanks for the tip,
I tried the tool you provided and uninstalled all related usb devices.
The problem remains.
With the thesycon demo driver, no problem at all.
It is less urgent, since we decided not to use the windows interface to configure our product.
We are going to use a CDC interface instead.
Anyway, I am still curious if you have any other clues.
Here are the descriptors, I suspect " Warning: Junk at end of descriptor (17 bytes):
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 " to be the problem.
Looking at file "lib_xua/src/core/endpoint0/xua_ep0_descriptors.h", I got the impression that configDesc_MixerUnit is left uninitialized ...
[pre][pre][pre]Bus 001 Device 016: ID 20b1:001b XMOS Ltd XMOS xCORE.ai MC (UAC2.0) Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 2 bDeviceProtocol 1 bMaxPacketSize0 64 idVendor 0x20b1 XMOS Ltd idProduct 0x001b bcdDevice 8.10 iManufacturer 1 XMOS iProduct 3 XMOS xCORE.ai MC (UAC2.0) iSerial 2 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x01eb bNumInterfaces 5 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 3 bFunctionClass 1 Audio bFunctionSubClass 0 bFunctionProtocol 32 iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 32 iInterface 3 XMOS xCORE.ai MC (UAC2.0) AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 2.00 bCategory 8 wTotalLength 0x00f8 bmControls 0x00 AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 10 (CLOCK_SOURCE) bClockID 41 bmAttributes 3 Internal programmable clock bmControls 0x07 Clock Frequency Control (read/write) Clock Validity Control (read-only) bAssocTerminal 0 iClockSource 9 XMOS Internal Clock AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 11 (CLOCK_SELECTOR) bClockID 40 bNrInPins 1 baCSourceID(0) 41 bmControls 0x03 Clock Selector Control (read/write) iClockSelector 8 XMOS Clock Selector AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 2 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bCSourceID 40 bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x0000 iTerminal 6 XMOS xCORE.ai MC (UAC2.0) AudioControl Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 51 wExtensionCode 0x0000 bNrInPins 1 baSourceID(0) 2 bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x03 Enable Control (read/write) iExtension 0 AudioControl Interface Descriptor: bLength 42 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 10 bSourceID 51 bmaControls(0) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(1) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(2) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(3) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(4) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(5) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(6) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(7) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(8) 0x0000000f Mute Control (read/write) Volume Control (read/write) iFeature 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 20 wTerminalType 0x0301 Speaker bAssocTerminal 0 bSourceID 10 bCSourceID 40 bmControls 0x0000 iTerminal 0 AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0201 Microphone bAssocTerminal 0 bCSourceID 40 bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x0000 iTerminal 0 AudioControl Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 52 wExtensionCode 0x0000 bNrInPins 1 baSourceID(0) 1 bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x03 Enable Control (read/write) iExtension 0 AudioControl Interface Descriptor: bLength 42 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 11 bSourceID 52 bmaControls(0) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(1) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(2) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(3) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(4) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(5) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(6) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(7) 0x0000000f Mute Control (read/write) Volume Control (read/write) bmaControls(8) 0x0000000f Mute Control (read/write) Volume Control (read/write) iFeature 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 22 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bSourceID 11 bCSourceID 40 bmControls 0x0000 iTerminal 7 XMOS xCORE.ai MC (UAC2.0) AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) bUnitID 50 wExtensionCode 0x0000 bNrInPins 2 baSourceID(0) 2 baSourceID(1) 1 bNrChannels 18 bmChannelConfig 0x00000000 iChannelNames 0 bmControls 0x03 Enable Control (read/write) iExtension 0 AudioControl Interface Descriptor: bLength 32 bDescriptorType 36 bDescriptorSubtype 4 (MIXER_UNIT) bUnitID 60 bNrInPins 1 baSourceID(0) 50 bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 0 bmMixerControls(0) 0xff bmControls 0xff Cluster Control (read/write) Underflow Control (read/write) Overflow Control (read/write) iMixer 255 (error) Warning: Junk at end of descriptor (17 bytes): ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 XMOS xCORE.ai MC (UAC2.0) Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 XMOS xCORE.ai MC (UAC2.0) AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 0 AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 4 bBitResolution 24 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 13 Transfer Type Isochronous Synch Type Synchronous Usage Type Data wMaxPacketSize 0x00e0 1x 224 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 XMOS xCORE.ai MC (UAC2.0) AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 0 AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 2 bBitResolution 16 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 13 Transfer Type Isochronous Synch Type Synchronous Usage Type Data wMaxPacketSize 0x0070 1x 112 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 5 XMOS xCORE.ai MC (UAC2.0) Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 5 XMOS xCORE.ai MC (UAC2.0) AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 22 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 0 AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 4 bBitResolution 24 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 13 Transfer Type Isochronous Synch Type Synchronous Usage Type Data wMaxPacketSize 0x00e0 1x 224 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 3 bInterfaceCount 2 bFunctionClass 2 Communications bFunctionSubClass 2 Abstract (modem) bFunctionProtocol 0 iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 0 iInterface 0 CDC Header: bcdCDC 1.10 CDC ACM: bmCapabilities 0x02 line coding and serial state CDC Union: bMasterInterface 3 bSlaveInterface 4 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 16 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 2 bDeviceProtocol 1 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0000 (Bus Powered)[/pre][/pre][/pre][/font]
Last edited by rml42 on Mon Nov 04, 2024 12:05 am, edited 1 time in total.
-
- New User
- Posts: 2
- Joined: Sat Oct 19, 2024 11:40 pm
Hi,
I have to reopen this since our application relies on having speaker visible in the test menu of windows.
Additionnaly, audio plays well in VLC, but not in windows media player which says there is a "problem" with the sound card.
Of course nothing in event log.
II tried with sw_usb_audio-sw-v9.0.0. Same problem
Using the demo driver, everything works. but it has to work without installing any additional driver software.
What we want to achieve :
- 7.1 audio 8 channels at 48 khz
- correctly recognized in winows ( 10 and 11 ) speaker list.
- audio should play
I greatly apreciate some help ( a step by step procedure to make this work)
Since it is written on xmos site "This driver supports consumer audio applications and supports Windows sound API such as WSAPI, DirectSound & MME" . I can't imagine that usecase can only work with proprietary drivers ...
Thanks in advance
I have to reopen this since our application relies on having speaker visible in the test menu of windows.
Additionnaly, audio plays well in VLC, but not in windows media player which says there is a "problem" with the sound card.
Of course nothing in event log.
II tried with sw_usb_audio-sw-v9.0.0. Same problem
Using the demo driver, everything works. but it has to work without installing any additional driver software.
What we want to achieve :
- 7.1 audio 8 channels at 48 khz
- correctly recognized in winows ( 10 and 11 ) speaker list.
- audio should play
I greatly apreciate some help ( a step by step procedure to make this work)
Since it is written on xmos site "This driver supports consumer audio applications and supports Windows sound API such as WSAPI, DirectSound & MME" . I can't imagine that usecase can only work with proprietary drivers ...
Thanks in advance
-
Verified
- XCore Legend
- Posts: 1158
- Joined: Thu Dec 10, 2009 9:20 pm
- Location: Bristol, UK
Do you have the sample rate set to the same value for recording and playback devices?
(you can also set MAX_FREQ and MIX_FREQ to both 48khz for now to limit options - don't forget to use usbdeview after making this change though!)
(you can also set MAX_FREQ and MIX_FREQ to both 48khz for now to limit options - don't forget to use usbdeview after making this change though!)
Technical Director @ XMOS. Opinions expressed are my own
-
- XCore Addict
- Posts: 150
- Joined: Sun Feb 23, 2014 11:30 am
Hi Ross.
How can this help if the device does not appear in the list of sound devices?