PDA

View Full Version : Mixbus2 and OSC control



Syme
12-09-2011, 09:50 PM
Hi all,

I am attempting to control this Ardour app via OSC from TouchOSC on an iPod through OSCulator on a Macbook Pro, OS 10.6.8. I have had success using midi commands so I know all is well connected; there must be a problem with my understanding of routing setup or syntax for osc. As I understand it, if I receive a message from touchosc in osculator such as </ardour/transport_start>, it needs to be rerouted to the mixbus app. To do this I then: 1) select "osc routing" under "event type" and "new" in the "value" menu 2) find and chose <localhost:3819 (Ardour)> (3819 is the default port that mixbus listens to when "use osc" is enabled in that app) in the Parameters/OSC Routing tab 3) choose the corresponding number in the "osc routing list below. After closing the Parameters window in theory I should be good to go, right? There's a green light at the message in osculator upon pressing the play button but no response from the app.
Mixbus is programmed to understand, among others, the osc message </ardour/transport_start> as the transport/play command; tried re-entering this in the rewrite address window with no change.
Any suggestions much appreciated. Thanks.
Simon

camille
12-10-2011, 01:23 AM
Hi Simon,

The procedure you describe is correct as far as I can tell.
By default Ardour listen on port 3819, as it specified here (http://ardour.org/osc_control).
However, I don't see a reference to the message /ardour/transport_start, but rather /ardour/transport_play, is that perhaps what you meant?


Best,
Cam

Syme
12-10-2011, 04:36 AM
Hi Simon,

The procedure you describe is correct as far as I can tell.
By default Ardour listen on port 3819, as it specified here (http://ardour.org/osc_control).
However, I don't see a reference to the message /ardour/transport_start, but rather /ardour/transport_play, is that perhaps what you meant?


Best,
Cam

Hi Camille,
Yes, I used start in error in this message but play is what I was using in osculator, so this is not the problem, thanks. I even tried adding the port command to the rc file as suggested at that link but it did not help.
Simon

camille
12-10-2011, 02:55 PM
Hey Syme,

I found the problem: Ardour is strict about the definition of the messages it receives. It is not obvious, but the OSC messages /ardour/transport_play and /ardour/transport_stop have no arguments. This means that if you use a push button to send an event to them, it will not work as a push button has a float argument. Likewise, if you us a OSC Routing with the <all args> token fed by a push button, you will meet the same situation.

The solution is to create a specific routing (for example /ardour/transport_play) and remove all argument tokens from the OSC Routing Editor. This will create a OSC Routing that sends a message with no argument. Optionally, you can also set the "route when" option to "the value goes from positive to 0" if you want the message to be triggered only when the finger is released.

Attached is a very simple example with play/stop controls, and two tracks gain control using the first page of the Beatmachine template of TouchOSC.


Best,
Cam

Syme
12-10-2011, 07:33 PM
Hi Cam,

works like a charm, thanks! May I ask where you found this info?
Best regards,
Simon

camille
12-10-2011, 07:51 PM
I first repeated the steps you described, trying to find why Ardour would not react to the OSC messages.
Then I had a look at Console.app an saw that Ardout left a log message saying that the OSC port 3819 was successfully open, so I knew at that point that something has to be wrong with the message definition.
As it was very improbable that the message address would have different from what is documented on Ardour website the only variable left was the list of arguments.
Nothing in Ardour's documentation says that the transport messages should have an argument, then it became obvious that it was argument-less messages.

:)

Syme
04-26-2012, 08:04 PM
Hi Cam,

ok, it's working as I said for buttons, now for faders:

Here is a quote from the Controlling Ardour with OSC page:

<<Track specific operations
For each of the following, [remote_id] is the remote_id or the track

/ardour/routes/gainabs [remote_id] [gain_abs]
where [gain_abs] is a float ranging from 0 to 2 (0 being -infinite, 1 being 0dB and 2 being +6dB).>>

So I wrote the line as per your instructions:

2-localhost:3819 - ardour/routes/gainabs:2, arg(0)

where is indication placed for the fader number; track 1 for example?

Thanks.

Simon

camille
04-30-2012, 02:14 PM
Hello Simon,

In the previously attached example file (ardour.oscd), look at the OSC routings in the Parameters Window.
You will see I have created two OSC routings, one for the first track and the other for the second track.
The track number is what is called the [remote_id] in the Ardour manual.

Best,
Cam