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