[Clam-devel] Changing Sink/Sources portnames?

David García Garzón dgarcia at iua.upf.edu
Wed May 13 09:54:46 PDT 2009

Dirk Griffioen who started working with us at Barcelona Media acustics group 
is hacking Audio Sinks and Sources to be multichannel, that is, being able to 
configure them so that they have n in/out ports. That could have several 
implications on the backends and in networks, so before introducing any 
backward incompatible change we would like to ask the list about them.

What we had until now is:
- Sources/Sinks configuration is empty.
- Backend port names, are taken from Sources/Sinks processing name
- Sources/Sinks ports are named AudioIn or AudioOut which are used just for 
network connections not for the backend.

What we tried in a first approach is:
- A new NSources/NSinks configuration parameter
- Backend port names, are taken from Sources/Sinks processing+port names
- Sources/Sinks ports are named 1,2,3,4...
- If no NSources attribute is given, configuration is updated to have it set 
to 1 (so that you can edit it for old networks and on saving them it gets 

Although the last step succeeds to configure old networks processings, old 
networks fail to load because the name '1' instead 'AudioOut/In' so we should 
use the clamrefactor script massively to adapt all the networks which i think 
is not good.

Alternatively, we could consider single port sources/sinks an special case:
- Processing port name being AudioIn/Out instead, this would solve old network 

Being an special case we might also add this:
- Backend port name of a procesing with a single port being just the 
processing name without the port part, so, we won't get a meaningless '.1' on 
every port

Another option is just doing that special case just whenever the NSources 
attribute is not present. In that case you won't be able to edit old network 
sink/sources configuration.

One drawback of the solutions that change the name is that changing the name 
of a port without removing the existing connection  (as we try to do with 
most multichannels now) is not an obvious step now. A solution to that could 
be naming always AudioOut the first port and second and next AudioOut1, 
AudioOut2... And another solution would be being able to change the port name 
without disconnecting.


More information about the clam-devel mailing list