Controlling Ardour with OSC

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.

Connecting to Ardour via OSC

OSC support is not enabled by default, but can be turned on from the Options menu. Once enabled, Ardour will listen on port 3819 by default. This port number can be changed by editing ~/.ardour2/ardour.rc and adding this line within the <Config> section:

  <Option name="osc-port" value="YourChoiceHere"/>

Transport Control

/ardour/transport_stop
/ardour/transport_play
/ardour/set_transport_speed [transport_speed]
where [transport_speed] is a float rangin from -8 to 8.
/ardour/ffwd
/ardour/rewind
/ardour/goto_start
/ardour/goto_end
/ardour/add_marker
(adds marker to the current transport position)
/ardour/next_marker
/ardour/prev_marker
/ardour/locate [sample_pos] [with_roll]
where [sample_pos] is the target position and [with_roll] is a bool/integer (whether you want transport to be kept rolling or not).
/ardour/loop_toggle

Editing-related

/ardour/undo
/ardour/redo
/ardour/save_state
(this is regular Session _> Save operatio)

Recording control

/ardour/toggle_punch_in
/ardour/toggle_punch_out
/ardour/rec_enable_toggle
/ardour/toggle_all_rec_enables
(toggles all tracks recording state). !currently toggles on but not off for 2.0 branch.

Track specific operations

For each of the following, [remote_id] is the remote_id or the track

/ardour/routes/mute [remote_id] [mute_st]
where [mute_st] is a bool/int representing the desired mute state of the track
/ardour/routes/solo [remote_id] [solo_st]
where [solo_st] is a bool/int representing the desired solo state of the track
/ardour/routes/recenable [remote_id] [rec_st]
where [rec_st] is a bool/int representing the desired rec state of the track
/ardour/routes/gainabs [remote_id] [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 [remote_id] [gain_db]
where [gain_db] is a float ranging from -400 to 6 representing the desired gain of the track in dB.
/ardour/routes/send/gain [remote_id] [send-number] [gain_db]
where [send-number] is an integer identifying the send to be adjusted (starting a 1) and [gain_db] is a float ranging from -400 to 6 representing the desired gain of the track in dB.

Menu actions

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]

