Hm, maybe the following will be an acceptable solution: Non-Pro Applications should use the ALSA-API for Audio Output and Input.
They will use the default ALSA Device, which by default should be the DMIX Plugin, which does samplerate conversion and mixing, if this is not provided by the Hardware. For the Pro-Applications there is jack, but as soon as the jack daemon is started, it will automagically connect the default ALSA-Device and DMIX Plugin through the ALSA-Jack plugin to jack. This of course could also be done by an app like qjackctl. This provides several benefits IMHO: Consumer-Apps just work, no matter how many concurrently, no matter what samplerate. If you prefer to use jack, the Consumer apps will continue to work, as expected. the Software Routing would look like this: [Application] -\ [Application] --+--> [ALSA-DMIX] -> [ALSA-JACK] -> [JACK] -> [ALSA-HW] [Application] -/ or without jack running it'd look like this: [Application] -\ [Application] --+--> [ALSA-DMIX] -> [ALSA-HW] [Application] -/ of course it'd be possible to keep jack running all the time, but this is a point that I'm not sure about yet. To me this seems to be a more or less acceptable solution. If it's well implemented by your favorite Linux-Distribution Vendor it should work, I believe. One thing that might be interesting is wheter it'd be possible to re-route dmix without stopping a running Audio-Application. -Richard