Some ideas, from a wandering mind.
Created by: ranomier
I'm no expert programmer so maybe my thoughts do not have any weight, but maybe they contribute, so i want to share them here.
I think the basis of every audio server should basicly be like a basic jack. So every software can register inputs and outputs. But a little different to jack: 1.1. It should handle all hardware inputs and outputs by default like pulse. I don't know how realtime is implented in the kernel, but if only one soundcard can be handled in realtime mode, they should be a possibilty to set one (maybe more) soundcard in realtime mode. 1.2. Every output should get the posibilty to have a volume control, built in the core. But it should be bypassable. 1.3. Groups: If we have 5.1 souround sound, a audio output could create a group with 6 channels, so the audio manager knows they should stay together. Maybe the groups could hold accesable data with them, so a audio manager knows what do with them, but im not sure if that could complicate things.
Let handle a second software the audio routing (a audio routing manager), this software does nothing but to do that one thing. And they could be several of them. One that acts like PulseAudio and even a gui could look like pavucontrol. 2.1. As suggested in point 1.2. The audio routing manager should be able to control the bypass.
The third thing would be a framework to easily add interfaces. For example a interface for pulseaudio or jack or alsa, etc.
Sorry if i made a mistake, english is not my native language, but i try hard :)
What do you guys think about these ideas?