Skip to main content

OSC Command Reference

note

The Snd and Rcv columns indicate if an OSC Controller (application) can Send or Receive OSC commands from Song Master. For example, an OSC Controller can send an OSC Address of "/songName" to Song Master, Song Master will then respond by sending an OSC Address of "/songName", with a String parameter that contains the current song's name, back to the OSC Controller.

SndRcvOSC AddressParametersDescription
xx/playplay (Integer)1 -> start playing; 0 -> pause
x/togglePlayingif playing then pause, if paused start playing
xx/volumevolume (Double: [0...1])adjust the master volume level
xx/panpan (Double: [-1...1])adjust the master volume level
xx/songVolumesong volume (Double: [0...1])adjust the song volume level
xx/metroVolumemetronome volume (Double: [0...1])adjust the metronome volume level
xx/keybdVolumekeyboard volume (Double: [0...1])adjust the internal keyboard volume level
xx/speedspeed (Double: [0.1,…,2.0])change the playback speed
xx/pitchpitch_semitones (Integer: [-11…11])change the pitch of the song
x/setSpeed_100set speed to 100%
x/setSpeed_75set speed to 75%
x/setSpeed_50set speed to 50%
x/setSpeed_25set speed to 25%
x/bpmrequest the bpm to be sent
x/bpmbpm(Double)the current bpm
x/songNamerequest the name of the current song
x/songNamesong_name(String)the name of the song
x/keyrequest the Key of the current song
x/keykey(String)the current song Key
x/timeSigrequest the Time Signature of the current song
x/timeSigthe current Time Signature
x/barBeatbar(Integer), beat(Integer), bpm(Double)This message is automatically sent every time the beat changes. The 'bpm' is the instantaneous bpm
x/songInforequest information on the current song
x/songInfosong_name(String), album_name(String), artist_name(String), bpm(Double), key(String), timeSigNumerator(int), timeSigDenoinator(int)
x/songLoadedsong_name (String), audio_filename (String), song_duration_secs (Double)sent when a song is loaded

Stem Mixer

Stem Mixer Cmd
SndRcvOSC AddressParametersDescription
xx/stemMixerEnableenable (Integer)0 to disable, 1 to enable the stem mixer;if stem files have not been previously saved, they will be generated
xx/stemMixerNumTracksnum_tracks (Integer)the number of tracks available in the mixer (2-6)
xx/stemTrack#Volumevolume (Double: [0…2])# is the stem track number (1-6) to change the volume
xx/stemTrack#Panpan (Double: [-1…1])# is the stem track number (1-6) to change the pan amount
xx/stemTrack#Muteenable (Integer)# is the stem track number (1-6) to mute
xx/stemTrack#Soloenable (Integer)# is the stem track number (1-6) to solo
xx/stemTrack#Nameget the name of a stem track; (you can't set the name), # is the stem track number (1-6)
xx/stemTrack#Paramsrequest current state of a mixer track settings. In response, you will be sent a /stemTrackParams message (see below)
x/stemTrackParamstrackNum (Int), trackName (String), volume (Double: [0..1.5]), pan (Double: [-1…1]), muteEnabled (Integer), soloEnabled (Integer)state of a mixer track settings

Song Sections

Song Section Cmd
SndRcvOSC AddressParametersDescription
x/allSectionsthis requests info on all sections
x/sectionsection_index (Integer), section_name (String), start_time (Double), end_time (Double), color (Integer)sent in response to /allSections
x/allSectionsEndnumSectionsSent (Integer)sent in response to /allSections after all /section commands have been sent
xx/sectionChangedsection_index (Integer), section_name (String)sent when the playhead enters a different section

Playlists

Playlist Cmd
SndRcvOSC AddressParametersDescription
x/playlistsGetAllreturn all playlists; a /playlistFilename will be sent for each playlist followed by /playlistsGetAllEnd
x/playlistFilenamefilename (String)filename is the name of the playlist
x/playlistsGetAllEndnumPlaylistsSent (Integer)
x/playlistInforequest information on the current playlist; in response /playlistInfo will be sent
x/playlistInfofilename (String), name (String), description (String), num_songs (Integer), total_duration (Double)filename will be "" if no playlist loaded
x/playlistSongsrequest info for each song in current playlist; in response, /playlistSongInfo will be sent for each song in the playlist, followed by /playlistSongsEnd
x/playlistSongInfosong_index (Integer), song_name (String), artist_name (String), album (String), audio_filename (String)song info
x/playlistSongsEndnum_songs_sent (Integer)
x/playlistSongInfosong_index (Integer)request information on 'index'-th song at in the current playlist; in response, a /playlistSongInfo will be sent
x/playlistLoadedsent when a playlist is loaded
x/playlistSongsModifiedsent when the current playlist is changed
x/playlistActiveSongChangedsong_index (Integer), song_name (String), artist_name (String), album (String), audio_filename (String)sent when a playlist song has been loaded
x/playlistPlayNextbegin_playing (Integer/Boolean)request to load and play the next song in the current playist
x/playlistPlayPrevbegin_playing (Integer/Boolean)request to load and play the previous song in the current playlisy
x/playlistPlayIndexsong_index (Integer), begin_playing (Integer/Boolean)request to load and play the 'song_index'-th song in the current playist
x/playlistOpenplaylist_filename (String)request to load a specific Song Master playlist

