Windows Version
Windows 11 Pro, version 2009, build 26200 (10.0.26200.0 observed previously in PowerShell transcript).
PC Information
Gigabyte Technology Co., Ltd. Z590I VISION D, x64-based PC.
Processor Architecture
x64 (AMD / Intel etc.)
Audio Interface
TASCAM Model 12
Audio function:
USB\VID_0644&PID_805F&MI_00\7&faa69ba&0&0000
Local INF entry used for this test:
We did not create a separate INF from scratch. In the local Studio13 fork, we modified the existing driver INF and added this exact entry:
%USBAudio2-ACX.DeviceDesc%=USBAudio2-ACX_Device, USB\VID_0644&PID_805F&MI_00 ; Tascam Model 12
That entry targets only the Model 12 USB audio interface (MI_00). The Model 12 MIDI interface is separate (MI_03) and remained on the normal Windows USB MIDI path (usbaudio / wdma_usb.inf).
Current local driver state:
Service: USBAudio2-ACX
Driver package: oem154.inf
DriverVersion: 07/22/2026 14.55.18.295
Kernel service: Running
DriverStore path: C:\WINDOWS\system32\DriverStore\FileRepository\usbaudio2-acx.inf_amd64_b1be05e511ba163e\USBAudio2-ACX.sys
Audio Interface Connection
Unknown or unsure.
Sample Rate
Not sample-rate-specific. Observed during endpoint enumeration. Current test setup is generally using 48 kHz.
Buffer Size
N/A for this endpoint naming issue.
Application in use
Windows Settings > Sound; Roon audio setup.
Audio Mode
Windows Audio (WASAPI etc.)
Type of bug
Other: endpoint naming / multi-stream endpoint UX.
Steps to reproduce
- Build/install the current
multi-streams-support USBAudio2-ACX driver locally and bind a multi-output UAC2 device. In this case the device is a TASCAM Model 12, USB\VID_0644&PID_805F&MI_00.
- Open Windows Settings > Sound output device list, or Roon Settings > Audio.
- Observe the render endpoints exposed by the driver.
Actual user-visible result:
Speakers (USBAudio2-ACX)
Speakers (USBAudio2-ACX)
Speakers (USBAudio2-ACX)
Speakers (USBAudio2-ACX)
Speakers (USBAudio2-ACX)
Roon similarly shows multiple indistinguishable USBAudio2-ACX WASAPI entries. The user cannot tell which endpoint maps to which Model 12 USB output pair.
Expected behavior
Each endpoint should have a stable, distinguishable display name that includes direction and channel pair/range. For example, a useful fallback for this device would be:
Model 12 Out 1/2
Model 12 Out 3/4
Model 12 Out 5/6
Model 12 Out 7/8
Model 12 Out 9/10
Model 12 In 1/2
...
Model 12 In 11/12
The exact naming convention is less important than making the endpoints distinguishable in Windows Settings and WASAPI clients.
Additional notes
This issue is only about endpoint display names.
Relevant source observations from this repo:
src\uac2-driver\AudioIsochronousEngine.cpp:327-367
AudioIsochronousEngine already tries to build a per-stream AudioProperty.ProductName from USB terminal names. If terminal names are not available, it falls back to broad names such as ProductName Input N, ProductName Output N, or ProductName N.
src\uac2-driver\AudioIsochronousEngine.cpp:607-653
The ASIO channel map also tries to read USB channel names and falls back to the audio property product name.
src\uac2-driver\CircuitCommon.cpp:1556-1565
src\uac2-driver\CircuitCommon.cpp:1842-1851
There are comments noting that when the category is KSNODETYPE_SPEAKER, the name retrieved by EvtAcxPinRetrieveName is not used and Windows displays Speaker. The current workaround changes the category to KSNODETYPE_LINE_CONNECTOR only when a valid channelNames descriptor is present.
src\uac2-driver\USBAudio2-ACX.inf:101-120
The INF sets static friendly names for render/capture interface registrations and endpoint properties for association and event-driven mode. It does not appear to provide per-dynamically-created endpoint names for each output pair.
Question: can the ACX endpoint creation/property path expose stable per-endpoint display names derived from stream direction and channel range even when the USB device does not provide useful channel-name string descriptors? If ProductName / EvtAcxPinRetrieveName is not the right mechanism, which endpoint property should this driver set so Windows Settings, WASAPI clients, and Roon show disambiguated names?
I can provide screenshots and the local Switch-USBAudio2ACX.ps1 -StatusOnly output if useful.
Windows Version
Windows 11 Pro, version 2009, build 26200 (
10.0.26200.0observed previously in PowerShell transcript).PC Information
Gigabyte Technology Co., Ltd. Z590I VISION D, x64-based PC.
Processor Architecture
x64 (AMD / Intel etc.)
Audio Interface
TASCAM Model 12
Audio function:
Local INF entry used for this test:
We did not create a separate INF from scratch. In the local Studio13 fork, we modified the existing driver INF and added this exact entry:
That entry targets only the Model 12 USB audio interface (
MI_00). The Model 12 MIDI interface is separate (MI_03) and remained on the normal Windows USB MIDI path (usbaudio/wdma_usb.inf).Current local driver state:
Audio Interface Connection
Unknown or unsure.
Sample Rate
Not sample-rate-specific. Observed during endpoint enumeration. Current test setup is generally using 48 kHz.
Buffer Size
N/A for this endpoint naming issue.
Application in use
Windows Settings > Sound; Roon audio setup.
Audio Mode
Windows Audio (WASAPI etc.)
Type of bug
Other: endpoint naming / multi-stream endpoint UX.
Steps to reproduce
multi-streams-supportUSBAudio2-ACXdriver locally and bind a multi-output UAC2 device. In this case the device is a TASCAM Model 12,USB\VID_0644&PID_805F&MI_00.Actual user-visible result:
Roon similarly shows multiple indistinguishable
USBAudio2-ACXWASAPI entries. The user cannot tell which endpoint maps to which Model 12 USB output pair.Expected behavior
Each endpoint should have a stable, distinguishable display name that includes direction and channel pair/range. For example, a useful fallback for this device would be:
The exact naming convention is less important than making the endpoints distinguishable in Windows Settings and WASAPI clients.
Additional notes
This issue is only about endpoint display names.
Relevant source observations from this repo:
AudioIsochronousEnginealready tries to build a per-streamAudioProperty.ProductNamefrom USB terminal names. If terminal names are not available, it falls back to broad names such asProductName Input N,ProductName Output N, orProductName N.The ASIO channel map also tries to read USB channel names and falls back to the audio property product name.
There are comments noting that when the category is
KSNODETYPE_SPEAKER, the name retrieved byEvtAcxPinRetrieveNameis not used and Windows displaysSpeaker. The current workaround changes the category toKSNODETYPE_LINE_CONNECTORonly when a validchannelNamesdescriptor is present.The INF sets static friendly names for render/capture interface registrations and endpoint properties for association and event-driven mode. It does not appear to provide per-dynamically-created endpoint names for each output pair.
Question: can the ACX endpoint creation/property path expose stable per-endpoint display names derived from stream direction and channel range even when the USB device does not provide useful channel-name string descriptors? If
ProductName/EvtAcxPinRetrieveNameis not the right mechanism, which endpoint property should this driver set so Windows Settings, WASAPI clients, and Roon show disambiguated names?I can provide screenshots and the local
Switch-USBAudio2ACX.ps1 -StatusOnlyoutput if useful.