Thank you very much for initiating this project.
You may already be aware of this, but there is no need to claim the audio interfaces or disconnect the audio streams. To enable concurrent operation between the Audio Stream (ALSA/PipeWire) and MixiD, control traffic should be routed through the dedicated Interface 4, leaving the audio interfaces untouched :
* Formula: wIndex = Unit_ID | 0x0004
* Example: Matrix Mixer Unit 0x3c00 becomes 0x3c04.
* Example: Monitor Unit 0x3600 becomes 0x3604.
The usb interface layout is something like this :
| Interface | Class | Driver | Usage |
| 0 | Audio Control | snd-usb-audio | OS Audio Configuration |
| 1 | Audio Stream | snd-usb-audio | PCM Playback/Capture |
| 2 | Audio Stream | snd-usb-audio | PCM Playback/Capture |
| 3 | HID | usbhid | Hardware Buttons / Scroll Control |
| 4 | Vendor Specific | None | DSP Control (MixiD Target) |
This works very nicely on my audient id14 ;-)...
Thank you very much for initiating this project.
You may already be aware of this, but there is no need to claim the audio interfaces or disconnect the audio streams. To enable concurrent operation between the Audio Stream (ALSA/PipeWire) and MixiD, control traffic should be routed through the dedicated Interface 4, leaving the audio interfaces untouched :
* Formula:
wIndex = Unit_ID | 0x0004* Example: Matrix Mixer Unit
0x3c00becomes0x3c04.* Example: Monitor Unit
0x3600becomes0x3604.The usb interface layout is something like this :
| Interface | Class | Driver | Usage |
| 0 | Audio Control |
snd-usb-audio| OS Audio Configuration || 1 | Audio Stream |
snd-usb-audio| PCM Playback/Capture || 2 | Audio Stream |
snd-usb-audio| PCM Playback/Capture || 3 | HID |
usbhid| Hardware Buttons / Scroll Control || 4 | Vendor Specific | None | DSP Control (MixiD Target) |
This works very nicely on my audient id14 ;-)...