Show Tracks and Panels

SndRcvOSC AddressParametersDescription
x/showTimeSignatureTrackshow (Integer/Boolean)
x/showSectionTrackshow (Integer/Boolean)
x/showChordTrackshow (Integer/Boolean)
x/showNoteTrackshow (Integer/Boolean)
x/showExtControllerTrackshow (Integer/Boolean)
x/showBottomPanelshow (Integer/Boolean)
x/showSidePanelshow (Integer/Boolean)
x/dockSidePanelshow (Integer/Boolean)
x/showLyricTrackshow (Integer/Boolean)
x/showPianoshow (Integer/Boolean)
x/showWaveformView
x/showStemsView
x/showPitchView
x/showSongSheetView
x/showToolsPanelshow the Tools tab
x/showAnalyzersPanelshow the Analyzers tab
x/showSongSheetOptionsDialog
x/editSongInfo

Playhead

SndRcvOSC AddressParametersDescription
x/gotoBeginningOfTrack
x/gotoEndOfTrack
x/gotoPrevBar
x/gotoNextBar
x/gotoPrevSection
x/gotoNextSection
x/gotoPrevNote
x/gotoNextNote
x/movePlayheadToPrevBeat
x/movePlayheadToNextBeat
x/movePlayheadToPrevNudge
x/movePlayheadToNextNudge
x/playFromLastPosjump back to the last position when play started
xx/playheadtime (float in seconds)Reposition the playhead to a designated time

Looping

Looping Cmd
SndRcvOSC AddressParametersDescription
x/loopEnableenable (Integer/Boolean)True/1 -> enable looping; False/0 -> disable looping
x/loopSetToCurrentBarenable (Integer/Boolean)True/1 -> set looping current bar; False/0 -> disable looping
x/loopSetToCurrentSectionenable (Integer/Boolean)True/1 -> set looping to current section; False/0 -> disable looping
x/loopSetToCurrentNoteenable (Integer/Boolean)True/1 -> set looping to current Note and next Note; False/0 -> disable looping
x/extendLoopNextSection
x/extendLoopPrevSection
x/extendLoopPrevNote
x/extendLoopNextNote
x/extendLoopNextBar
x/extendLoopPrevBar
x/extendLoopNextBeat
x/extendLoopPrevBeat
x/extendLoopNextNudge
x/extendLoopPrevNudge
x/reduceLoopNextSection
x/reduceLoopPrevSection
x/reduceLoopPrevNote
x/reduceLoopNextNote
x/reduceLoopNextBar
x/reduceLoopPrevBar
x/reduceLoopNextBeat
x/reduceLoopPrevBeat
x/reduceLoopNextNudge
x/reduceLoopPrevNudge
x/moveLoopOneBarLeft
x/moveLoopOneBarRight
x/moveLoopLeftAmount moved depends on settings in the Loop Control's At End tab
x/moveLoopRightAmount moved depends on settings in the Loop Control's At End tab

View

SndRcvOSC AddressParametersDescription
x/zoomInzoom-in Time by a fixed amount
x/zoomOutzoom-out Time by a fixed amount
x/zoomReset
x/scrollLeftScroll left
x/scrollRightScroll right
x/viewJumpScrollChange view scrolling to jump scroll
x/viewCenterScrollChange view scrolling to continuous scroll

Other

SndRcvOSC AddressParametersDescription
x/metronomeEnableenable (Integer/Boolean)True/1 -> enable; False/0 -> disable
x/spacebarActionToggle
x/halveBPM
x/doubleBPM
x/shiftLeftBeats
x/shiftRightBeats
x/sectionTrackTidyMarkers
x/sectionTrackDeleteAll
x/chordTrackTidyMarkers
x/chordTrackDeleteAll
x/insertNoteAtPlayhead
x/showAudioSettings
x/showAboutWindow
x/showAppSettings
x/showUserGuide
x/computeBeats
x/computeChords
x/computeKey
x/computeSections
x/countInEnableenable (Integer/Boolean)0 to disable; 1 to enable
x/phraseTrainerEnableenable (Integer/Boolean)0 to disable; 1 to enable
x/keyTrainerEnableenable (Integer/Boolean)0 to disable; 1 to enable
x/windowToFrontThis will attempt to bring Song Master to the top of all windows. This may not work on all OS versions since they may prevent windows from doing this to minimize annoying popups.