[PD] control ardour via pd/[sendOSC]

Rich E reakinator at gmail.com
Sat May 10 09:42:33 CEST 2008


I just discovered that ardour is controllable via OSC in pd!  In the past, I
have used midi keys to sync my pd patches and ardour, but this was always a
little painful.  So, as I hadn't seen any other reference of this, I thought
I would post what commands are available here.

First, you have to turn on OSC within ardour (2.2 or up), which is in
options->misc options.  Then, if this is your first time, a file will be
written to .ardour2/osc_url that contains what udp port ardour communicates
osc messages.  This is connectable in pd with, in my case:

| connect localhost 3819 (

Then you have these commands available within pd (this is taken directly out
of ardour-2.4.1/src/libs/ardour/osc.cc).  The message you would type in pd
would be something like "send /ardour/add_marker".  I haven't tried any of
these but start and stop yet, but here they are:

REGISTER_CALLBACK (serv, "/ardour/add_marker", "", add_marker);
        REGISTER_CALLBACK (serv, "/ardour/loop_toggle", "", loop_toggle);
        REGISTER_CALLBACK (serv, "/ardour/goto_start", "", goto_start);
        REGISTER_CALLBACK (serv, "/ardour/goto_end", "", goto_end);
        REGISTER_CALLBACK (serv, "/ardour/rewind", "", rewind);
        REGISTER_CALLBACK (serv, "/ardour/ffwd", "", ffwd);
        REGISTER_CALLBACK (serv, "/ardour/transport_stop", "",
        REGISTER_CALLBACK (serv, "/ardour/transport_play", "",
        REGISTER_CALLBACK (serv, "/ardour/set_transport_speed", "f",
        REGISTER_CALLBACK (serv, "/ardour/save_state", "", save_state);
        REGISTER_CALLBACK (serv, "/ardour/prev_marker", "", prev_marker);
        REGISTER_CALLBACK (serv, "/ardour/next_marker", "", next_marker);
        REGISTER_CALLBACK (serv, "/ardour/undo", "", undo);
        REGISTER_CALLBACK (serv, "/ardour/redo", "", redo);
        REGISTER_CALLBACK (serv, "/ardour/toggle_punch_in", "",
        REGISTER_CALLBACK (serv, "/ardour/toggle_punch_out", "",
        REGISTER_CALLBACK (serv, "/ardour/rec_enable_toggle", "",
        REGISTER_CALLBACK (serv, "/ardour/toggle_all_rec_enables", "",

#if 0
        REGISTER_CALLBACK (serv, "/ardour/*/#current_value", "",
        REGISTER_CALLBACK (serv, "/ardour/set", "", set);

#if 0
        // un/register_update args= s:ctrl s:returl s:retpath
        lo_server_add_method(serv, "/register_update", "sss",
OSC::global_register_update_handler, this);
        lo_server_add_method(serv, "/unregister_update", "sss",
OSC::global_unregister_update_handler, this);
        lo_server_add_method(serv, "/register_auto_update", "siss",
OSC::global_register_auto_update_handler, this);
        lo_server_add_method(serv, "/unregister_auto_update", "sss",
OSC::_global_unregister_auto_update_handler, this);

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20080510/66ddf100/attachment.htm>

More information about the Pd-list mailing list