Event of enable recording state (and something more)

When I press the big record button, it blinking. I mean big button, instead of small buttons for each track.

I want write Lua script that will observe for events: enable/disable recording, play, stop. And then send notification to external application. These notifications must be different for each event. Notification can send only when click (change internal state).

External application must known of session state in “real time” (receive notification when LUA sent it).

External application will only show state of session. And can’t send commands to ardour.

Maximum similar example - indicator “On air” in the studio of radiostation.

I have questions:

  1. Maybe this can make without LUA?

  2. How to observe for these events from LUA?

  3. How I can (from ardour/LUA) send data to external application, for example: dbus/tcp/file/fifo/other? Without midi or without something for specified hardware controllers.

Can you show me typical LUA example how I can make it? Or give me link for this info.

P.S.:

Oh! I found small problem:

You not see? preare instead prePare. Missing “p” in filename.

No, this example not about my question.

I found here

http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:LuaOSC:Address

but this is little bit information about this implementation.

@Deep Have you looked at the OSC commands that are there now? There is feedback. There is even a /record_tally event that will be sent when any record arm happens. It is true that at least one message must be sent to Ardour so that Ardour knows what address(IP) to send to. OSC is being worked on and if you have a well defined feature request that makes sense it is likely to be added. The transport buttons all have feedback as well.

@paul impossible without you ))

I presume, for best case: use “lo” library (liblo) for implementation of my external application(s) with OSC remote control.

Ok. I think, now this is clear question:
How I can broadcast/multicast my custom events from ardour (enable/disable record, play/stop session, and/or maybe another) via OSC?

@lenovens can you show me link of this info?

@lenovens it found:

/transport_stop state - state is true when transport is stopped
/transport_play state - state is true when transport speed is 1.0
/rec_enable_toggle state - Master record enabled.

But I don’t understand this:

a) ardour send one time when state change (presume this truth)
b) ardour send always (unusable, just case)
c) I must/can request it (if I can, give me info, I can use it as feature for initialisation my application)

@Deep
These messages are sent from Ardour to the surface in this order:

  • The surface requests feedback with /set_surface/feedback feedback_code
  • The feedback code depends on what all you want (see http://manual.ardour.org/using-control-surfaces/controlling-ardour-with-osc/calculating-feedback-and-strip-types-values/ ) If all you want is transport control feedback then using 16 (the master section) will do what you want.
  • As soon as the surface sends the /set_surface/feedback feedback_code Ardour sends the current states of all master section controls. (to refresh the surface)
  • After that, Ardour sends any state that changes when it changes. This may mean that more than one thing gets sent at a time (feedback is busier than control) for example sending transport_stop will not only send /transport_stop 1, but also transport_play 0, ffwd 0, rewind 0 and /loop_toggle 0.