[Ardour-Dev] Osc and control surface

johan at gunhildcarling.net johan at gunhildcarling.net
Wed Mar 20 15:16:16 PDT 2013

On 2013-03-20 12:57, Paul Davis wrote:
> On Wed, Mar 20, 2013 at 3:36 PM, Johan Blomé 
> <johan at gunhildcarling.net> wrote:
>> Hello
>> I have a Roland M400 mixer which I want to use a control surface for 
>> Ardour.
>> I have written a small osc proxy program translating osc calls to 
>> sysex (which the mixer uses) and vice verse.
>> This program listens to udp on a local port and sends on the same or 
>> another port.
> this seems a bit silly. Ardour3 supports device specific MIDI binding
> maps in which you could specify the sysex messages and what they
> control (mostly)

Well, I build this functionality mainly to have a remote control to 
mixer (android tablet) and have all the sysex already are mapped up (and 
there is a lot...).
Now about that sysex. I understand that for switches this is an easy 
task. For fader control, how do I do this? The fader values needs to be 
mapped somewhere. In Osc I send db values and since osc have the 
/routes/gaindB it works perfect. Speaking of gaindB: actually it sends 
the other type (-1,1) which as I see it means that the mapping to the 
physical fader needs to be done somewhere else. Should it not be better 
to send the gaindB instead?

There is a mode on the m400 where faders and mute commands are send as 
control change messages so I guess this should be possible to use but 
then none of the more advanced things can be accomplished (like channel 
names, panning, eq, sends etc). But for fast solution to my most urgent 
needs I will try this.

>> My main problem is that Ardour is only capable of communicating to 
>> the same port as it have received a osc call which means that both 
>> Ardour and my osc bridge needs to listen to the same port on 
>> localhost.
> no, this is not true. ardour listens on 3818 by default., your app
> opens up a random UDP port and sends to 3818. ardour finds out where
> your app is, and replies to it.
> or maybe i am misunderstanding.

To me it looks like
1) Ardour listens to port 3819 (or if it is occupied by me: ) 3920)
2) I send /routes/list to Ardour
3) Ardour answers on port 3819.
4) Since I cannot listen to port 3819 (Ardour is listening on this 
port) on localhost I cannot receive the message.

"lo_message_get_source(msg)" is used to get the return address and this 
means that it will bounce back to the same ip and port.

>> ric midiinterface is not working for me, I do not know why. I can see 
>> the sysex going to "MIDI control in" but nothing is happening.
>> generic MIDI means !sysex
>> you need a binding map: 
> org/using-control-surfaces/midi-binding-maps/">http://www.manual.ardour.org/using-control-surfaces/midi-binding-maps/

I will test this, thanks.

More information about the Ardour-Dev mailing list