Len Ovens len at ovenwerks.net
Sat Feb 28 21:29:22 UTC 2015

On Sat, 28 Feb 2015, Jesse Cobra wrote:

> Late to this discussion but why not a combination go zeroconf and osc for all
> this discovery and control?
> I have always been surprised someone has not already written an OSC to alsa mixer
> controller...

OSC is good because it is wide open... and bad because it is wide open. No 
two applications seem to use OSC commands that are the same as another. 
OSA starts with a framework that is the same from one device/application 
to the next. OSC is not dead, but it is not able to do auto setup. Having 
used zeroconf to find an OSC server, there is no way to discover what is 
there to control. The user has to know that already and prepare the 
controller to talk to the device/application. OSC does have a query setup 
in development, but it has been that way for a number of years now. It 
seems funding for the main contributions has gone away. (this is as far as 
I can see  http://opensoundcontrol.org/spec-1_1 ).

in OCA:
zeroconf is used to find the device, the controller/application connects, 
it gets a list of objects, what is controlable and the signal path through 
those objects. It is now possible for SW to create a GUI with controls 
that make sense and have labels on them. The controller can find out the 
value of any control's parameter that it can control. (provided the writer 
of the OCA server does their job) Take a look at OSC for Ardour, it is 
quite good, but a controller does not know how many routes there are 
unless the user tells the controller. Sending fader changes to route 32 
out of 24 does not crash Ardour, but it gives no feedback either. This is 
not Ardour's fault so much as a hole in OSC. (or maybe an elevated 
expectation of OSC :)

So think about the OSC to ALSA mixer server and client. The server can use 
the standard ALSA tools to find out what all the controls are and create 
OSC paths for them. Cool. The client connects... it has to have a template 
for all the same cards alsa knows about and the client user has to tell 
the client which one to use. In other words the client/controller is a 
deddicated unit just for alsa mixing, it can do nothing else or at least 
needs a prewritten profile for anything it does.

Len Ovens

More information about the Linux-audio-dev mailing list