X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=_manual%2F22_using-control-surfaces%2F01_controlling-ardour-with-osc.html;h=e60041949890adf388e78b47958101cd3f284688;hb=cc226236a12fa5c18dc98dee5663905db424fde1;hp=28dd8b298d4016218fc648d325d4f2c95b8da677;hpb=2f92b02fbb5cb72b3e4f0d2495428a18d6b51df2;p=ardour-manual-diverged diff --git a/_manual/22_using-control-surfaces/01_controlling-ardour-with-osc.html b/_manual/22_using-control-surfaces/01_controlling-ardour-with-osc.html index 28dd8b2..e600419 100644 --- a/_manual/22_using-control-surfaces/01_controlling-ardour-with-osc.html +++ b/_manual/22_using-control-surfaces/01_controlling-ardour-with-osc.html @@ -2,13 +2,25 @@ layout: default title: Controlling Ardour with OSC --- - +

OSC lets synthesizers and other devices communicate with Ardour. OSC devices can send commands relating to playback (such as play or stop), performance (such as volume, play, stop, and almost any other function (such as Edit, or Undo).

+ +

+ Note: OSC control has changed dramatically since Ardour 4.7. + The Path structure has been completely redone, Banking has been introduced, + The controller is now able to tell Ardour what kind of feedback it can + work with (including bank size) and two new math styles have been added + to gain controls. If you are using an Ardour version of 4.7 or less, + please read + Osc control in ardour 4.7 and prior. +

+

Ardour is probably one of the most OSC-controllable audio applications around, but as with all OSC-controllable apps, you can't do much without @@ -29,79 +41,196 @@ title: Controlling Ardour with OSC <Option name="osc-port" value="Your choice here"/> +

+ Ardour sends any feedback to the port and address that sent any + feedback request. The port does not have to match Ardour's port. In + fact it is better not to. This means that Ardour can deal with more + than one controller at a time. The two controllers can bank + independantly and even use different math for faders. This could be + used to allow talent to adjust their own monitor mix using a tablet + or phone that can run an OSC controller. +

+ +

Control Surface Set Up

+ +

+ Control surface set up allows the controller to tell Ardour about it's + capabilities. The surface can tell Ardour how many control strips it + has for banking, if it is capable of setting it's faders or buttons + to valuse set by Aurdour's GUI or automation, What kind of math the + faders use and more. +

+
+
/set_surface bank_size strip_types + feedback fadermode
+
where bank_size is an int ranging from 0 to about 65000 + (16bits) The value 0 means no banking (or infinite bank size). + strip_types (when implemented) is a bitset that will + determine what kind of channels will be included in the bank. + feedback is a bitset that determines what things should send + feedback to the control surface. fadermode is a string that + tells Ardour what kind of math the control surface's faders use.
+
+

+ Strip Types Coming soon... check for more info sometime. +

+

+ Feedback This is an integer made up of bits. The easy way to + deal with this is to think of feedback items being worth a number and + then adding all those numbers together for a value to send. +

+

+

+ Gainmode is a string that is one of: +

+

+ Any time the /set_surface command is sent, the current bank + is recalculated and if feedback is turned on, the values of each + strip's controls are sent (or refreshed) as well. +

+

If /set_surface is not sent, the default values of: +

+ These values give the same behaviour as prior versions of Ardour. +

+

List of OSC messages

-

Transport Control

+

Master or Global messages

+ +

Master and Monitor strip control

-
/ardour/transport_stop
+
/masterabs abs
+
where abs is a float ranging from 0.0f to 2.0f
+
/masterdB dB
+
where dB is a float ranging from -200f to 6f
+
/masterfader fader
+
where fader is a float ranging from 0.0f to 1.0f
+
/master1024 fader
+
where fader is an int ranging from 0 to 1023
+ +

Transport Control

+
+
/transport_stop
-
/ardour/transport_play
+
/transport_play
-
/ardour/set_transport_speed s
+
/set_transport_speed s
where s is a float ranging from -8.0f to 8.0f
-
/ardour/ffwd
+
/ffwd
-
/ardour/rewind
+
/rewind
-
/ardour/goto_start
+
/goto_start
-
/ardour/goto_end
+
/goto_end
-
/ardour/add_marker
+
/add_marker
(adds marker to the current transport position)
-
/ardour/next_marker
+
/next_marker
-
/ardour/prev_marker
+
/prev_marker
-
/ardour/locate spos roll
+
/locate spos roll
where spos is the target position in samples and roll is a bool/integer defining whether you want transport to be kept rolling or not
-
/ardour/loop_toggle
+
/loop_toggle
-

Editing-related

+

Editing-related

-
/ardour/undo
+
/undo
-
/ardour/redo
+
/redo
-
/ardour/save_state
+
/save_state
(this is the regular Session > Save operation)
-

Recording control

+

Recording control

-
/ardour/toggle_punch_in
+
/toggle_punch_in
-
/ardour/toggle_punch_out
+
/toggle_punch_out
-
/ardour/rec_enable_toggle
+
/rec_enable_toggle
-
/ardour/toggle_all_rec_enables
+
/toggle_all_rec_enables
(toggles all tracks' recording state)

Track specific operations

- For each of the following, rid is the remote ID or the track + For each of the following, rid is the remote ID for the track +

+

+ RID has a different meaning than in Ardour version 4.7 and before. + Effectively, banking is always being used and the RID is generated on + the fly. The RID is the possition of the strip within bank as an int + 1 to bank size. There are no gaps as there have been in the past. + Depending on the value of strip_types sent to Ardour, Master and + Monitor, may be included in the list of RIDs or not as the controller + sets.

-
/ardour/routes/mute rid mute_st
+
/bank_up
+
Change bank to the next higher bank.
+
/bank_down
+
Change bank to the next lower bank.
+
/strip/mute rid mute_st
where mute_st is a bool/int representing the desired mute state of the track
-
/ardour/routes/solo rid solo_st
+
/strip/solo rid solo_st
where solo_st is a bool/int representing the desired solo state of the track
-
/ardour/routes/recenable rid rec_st
+
/strip/recenable rid rec_st
where rec_st is a bool/int representing the desired rec state of the track
-
/ardour/routes/gainabs rid gain_abs
+
/strip/gainabs rid gain_abs
where gain_abs is a float ranging from 0 to 2 (0 being -infinite, 1 being 0dB and 2 being +6dB).
-
/ardour/routes/gaindB rid gain_db
-
where gain_db is a float ranging from -400 to 6 representing the desired gain of the track in dB.
-
/ardour/routes/trimabs rid trim_abs
+
/strip/gaindB rid gain_db
+
where gain_db is a float ranging from -200 to 6 representing the desired gain of the track in dB.
+
/strip/fader rid fader position
+
where fader position is a float ranging from 0 to 1 representing the fader control position.
+
/strip/gaindB rid gain_db
+
where fader1024 is an int ranging from 0 to 1023 representing the fader control position.
+
/strip/trimabs rid trim_abs
where trim_abs is a float ranging from 0.1 to 10 (-20dB to +20dB). (since 4.1)
-
/ardour/routes/trimdB rid trim_db
+
/strip/trimdB rid trim_db
where trim_db is a float ranging from -20 to 20 representing the desired trim of the track in dB. (since 4.1)
@@ -110,7 +239,7 @@ here"/> Every single menu item in Ardour's GUI is accessible via OSC. There is a single common syntax to trigger the action as if it was selected with the mouse (or keyboard):

-/ardour/access_action action_name +/access_action action_name

The list below shows all available values of action-name as of mid-February 2014 for Ardour 3.5. You can get the current list at any