3 title: Controlling Ardour with OSC
9 <p>Open Sound Control (<abbr title="Open Sound Control">OSC</abbr>) 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).</p>
10 <p>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 knowing what messages can be sent. This document describes the various categories of messages that Ardour understands. It is subject to change, particular the "Actions" part below, since this relates to the GTK GUI for Ardour rather than the backend.</p>
12 <h2>Connect to Ardour via OSC</h2>
14 OSC support is not enabled by default, but can be turned on via <code>Edit > Preferences > Control Surfaces</code>. Once enabled, Ardour will listen on port 3819 by default. This port number can be changed by editing $ARDOUR_CONFIG and adding this line within the <Config> section:</p>
16 <Option name="osc-port" value="YourChoiceHere"/>
19 <h2>Transport Control</h2>
20 <dl class="wide-table">
21 <dt>/ardour/transport_stop</dt>
22 <dt>/ardour/transport_play</dt>
23 <dt>/ardour/set_transport_speed [transport_speed]</dt>
24 <dd>where [transport_speed] is a float rangin from -8 to 8.</dd>
26 <dt>/ardour/rewind</dt>
27 <dt>/ardour/goto_start</dt>
28 <dt>/ardour/goto_end</dt>
29 <dt>/ardour/add_marker</dt>
30 <dd>(adds marker to the current transport position)
32 <dt>/ardour/next_marker</dt>
33 <dt>/ardour/prev_marker</dt>
34 <dt>/ardour/locate [sample_pos] [with_roll]</dt>
35 <dd>where [sample_pos] is the target position and [with_roll] is a bool/integer (whether you want transport to be kept rolling or not).
37 <dt>/ardour/loop_toggle</dt>
40 <h2>Editing-related</h2>
41 <dl class="wide-table">
42 <dt> /ardour/undo</dt>
43 <dt> /ardour/redo</dt>
44 <dt> /ardour/save_state</dt>
45 <dd>(this is regular Session _> Save operatio)</dd>
48 <h2>Recording control</h2>
49 <dl class="wide-table">
50 <dt> /ardour/toggle_punch_in</dt>
51 <dt> /ardour/toggle_punch_out</dt>
52 <dt> /ardour/rec_enable_toggle</dt>
53 <dt> /ardour/toggle_all_rec_enables</dt>
54 <dd>(toggles all tracks recording state). !currently toggles on but not off for 2.0 branch.</dd>
57 <h2>Track specific operations</h2>
59 For each of the following, [remote_id] is the remote_id or the track
61 <dl class="wide-table">
62 <dt> /ardour/routes/mute [remote_id] [mute_st]
64 <dd>where [mute_st] is a bool/int representing the desired mute state of the track
66 <dt> /ardour/routes/solo [remote_id] [solo_st]
68 <dd>where [solo_st] is a bool/int representing the desired solo state of the track
70 <dt> /ardour/routes/recenable [remote_id] [rec_st]
72 <dd>where [rec_st] is a bool/int representing the desired rec state of the track
74 <dt> /ardour/routes/gainabs [remote_id] [gain_abs]
76 <dd>where [gain_abs] is a float ranging from 0 to 2 (0 being -infinite, 1 being 0dB and 2 being +6dB).
78 <dt> /ardour/routes/gaindB [remote_id] [gain_db]
80 <dd>where [gain_db] is a float ranging from -400 to 6 representing the desired gain of the track in dB.<br>
86 Every single menu item in Ardour's GUI is accessible via OSC. There is<br>
87 a single common syntax to trigger the action as if it was selected<br>
88 with the mouse (or keyboard):</p>
90 /ardour/access_action [action_name]
92 <p>The list below shows all available values of [action-name] as of<br>
93 mid-March 2010 for Ardour 2.X. You can get the current list at any<br>
94 time by running Ardour with the -b flag.</p>
98 <li> Common/goto-editor
104 <li> Common/toggle-editor-mixer-on-top
106 <li> Common/ToggleBigClock
108 <li> Common/ToggleColorManager
110 <li> Common/ToggleInspector
112 <li> Common/ToggleKeyEditor
114 <li> Common/ToggleLocations
116 <li> Common/ToggleMaximalEditor
118 <li> Common/ToggleOptionsEditor
120 <li> Editor/add-location-from-playhead
122 <li> Editor/addExistingAudioFiles
124 <li> Editor/align-regions-end
126 <li> Editor/align-regions-start
128 <li> Editor/align-regions-start-relative
130 <li> Editor/align-regions-sync
132 <li> Editor/align-regions-sync-relative
134 <li> Editor/audition-at-mouse
136 <li> Editor/Autoconnect
138 <li> Editor/boost-region-gain
140 <li> Editor/brush-at-mouse
142 <li> Editor/center-edit-cursor
144 <li> Editor/center-playhead
148 <li> Editor/Crossfades
150 <li> Editor/CrossfadesFull
152 <li> Editor/CrossfadesShort
154 <li> Editor/cut-region-gain
156 <li> Editor/cycle-edit-point
158 <li> Editor/cycle-edit-point-with-marker
160 <li> Editor/cycle-snap-choice
162 <li> Editor/cycle-snap-mode
164 <li> Editor/duplicate-region
168 <li> Editor/edit-cursor-to-next-region-sync
170 <li> Editor/edit-cursor-to-previous-region-start
172 <li> Editor/edit-cursor-to-previous-region-sync
174 <li> Editor/edit-cursor-to-range-end
176 <li> Editor/edit-cursor-to-range-start
178 <li> Editor/edit-to-playhead
180 <li> Editor/EditCursorMovementOptions
182 <li> Editor/editor-copy
184 <li> Editor/editor-cut
186 <li> Editor/editor-delete
188 <li> Editor/editor-paste
190 <li> Editor/EditSelectRangeOptions
192 <li> Editor/EditSelectRegionOptions
194 <li> Editor/export-region
196 <li> Editor/extend-range-to-end-of-region
198 <li> Editor/extend-range-to-start-of-region
200 <li> Editor/finish-add-range
202 <li> Editor/finish-range
204 <li> Editor/fit-tracks
206 <li> Editor/goto-mark-1
208 <li> Editor/goto-mark-2
210 <li> Editor/goto-mark-3
212 <li> Editor/goto-mark-4
214 <li> Editor/goto-mark-5
216 <li> Editor/goto-mark-6
218 <li> Editor/goto-mark-7
220 <li> Editor/goto-mark-8
222 <li> Editor/goto-mark-9
224 <li> Editor/goto-visual-state-1
226 <li> Editor/goto-visual-state-2
228 <li> Editor/goto-visual-state-3
230 <li> Editor/goto-visual-state-4
232 <li> Editor/goto-visual-state-5
234 <li> Editor/goto-visual-state-6
236 <li> Editor/goto-visual-state-7
238 <li> Editor/goto-visual-state-8
240 <li> Editor/goto-visual-state-9
242 <li> Editor/goto-visual-state-10
244 <li> Editor/goto-visual-state-11
246 <li> Editor/goto-visual-state-12
248 <li> Editor/insert-region
250 <li> Editor/insert-time
252 <li> Editor/invert-selection
254 <li> Editor/jump-backward-to-mark
256 <li> Editor/jump-forward-to-mark
258 <li> Editor/LayerAddHigher
262 <li> Editor/LayerLaterHigher
264 <li> Editor/LayerMoveAddHigher
266 <li> Editor/MeterFalloff
268 <li> Editor/MeterHold
270 <li> Editor/Monitoring
272 <li> Editor/move-selected-tracks-down
274 <li> Editor/move-selected-tracks-up
276 <li> Editor/multi-duplicate-region
278 <li> Editor/mute-unmute-region
280 <li> Editor/naturalize-region
282 <li> Editor/normalize-region
284 <li> Editor/nudge-backward
286 <li> Editor/nudge-forward
288 <li> Editor/nudge-next-backward
290 <li> Editor/nudge-next-forward
292 <li> Editor/nudge-playhead-backward
294 <li> Editor/nudge-playhead-forward
296 <li> Editor/pitch-[Shift]-region
298 <li> Editor/pitch-shift-region
300 <li> Editor/play-edit-range
302 <li> Editor/play-from-edit-point-and-return
304 <li> Editor/play-selected-regions
306 <li> Editor/playhead-backward-to-grid
308 <li> Editor/playhead-forward-to-grid
310 <li> Editor/playhead-to-edit
312 <li> Editor/playhead-to-next-region-boundary
314 <li> Editor/playhead-to-next-region-boundary-noselection
316 <li> Editor/playhead-to-next-region-sync
318 <li> Editor/playhead-to-next-region-sync
320 <li> Editor/playhead-to-previous-region-boundary
322 <li> Editor/playhead-to-previous-region-boundary-noselection
324 <li> Editor/playhead-to-previous-region-sync
326 <li> Editor/playhead-to-range-end
328 <li> Editor/playhead-to-range-start
330 <li> Editor/PullupMinus1
332 <li> Editor/PullupMinus4
334 <li> Editor/PullupMinus4Minus1
336 <li> Editor/PullupMinus4Plus1
338 <li> Editor/PullupNone
340 <li> Editor/PullupPlus1
342 <li> Editor/PullupPlus4
344 <li> Editor/PullupPlus4Minus1
346 <li> Editor/PullupPlus4Plus1
350 <li> Editor/RegionEditOps
352 <li> Editor/remove-last-capture
354 <li> Editor/reverse-region
356 <li> Editor/save-visual-state-1
358 <li> Editor/save-visual-state-2
360 <li> Editor/save-visual-state-3
362 <li> Editor/save-visual-state-4
364 <li> Editor/save-visual-state-5
366 <li> Editor/save-visual-state-6
368 <li> Editor/save-visual-state-7
370 <li> Editor/save-visual-state-8
372 <li> Editor/save-visual-state-9
374 <li> Editor/save-visual-state-10
376 <li> Editor/save-visual-state-11
378 <li> Editor/save-visual-state-12
380 <li> Editor/scroll-tracks-down
382 <li> Editor/scroll-tracks-up
384 <li> Editor/select-all
386 <li> Editor/select-all-after-edit-cursor
388 <li> Editor/select-all-after-playhead
390 <li> Editor/select-all-before-edit-cursor
392 <li> Editor/select-all-before-playhead
394 <li> Editor/select-all-between-cursors
396 <li> Editor/select-all-in-loop-range
398 <li> Editor/select-all-in-punch-range
400 <li> Editor/select-all-within-cursors
402 <li> Editor/select-next-route
404 <li> Editor/select-prev-route
406 <li> Editor/select-range-between-cursors
408 <li> Editor/selected-marker-to-next-region-boundary
410 <li> Editor/selected-marker-to-previous-region-boundary
414 <li> Editor/set-edit-point
416 <li> Editor/set-fade-in-length
418 <li> Editor/set-fade-out-length
420 <li> Editor/set-loop-from-edit-range
422 <li> Editor/set-loop-from-region
424 <li> Editor/set-playhead
426 <li> Editor/set-punch-from-edit-range
428 <li> Editor/set-punch-from-region
430 <li> Editor/set-region-sync-position
432 <li> Editor/set-tempo-from-edit-range
434 <li> Editor/set-tempo-from-region
436 <li> Editor/show-editor-mixer
444 <li> Editor/Smpte30drop
448 <li> Editor/Smpte2997
450 <li> Editor/Smpte5994
452 <li> Editor/Smpte2997drop
454 <li> Editor/Smpte23976
456 <li> Editor/Smpte24976
458 <li> Editor/snap-magnetic
460 <li> Editor/snap-normal
468 <li> Editor/split-region
470 <li> Editor/start-range
472 <li> Editor/step-tracks-down
474 <li> Editor/step-tracks-up
476 <li> Editor/Subframes
478 <li> Editor/Subframes100
480 <li> Editor/Subframes80
482 <li> Editor/tab-to-transient-backwards
484 <li> Editor/tab-to-transient-forwards
486 <li> Editor/temporal-zoom-in
488 <li> Editor/temporal-zoom-out
492 <li> Editor/toggle-auto-xfades
494 <li> Editor/toggle-edit-mode
496 <li> Editor/toggle-fade-out-active
498 <li> Editor/toggle-fade-out-active
500 <li> Editor/toggle-follow-playhead
502 <li> Editor/toggle-internal-edit
504 <li> Editor/toggle-rhythm-ferret
506 <li> Editor/toggle-xfades-active
508 <li> Editor/toggle-xfades-visible
510 <li> Editor/toggle-zoom
512 <li> Editor/ToggleGeneric MIDISurface
514 <li> Editor/ToggleGeneric MIDISurfaceFeedback
516 <li> Editor/ToggleGeneric MIDISurfaceSubMenu
518 <li> Editor/ToggleMeasureVisibility
520 <li> Editor/ToggleWaveformsWhileRecording
522 <li> Editor/ToggleWaveformVisibility
524 <li> Editor/track-record-enable-toggle
526 <li> Editor/trim-back
528 <li> Editor/trim-from-start
530 <li> Editor/trim-front
532 <li> Editor/trim-to-end
538 <li> Editor/zoom-to-region
540 <li> Editor/zoom-to-region-both-axes
542 <li> Editor/zoom-to-session
544 <li> Editor/ZoomFocus
548 <li> JACK/JACKDisconnect
550 <li> JACK/JACKReconnect
552 <li> JACK/JACKLatency32
554 <li> JACK/JACKLatency64
556 <li> JACK/JACKLatency128
558 <li> JACK/JACKLatency256
560 <li> JACK/JACKLatency512
562 <li> JACK/JACKLatency1024
564 <li> JACK/JACKLatency2048
566 <li> JACK/JACKLatency4096
568 <li> JACK/JACKLatency8192
570 <li> Main/AddTrackBus
572 <li> Main/AudioFileFormat
574 <li> Main/AudioFileFormatData
576 <li> Main/AudioFileFormatHeader
578 <li> Main/CleanupUnused
580 <li> Main/FlushWastebasket
584 <li> Main/ControlSurfaces
588 <li> Main/ExportRangeMarkers
590 <li> Main/ExportSelection
592 <li> Main/ExportSession
596 <li> Main/KeyMouse Actions
600 <li> Main/MeteringFallOffRate
602 <li> Main/MeteringHoldTime
612 <li> Main/SaveTemplate
618 <li> Main/TransportOptions
622 <li> MouseMode/set-mouse-mode-gain
624 <li> MouseMode/set-mouse-mode-object
626 <li> MouseMode/set-mouse-mode-range
628 <li> MouseMode/set-mouse-mode-timefx
630 <li> MouseMode/set-mouse-mode-zoom
632 <li> options/DoNotRunPluginsWhileRecording
634 <li> options/FileDataFormat24bit
636 <li> options/FileDataFormatFloat
638 <li> options/FileHeaderFormatBWF
640 <li> options/FileHeaderFormatCAF
642 <li> options/FileHeaderFormatWAVE
644 <li> options/FileHeaderFormatWAVE64
646 <li> options/GainReduceFastTransport
648 <li> options/InputAutoConnectManual
650 <li> options/InputAutoConnectPhysical
652 <li> options/LatchedRecordEnable
654 <li> options/LatchedSolo
656 <li> options/MeterFalloffFast
658 <li> options/MeterFalloffFaster
660 <li> options/MeterFalloffFastest
662 <li> options/MeterFalloffMedium
664 <li> options/MeterFalloffOff
666 <li> options/MeterFalloffSlow
668 <li> options/MeterFalloffSlowest
670 <li> options/MeterHoldLong
672 <li> options/MeterHoldMedium
674 <li> options/MeterHoldOff
676 <li> options/MeterHoldShort
678 <li> options/OutputAutoConnectManual
680 <li> options/OutputAutoConnectMaster
682 <li> options/OutputAutoConnectPhysical
684 <li> options/RegionEquivalentsOverlap
690 <li> options/ShowSoloMutes
692 <li> options/SoloInPlace
694 <li> options/SoloViaBus
696 <li> options/StopPluginsWithTransport
698 <li> options/StopRecordingOnXrun
700 <li> options/StopTransportAtEndOfSession
702 <li> options/UseExternalMonitoring
704 <li> options/UseHardwareMonitoring
708 <li> options/UseSoftwareMonitoring
710 <li> options/VerifyRemoveLastCapture
712 <li> redirectmenu/activate
714 <li> redirectmenu/activate_all
716 <li> redirectmenu/clear
718 <li> redirectmenu/copy
720 <li> redirectmenu/cut
722 <li> redirectmenu/deactivate
724 <li> redirectmenu/deactivate_all
726 <li> redirectmenu/deselectall
728 <li> redirectmenu/edit
730 <li> redirectmenu/newinsert
732 <li> redirectmenu/newplugin
734 <li> redirectmenu/newsend
736 <li> redirectmenu/paste
738 <li> redirectmenu/rename
740 <li> redirectmenu/selectall
742 <li> RegionList/RegionListSort
744 <li> RegionList/RegionListSort
746 <li> RegionList/rlAudition
748 <li> RegionList/rlHide
750 <li> RegionList/rlRemove
752 <li> RegionList/rlShowAll
754 <li> RegionList/rlShowAuto
756 <li> RegionList/SortAscending
758 <li> RegionList/SortByRegionEndinFile
760 <li> RegionList/SortByRegionLength
762 <li> RegionList/SortByRegionName
764 <li> RegionList/SortByRegionPosition
766 <li> RegionList/SortByRegionStartinFile
768 <li> RegionList/SortByRegionTimestamp
770 <li> RegionList/SortBySourceFileCreationDate
772 <li> RegionList/SortBySourceFileLength
774 <li> RegionList/SortBySourceFileName
776 <li> RegionList/SortBySourceFilesystem
778 <li> RegionList/SortDescending
780 <li> ShuttleActions/SetShuttleUnitsPercentage
782 <li> ShuttleActions/SetShuttleUnitsSemitones
784 <li> Snap/snap-to-asixteenthbeat
786 <li> Snap/snap-to-bar
788 <li> Snap/snap-to-beat
790 <li> Snap/snap-to-cd-frame
792 <li> Snap/snap-to-edit-cursor
794 <li> Snap/snap-to-eighths
796 <li> Snap/snap-to-frame
798 <li> Snap/snap-to-mark
800 <li> Snap/snap-to-minutes
802 <li> Snap/snap-to-quarters
804 <li> Snap/snap-to-region-boundary
806 <li> Snap/snap-to-region-end
808 <li> Snap/snap-to-region-start
810 <li> Snap/snap-to-region-sync
812 <li> Snap/snap-to-seconds
814 <li> Snap/snap-to-smpte-frame
816 <li> Snap/snap-to-smpte-minutes
818 <li> Snap/snap-to-smpte-seconds
820 <li> Snap/snap-to-thirds
822 <li> Snap/snap-to-thirtyseconds
824 <li> Transport/focus-on-clock
826 <li> Transport/Forward
828 <li> Transport/GotoEnd
830 <li> Transport/GotoStart
832 <li> Transport/GotoZero
836 <li> Transport/PlaySelection
838 <li> Transport/Record
840 <li> Transport/record-roll
842 <li> Transport/Rewind
844 <li> Transport/ToggleAutoInput
846 <li> Transport/ToggleAutoPlay
848 <li> Transport/ToggleAutoReturn
850 <li> Transport/ToggleClick
852 <li> Transport/TogglePunchIn
854 <li> Transport/TogglePunchOut
856 <li> Transport/ToggleRoll
858 <li> Transport/ToggleRollForgetCapture
860 <li> Transport/ToggleRollMaybe
862 <li> Transport/ToggleTimeMaster
864 <li> Transport/ToggleVideoSync
866 <li> Transport/TransitionToReverse
868 <li> Transport/TransitionToRoll
870 <li> Zoom/zoom-focus-center
872 <li> Zoom/zoom-focus-edit
874 <li> Zoom/zoom-focus-left
876 <li> Zoom/zoom-focus-playhead
878 <li> Zoom/zoom-focus-right