UAC 2.0 Channel Count and Channel Names

I am developing a standard UAC 2.0 device and encountered an issue where the channel names do not update according to the iChannelNames field in the Class Specific AS Interface Descriptor when switching between different channel counts.

For example:

  • AS1 (6 channels) is configured with the following channel names: ADAT 1, ADAT 2, ADAT 3, ADAT 4, HP L, HP R
  • AS2 (4 channels) is configured with: ADAT 1, ADAT 2, HP L, HP R

However, when switching from AS1 (6 channels) to AS2 (4 channels), the channel names displayed in Audio MIDI Setup do not reflect the change as expected. The actual result is:

ADAT 1, ADAT 2, ADAT 3, ADAT 4

The system simply hides the last two channels; the names of the remaining channels are not updated.

Initial Topology

My original topology was as follows:

Later, I discovered that macOS uses the iChannelNames field from the Input Terminal to display channel names. Therefore, I modified the USB device descriptors and updated the topology to the following:

To distinguish the channel names for different channel counts, each Input Terminal is assigned a unique iChannelNames value.

This method worked perfectly on macOS 15. However, after updating to macOS 26, this topology no longer displays the correct channel names.

Question

On macOS 26, what is the correct method to ensure that the channel names update dynamically when switching between different audio channel configurations?

UAC 2.0 Channel Count and Channel Names
 
 
Q