Trond Lossius
2010-08-17 21:23:47 UTC
Hi Gaspard, Jamie and Gabriel,
I was taking a quick look at the current state of oscit. I've unfortunately been to bugged down with work over the last months to be able to participate as much as I'd like in the discussions here after the GDIF/SpatDIF meeting at IRCAM.
Without having been all though the oscit proposal I see at least one proble that IMHO would be worth considering further, and that is the getter method. Quoting:
<quote>
get properties
To get the value of a proprety, simply call the url with no argument:
/some/object/property
</quote>
This would be very difficult to combine with how we use OSC in Jamoma, as we not only have parameters containing a state, but also stateless objects implemented using the jcom.message Max external. These objects are often addressed using an OSC message with no arguments. Seeing this I started wondering what the OSC spec says in this regard, to make sure that our implementation for Jamoma is not in violation of the OSC spec in this regard.
I find the following at http://opensoundcontrol.org/spec-1_0
<quote>
An OSC message consists of an OSC Address Pattern followed by an OSC Type Tag String followed by zero or more OSC Arguments.
</quote>
The get properties proposal in oscit effectively rules out the possibility of using OSC messages with no arguments, as such a message will instead be interpreted as a query to get the property. Hence it will enforce a restriction as compared to what kind of nodes OSC itself permits.
Furthermore I am also unsure about the proposed solution for returning values. When all returned values are using /.reply, they will always be broadcasted. Without having any specific examples on hand I am concerned that at times it might be desirable to be able to be more specific about where the reply is routed, with the possibility of being able to reduce OSC network traffic the same way as a switch do compared to a hub.
I am also not necessarily convinced that it is a good idea not being able to prepend OSC node names to the reply OSC address. If you e.g. do WaveField synthesis or multichannel video processing with the same app running on several computers, you might want to have one master mechanism controlling them all. If this queries for the state on the different computers, wouldn't it be natural to prepend the name of the computers to the address of the reply message, in order to be able to distinguish them from each other?
My apologies if these points have been brought up already, but they seem worth taking into consideration.
And generally, as I stated in Paris, if we really want to work towards a protocol on top of OSC for communication between OSC nodes that eventually could be embraced by a wider community, I believe that it is really important to get CNMAT involved in the process.
Best,
Trond
I was taking a quick look at the current state of oscit. I've unfortunately been to bugged down with work over the last months to be able to participate as much as I'd like in the discussions here after the GDIF/SpatDIF meeting at IRCAM.
Without having been all though the oscit proposal I see at least one proble that IMHO would be worth considering further, and that is the getter method. Quoting:
<quote>
get properties
To get the value of a proprety, simply call the url with no argument:
/some/object/property
</quote>
This would be very difficult to combine with how we use OSC in Jamoma, as we not only have parameters containing a state, but also stateless objects implemented using the jcom.message Max external. These objects are often addressed using an OSC message with no arguments. Seeing this I started wondering what the OSC spec says in this regard, to make sure that our implementation for Jamoma is not in violation of the OSC spec in this regard.
I find the following at http://opensoundcontrol.org/spec-1_0
<quote>
An OSC message consists of an OSC Address Pattern followed by an OSC Type Tag String followed by zero or more OSC Arguments.
</quote>
The get properties proposal in oscit effectively rules out the possibility of using OSC messages with no arguments, as such a message will instead be interpreted as a query to get the property. Hence it will enforce a restriction as compared to what kind of nodes OSC itself permits.
Furthermore I am also unsure about the proposed solution for returning values. When all returned values are using /.reply, they will always be broadcasted. Without having any specific examples on hand I am concerned that at times it might be desirable to be able to be more specific about where the reply is routed, with the possibility of being able to reduce OSC network traffic the same way as a switch do compared to a hub.
I am also not necessarily convinced that it is a good idea not being able to prepend OSC node names to the reply OSC address. If you e.g. do WaveField synthesis or multichannel video processing with the same app running on several computers, you might want to have one master mechanism controlling them all. If this queries for the state on the different computers, wouldn't it be natural to prepend the name of the computers to the address of the reply message, in order to be able to distinguish them from each other?
My apologies if these points have been brought up already, but they seem worth taking into consideration.
And generally, as I stated in Paris, if we really want to work towards a protocol on top of OSC for communication between OSC nodes that eventually could be embraced by a wider community, I believe that it is really important to get CNMAT involved in the process.
Best,
Trond