How many devices do actually fully work on Linux for the audio and mixing interface ? And if they work, it isn't "plug and play".
We may need an Operating System Agnostic Class Compliant Audio standard, coining it here as "OSA-CCA"
Class compliant hardware, Operating Systems and interfaces (USB) don't don't work seemingly together. if they did, there wouldn't be
millions of posts with problems.
Linux provides probably the most standard audio interface driver-less, few work flawless and fully functional on it,
but all devices work with with Windows and Mac though through vendor provided drivers (that sooner or later are not supported anymore).
This is because products manufacturer's marketing departments hijacked the phrase class compliant and defined them as
"Class compliant WITH WINDOWS (driver)" and "Class compliant wih MAC (driver)"
That should not have been the intent for USB driver-less standard audio class compliant.
Take a look at AKAI, announcing MPC support for audio interface over USB for class compliant devices. Didn't AKAI now there are lot of
product not work with Linux, let not even discuss embedded Linux ? Check the MPC forum and watch the mess unfolding.
https://www.mpc-forums.com/viewtopic.php?f=48&t=211654
https://www.mpc-forums.com/viewtopic.ph ... 9#p1834679
viewtopic.php?p=151895&hilit=class+compliant#p151895
So far for audio streams, what about the control interface ...
Current Audio devices control via lot of methods, USB, Web interface (MOTU) but almost none via MIDI.
To support this, Linux must support the ALSA Mixer interface in the kernel for the specific device.
A standard solution to get rid of such needed could really be old fashioned MIDI.
Even Dante device drivers create an virtual MIDI port and implementing and MIDI is cheap.
The audio interface could just simply create a MIDI endpoint, on the same USB port, and most
Such as the Focusrite interface has a MIDI port over USB, just add control interface support !
An option is to take the Linux ALSA mixer interface definitons and repack it into a MIDI-CI protocol, which is pure old fashion Sysex, either via Legacy MIDI or MIDI 2.0 UMP. MIDI-CI could run over DIN, USB, Network/IP MIDI and Dante as wel over AVB.
Operating systems can then control volume etc.. just by considering such a MIDI endpoint the audio control interface.
You could easily switch between the device you wish to control. Even a simple MIDI tool could do it if there is lack of such bridge.
[Edit #2] Another alternative would be AES70. It can run locally and over the internet
Examples of running AES70 daemons to control (ALSA) audio devices (like an RPI) exist and you can play with it for free today (see below links)
What is needed
A. A standard control interface
- Set/Get Configuration such as sampling rate, buffer size, Synchronization (Word/ADAT etc..)
- Set/Get Volume
- Set/Get Mute/Unmute
- Get/Set Mixer Input/output mapping for sources and destination on in an output (optional), similar to ALSA mixer specification.
- Get metering: metering of a channel (optional)
- Get/Set Phantom power (optional)
- Get/Set input type (Mic, Line, Instrument)
- Get streams:
USB audio would have two: In and ouput stream
Dante/AVB would have one per input/output - Get/Set audio stream type such as AVB, DANTE or AES67 etc..
B. A standard audio stream interface
- For USB comply 100% with the USB 2.0 Audio Class compliant standard without any VENDOR supplied device drivers
- For Network audio, implement an open standard such as AES67 (most Focusrite Dante device have such option now)
C. Provide an "OSA-CCA" switch
- A physical switch to choose between driver (VENDOR) and driver-less ("OSA-CCA") mode
- [EDIT #1] if no physical switch is possible, a firmware flash tool to change between those or a simple MIDI-CI sysex command.
D. Use social media
- Setup a committee and website
- Define the requirements
- Bombard vendors reminding them consumers are expecting them to change and work together.
It's 2023 and USB/Network audio is still it in's infancy for consumer / non-large scale audio
We not only need something that "just works", but something that "works for everyone"
Lets hope by 2028 all this nightmare is behind us and we can have plug and play USB and Network Audio
Any suggestions , agreement, disagreement , ideas ?
[AES67 (AoIP) & AES70 Control and monitor for any kind of device, incl. ALSA]
https://www.iseurope.org/news/audio-over-ip-here
AES70 Control and Monitor standard update:
https://audioxpress.com/news/updated-ae ... t-ise-2023
Espressif (esp32) AES70 Evaluation kit.
https://audioxpress.com/news/deuso-anno ... pplication
Genelec Home AoIP speakers:
https://www.systemsintegrationasia.com/ ... er-models/
AES67 USB daemon for embedded devices (Use a network card on for example an RPI as an EAS67 I/O device and creates a USB audio device to PC)
https://github.com/bondagit/aes67-linux ... _GADGET.md
Make a soundcard input (i.e Focusrite USB card) available as endpoint in an AES67 network.
https://github.com/philhartung/aes67-sender
AES70 ALSA Explorer / Control ALSA devices via AES70 over the cloud
https://aes70explorer.com/try/
C++ library for AES70 / Object model
http://docs.deuso.de/libaes70.cpp/
https://www.youtube.com/watch?v=JTZbFScTrGQ
AES70 Standard
https://ocaalliance.github.io/resources.html