The list below shows all available values of [action-name] as of
mid-March 2010 for Ardour 2.X. You can get the current list at any
time by running Ardour with the -b flag.

  • Common/About
  • Common/goto-editor
  • Common/Quit
  • Common/Save
  • Common/toggle-editor-mixer-on-top
  • Common/ToggleBigClock
  • Common/ToggleColorManager
  • Common/ToggleInspector
  • Common/ToggleKeyEditor
  • Common/ToggleLocations
  • Common/ToggleMaximalEditor
  • Common/ToggleOptionsEditor
  • Editor/add-location-from-playhead
  • Editor/addExistingAudioFiles
  • Editor/align-regions-end
  • Editor/align-regions-start
  • Editor/align-regions-start-relative
  • Editor/align-regions-sync
  • Editor/align-regions-sync-relative
  • Editor/audition-at-mouse
  • Editor/Autoconnect
  • Editor/boost-region-gain
  • Editor/brush-at-mouse
  • Editor/center-edit-cursor
  • Editor/center-playhead
  • Editor/crop
  • Editor/Crossfades
  • Editor/CrossfadesFull
  • Editor/CrossfadesShort
  • Editor/cut-region-gain
  • Editor/cycle-edit-point
  • Editor/cycle-edit-point-with-marker
  • Editor/cycle-snap-choice
  • Editor/cycle-snap-mode
  • Editor/duplicate-region
  • Editor/Edit
  • Editor/edit-cursor-to-next-region-sync
  • Editor/edit-cursor-to-previous-region-start
  • Editor/edit-cursor-to-previous-region-sync
  • Editor/edit-cursor-to-range-end
  • Editor/edit-cursor-to-range-start
  • Editor/edit-to-playhead
  • Editor/EditCursorMovementOptions
  • Editor/editor-copy
  • Editor/editor-cut
  • Editor/editor-delete
  • Editor/editor-paste
  • Editor/EditSelectRangeOptions
  • Editor/EditSelectRegionOptions
  • Editor/export-region
  • Editor/extend-range-to-end-of-region
  • Editor/extend-range-to-start-of-region
  • Editor/finish-add-range
  • Editor/finish-range
  • Editor/fit-tracks
  • Editor/goto-mark-1
  • Editor/goto-mark-2
  • Editor/goto-mark-3
  • Editor/goto-mark-4
  • Editor/goto-mark-5
  • Editor/goto-mark-6
  • Editor/goto-mark-7
  • Editor/goto-mark-8
  • Editor/goto-mark-9
  • Editor/goto-visual-state-1
  • Editor/goto-visual-state-2
  • Editor/goto-visual-state-3
  • Editor/goto-visual-state-4
  • Editor/goto-visual-state-5
  • Editor/goto-visual-state-6
  • Editor/goto-visual-state-7
  • Editor/goto-visual-state-8
  • Editor/goto-visual-state-9
  • Editor/goto-visual-state-10
  • Editor/goto-visual-state-11
  • Editor/goto-visual-state-12
  • Editor/insert-region
  • Editor/insert-time
  • Editor/invert-selection
  • Editor/jump-backward-to-mark
  • Editor/jump-forward-to-mark
  • Editor/LayerAddHigher
  • Editor/Layering
  • Editor/LayerLaterHigher
  • Editor/LayerMoveAddHigher
  • Editor/MeterFalloff
  • Editor/MeterHold
  • Editor/Monitoring
  • Editor/move-selected-tracks-down
  • Editor/move-selected-tracks-up
  • Editor/multi-duplicate-region
  • Editor/mute-unmute-region
  • Editor/naturalize-region
  • Editor/normalize-region
  • Editor/nudge-backward
  • Editor/nudge-forward
  • Editor/nudge-next-backward
  • Editor/nudge-next-forward
  • Editor/nudge-playhead-backward
  • Editor/nudge-playhead-forward
  • Editor/pitch-[Shift]-region
  • Editor/pitch-shift-region
  • Editor/play-edit-range
  • Editor/play-from-edit-point-and-return
  • Editor/play-selected-regions
  • Editor/playhead-backward-to-grid
  • Editor/playhead-forward-to-grid
  • Editor/playhead-to-edit
  • Editor/playhead-to-next-region-boundary
  • Editor/playhead-to-next-region-boundary-noselection
  • Editor/playhead-to-next-region-sync
  • Editor/playhead-to-next-region-sync
  • Editor/playhead-to-previous-region-boundary
  • Editor/playhead-to-previous-region-boundary-noselection
  • Editor/playhead-to-previous-region-sync
  • Editor/playhead-to-range-end
  • Editor/playhead-to-range-start
  • Editor/PullupMinus1
  • Editor/PullupMinus4
  • Editor/PullupMinus4Minus1
  • Editor/PullupMinus4Plus1
  • Editor/PullupNone
  • Editor/PullupPlus1
  • Editor/PullupPlus4
  • Editor/PullupPlus4Minus1
  • Editor/PullupPlus4Plus1
  • Editor/redo
  • Editor/RegionEditOps
  • Editor/remove-last-capture
  • Editor/reverse-region
  • Editor/save-visual-state-1
  • Editor/save-visual-state-2
  • Editor/save-visual-state-3
  • Editor/save-visual-state-4
  • Editor/save-visual-state-5
  • Editor/save-visual-state-6
  • Editor/save-visual-state-7
  • Editor/save-visual-state-8
  • Editor/save-visual-state-9
  • Editor/save-visual-state-10
  • Editor/save-visual-state-11
  • Editor/save-visual-state-12
  • Editor/scroll-tracks-down
  • Editor/scroll-tracks-up
  • Editor/select-all
  • Editor/select-all-after-edit-cursor
  • Editor/select-all-after-playhead
  • Editor/select-all-before-edit-cursor
  • Editor/select-all-before-playhead
  • Editor/select-all-between-cursors
  • Editor/select-all-in-loop-range
  • Editor/select-all-in-punch-range
  • Editor/select-all-within-cursors
  • Editor/select-next-route
  • Editor/select-prev-route
  • Editor/select-range-between-cursors
  • Editor/selected-marker-to-next-region-boundary
  • Editor/selected-marker-to-previous-region-boundary
  • Editor/separate
  • Editor/set-edit-point
  • Editor/set-fade-in-length
  • Editor/set-fade-out-length
  • Editor/set-loop-from-edit-range
  • Editor/set-loop-from-region
  • Editor/set-playhead
  • Editor/set-punch-from-edit-range
  • Editor/set-punch-from-region
  • Editor/set-region-sync-position
  • Editor/set-tempo-from-edit-range
  • Editor/set-tempo-from-region
  • Editor/show-editor-mixer
  • Editor/Smpte24
  • Editor/Smpte25
  • Editor/Smpte30
  • Editor/Smpte30drop
  • Editor/Smpte60
  • Editor/Smpte2997
  • Editor/Smpte5994
  • Editor/Smpte2997drop
  • Editor/Smpte23976
  • Editor/Smpte24976
  • Editor/snap-magnetic
  • Editor/snap-normal
  • Editor/SnapMode
  • Editor/SnapTo
  • Editor/Solo
  • Editor/split-region
  • Editor/start-range
  • Editor/step-tracks-down
  • Editor/step-tracks-up
  • Editor/Subframes
  • Editor/Subframes100
  • Editor/Subframes80
  • Editor/tab-to-transient-backwards
  • Editor/tab-to-transient-forwards
  • Editor/temporal-zoom-in
  • Editor/temporal-zoom-out
  • Editor/Timecode
  • Editor/toggle-auto-xfades
  • Editor/toggle-edit-mode
  • Editor/toggle-fade-out-active
  • Editor/toggle-fade-out-active
  • Editor/toggle-follow-playhead
  • Editor/toggle-internal-edit
  • Editor/toggle-rhythm-ferret
  • Editor/toggle-xfades-active
  • Editor/toggle-xfades-visible
  • Editor/toggle-zoom
  • Editor/ToggleGeneric MIDISurface
  • Editor/ToggleGeneric MIDISurfaceFeedback
  • Editor/ToggleGeneric MIDISurfaceSubMenu
  • Editor/ToggleMeasureVisibility
  • Editor/ToggleWaveformsWhileRecording
  • Editor/ToggleWaveformVisibility
  • Editor/track-record-enable-toggle
  • Editor/trim-back
  • Editor/trim-from-start
  • Editor/trim-front
  • Editor/trim-to-end
  • Editor/undo
  • Editor/View
  • Editor/zoom-to-region
  • Editor/zoom-to-region-both-axes
  • Editor/zoom-to-session
  • Editor/ZoomFocus
  • JACK/JACK
  • JACK/JACKDisconnect
  • JACK/JACKReconnect
  • JACK/JACKLatency32
  • JACK/JACKLatency64
  • JACK/JACKLatency128
  • JACK/JACKLatency256
  • JACK/JACKLatency512
  • JACK/JACKLatency1024
  • JACK/JACKLatency2048
  • JACK/JACKLatency4096
  • JACK/JACKLatency8192
  • Main/AddTrackBus
  • Main/AudioFileFormat
  • Main/AudioFileFormatData
  • Main/AudioFileFormatHeader
  • Main/CleanupUnused
  • Main/FlushWastebasket
  • Main/Close
  • Main/ControlSurfaces
  • Main/Export
  • Main/ExportRangeMarkers
  • Main/ExportSelection
  • Main/ExportSession
  • Main/Help
  • Main/KeyMouse Actions
  • Main/Metering
  • Main/MeteringFallOffRate
  • Main/MeteringHoldTime
  • Main/New
  • Main/Open
  • Main/Options
  • Main/Recent
  • Main/SaveTemplate
  • Main/Session
  • Main/Snapshot
  • Main/TransportOptions
  • Main/Windows
  • MouseMode/set-mouse-mode-gain
  • MouseMode/set-mouse-mode-object
  • MouseMode/set-mouse-mode-range
  • MouseMode/set-mouse-mode-timefx
  • MouseMode/set-mouse-mode-zoom
  • options/DoNotRunPluginsWhileRecording
  • options/FileDataFormat24bit
  • options/FileDataFormatFloat
  • options/FileHeaderFormatBWF
  • options/FileHeaderFormatCAF
  • options/FileHeaderFormatWAVE
  • options/FileHeaderFormatWAVE64
  • options/GainReduceFastTransport
  • options/InputAutoConnectManual
  • options/InputAutoConnectPhysical
  • options/LatchedRecordEnable
  • options/LatchedSolo
  • options/MeterFalloffFast
  • options/MeterFalloffFaster
  • options/MeterFalloffFastest
  • options/MeterFalloffMedium
  • options/MeterFalloffOff
  • options/MeterFalloffSlow
  • options/MeterFalloffSlowest
  • options/MeterHoldLong
  • options/MeterHoldMedium
  • options/MeterHoldOff
  • options/MeterHoldShort
  • options/OutputAutoConnectManual
  • options/OutputAutoConnectMaster
  • options/OutputAutoConnectPhysical
  • options/RegionEquivalentsOverlap
  • options/SendMMC
  • options/SendMTC
  • options/ShowSoloMutes
  • options/SoloInPlace
  • options/SoloViaBus
  • options/StopPluginsWithTransport
  • options/StopRecordingOnXrun
  • options/StopTransportAtEndOfSession
  • options/UseExternalMonitoring
  • options/UseHardwareMonitoring
  • options/UseMMC
  • options/UseSoftwareMonitoring
  • options/VerifyRemoveLastCapture
  • redirectmenu/activate
  • redirectmenu/activate_all
  • redirectmenu/clear
  • redirectmenu/copy
  • redirectmenu/cut
  • redirectmenu/deactivate
  • redirectmenu/deactivate_all
  • redirectmenu/deselectall
  • redirectmenu/edit
  • redirectmenu/newinsert
  • redirectmenu/newplugin
  • redirectmenu/newsend
  • redirectmenu/paste
  • redirectmenu/rename
  • redirectmenu/selectall
  • RegionList/RegionListSort
  • RegionList/RegionListSort
  • RegionList/rlAudition
  • RegionList/rlHide
  • RegionList/rlRemove
  • RegionList/rlShowAll
  • RegionList/rlShowAuto
  • RegionList/SortAscending
  • RegionList/SortByRegionEndinFile
  • RegionList/SortByRegionLength
  • RegionList/SortByRegionName
  • RegionList/SortByRegionPosition
  • RegionList/SortByRegionStartinFile
  • RegionList/SortByRegionTimestamp
  • RegionList/SortBySourceFileCreationDate
  • RegionList/SortBySourceFileLength
  • RegionList/SortBySourceFileName
  • RegionList/SortBySourceFilesystem
  • RegionList/SortDescending
  • ShuttleActions/SetShuttleUnitsPercentage
  • ShuttleActions/SetShuttleUnitsSemitones
  • Snap/snap-to-asixteenthbeat
  • Snap/snap-to-bar
  • Snap/snap-to-beat
  • Snap/snap-to-cd-frame
  • Snap/snap-to-edit-cursor
  • Snap/snap-to-eighths
  • Snap/snap-to-frame
  • Snap/snap-to-mark
  • Snap/snap-to-minutes
  • Snap/snap-to-quarters
  • Snap/snap-to-region-boundary
  • Snap/snap-to-region-end
  • Snap/snap-to-region-start
  • Snap/snap-to-region-sync
  • Snap/snap-to-seconds
  • Snap/snap-to-smpte-frame
  • Snap/snap-to-smpte-minutes
  • Snap/snap-to-smpte-seconds
  • Snap/snap-to-thirds
  • Snap/snap-to-thirtyseconds
  • Transport/focus-on-clock
  • Transport/Forward
  • Transport/GotoEnd
  • Transport/GotoStart
  • Transport/GotoZero
  • Transport/Loop
  • Transport/PlaySelection
  • Transport/Record
  • Transport/record-roll
  • Transport/Rewind
  • Transport/ToggleAutoInput
  • Transport/ToggleAutoPlay
  • Transport/ToggleAutoReturn
  • Transport/ToggleClick
  • Transport/TogglePunchIn
  • Transport/TogglePunchOut
  • Transport/ToggleRoll
  • Transport/ToggleRollForgetCapture
  • Transport/ToggleRollMaybe
  • Transport/ToggleTimeMaster
  • Transport/ToggleVideoSync
  • Transport/TransitionToReverse
  • Transport/TransitionToRoll
  • Zoom/zoom-focus-center
  • Zoom/zoom-focus-edit
  • Zoom/zoom-focus-left
  • Zoom/zoom-focus-playhead
  • Zoom/zoom-focus-right