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.
Snd | Rcv | OSC Address | Parameters | Description |
x | x | /play | play (Integer) | 1 -> start playing; 0 -> pause |
x | /togglePlaying | if playing then pause, if paused start playing | ||
x | x | /volume | volume (Double: [0...1]) | adjust the master volume level |
x | x | /speed | speed (Double: [0.1,…,2.0]) | change the playback speed |
x | x | /pitch | pitch_semitones (Integer: [-11…11] | change the pitch of the song |
x | /setSpeed_100 | set speed to 100% | ||
x | /setSpeed_75 | set speed to 75% | ||
x | /setSpeed_50 | set speed to 50% | ||
x | /setSpeed_25 | set speed to 25% | ||
x | /bpm | request the bpm to be sent | ||
x | /bpm | bpm (Double) | the current bpm | |
x | /songName | request the name of the current song | ||
x | /songName | song_name (String) | the name of the song | |
x | /key | request the Key of the current song | ||
x | /key | key (String) | The current song Key | |
x | /timeSig | request the Time Signature of the current song | ||
x | /timeSig |
numerator (Integer) denominator (Integer) |
the current Time Signature | |
x | /barBeat |
bar (Integer) beat (Integer) bpm (double) |
This message is automatically sent every time the beat changes. The 'bpm' is the instantaneous bpm |
|
x | /songInfo | request information on the current song; this information is returned as the /songInfo message below | ||
x | /songInfo |
song_name (String) |
||
x | /songLoaded | song_name (String) audio_filename (String) song_duration_secs (Double) |
sent when a song is loaded |
Stem Mixer
Snd | Rcv | OSC Address | Parameters | Description |
x | x | /stemMixerEnable | enable (Integer) | 0 to disable, 1 to enable the stem mixer; if stem files have not been previously saved, they will be generated |
x | x | /stemMixerNumTracks | num_tracks (Integer) | the number of tracks available in the mixer (2-6) |
x | x | /stemTrack#Volume | volume (Double: [0..1.5]) | # is the stem track number (1-6) to change the volume |
x | x | /stemTrack#Pan | pan (Double: [-1…1) | # is the stem track number (1-6) to change the pan amount |
x | x | /stemTrack#Mute | enable (Integer) | # is the stem track number (1-6) to mute |
x | x | /stemTrack#Solo | enable (Integer) | # is the stem track number (1-6) to solo |
x | x | /stemTrack#Name |
get the name of a stem track; (you can't set the name) # is the stem track number (1-6) |
|
x | x | /stemTrack#Params | request current state of a mixer track settings. In response, you will be sent a /stemTrackParams message (see below) | |
x | /stemTrackParams |
trackNum (Int) trackName(String) volume (Double: [0..1.5]) pan (Double: [-1…1) muteEnabled (Integer) soloEnabled (Integer) |
Song Sections
Snd | Rcv | OSC Address | Parameters | Description |
x | /allSections | this requests info on all sections | ||
x | /section | section_index(Integer) section_name(String) start_time (Double) end_time (Double) color (Integer) |
sent in response to /allSections | |
x | /allSectionsEnd | numSectionsSent(Integer) | sent in response to /allSections after all /section commands have been sent | |
x | /sectionChanged | section_index (Integer) section_name (String) |
sent when the playhead enters a different section |
Playlists
Snd | Rcv | OSC Address | Parameters | Description |
x | /playlistsGetAll | return all playlists; a /playlistFilename will be sent for each playlist followed by /playlistsGetAllEnd | ||
x | /playlistFilename | filename(String) | filename is the name of the playlist | |
x | /playlistsGetAllEnd | numPlaylistsSent (Integer) | ||
x | /playlistInfo | request information on the current playlist; in response /playlistInfo will be sent | ||
x | /playlistInfo | filename (String) name (String) description (String) num_songs (Integer) total_duration (Double) |
filename will be "" if no playlist loaded | |
x | /playlistSongs | request info for each song in current playlist; in response, /playlistSongInfo will be sent for each song in the playlist, followed by /playlistSongsEnd | ||
x | /playlistSongInfo | song_index (Integer) song_name (String) artist_name (String) album (String) audio_filename (String) |
||
x | /playlistSongsEnd | num_songs_sent (Integer) | ||
x | /playlistSongInfo | song_index (Integer) | request information on 'index'-th song at in the current playlist; in response, a /playlistSongInfo will be sent | |
x | /playlistLoaded | sent when a playlist is loaded | ||
x | /playlistSongsModified | sent when the current playlist is changed | ||
x | /playlistActiveSongChanged |
song_index (Integer) |
sent when a playlist song has been loaded | |
x | /playlistPlayNext | begin_playing (Integer/Boolean) | request to load and play the next song in the current playist | |
x | /playlistPlayPrev | begin_playing (Integer/Boolean) | request to load and play the previous song in the current playist | |
x | /playlistPlayIndex |
song_index(Integer) begin_playing (Integer/Boolean) |
request to load and play the 'song_index'-th song in the current playist | |
x | /playlistOpen | playlist_filename (String) | request to load a specific Song Master playlist |
Show Tracks and Panels
Snd | Rcv | OSC Address | Parameters | Description |
x | /showTimeSignatureTrack | show (Integer/Boolean) | ||
x | /showSectionTrack | show (Integer/Boolean) | ||
x | /showChordTrack | show (Integer/Boolean) | ||
x | /showNoteTrack | show (Integer/Boolean) | ||
x | /showExtControllerTrack | show (Integer/Boolean) | ||
x | /showBottomPanel | show (Integer/Boolean) | ||
x | /showSidePanel | show (Integer/Boolean) | ||
x | /dockSidePanel | show (Integer/Boolean) | ||
x | /showLyricTrack | show (Integer/Boolean) | ||
x | /showPiano | show (Integer/Boolean) | ||
x | /showWaveformView | |||
x | /showStemsView | |||
x | /showPitchView | |||
x | /showSongSheetView | |||
x | /showToolsPanel | show the Tools tab | ||
x | /showAnalyzersPanel | show the Analyzers tab | ||
x | /showSongSheetOptionsDialog | |||
x | /editSongInfo |
Playhead
Snd | Rcv | OSC Address | Parameters | Description |
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 | /playFromLastPos | jump back to the last position when play started | ||
x |
/playhead |
time (float in seconds) | Reposition the playhead to a designated time |
Looping
Snd | Rcv | OSC Address | Parameters | Description |
x | /loopEnable | enable (Integer/Boolean) | True/1 -> enable looping; False/0 -> disable looping | |
x | /loopSetToCurrentBar | enable (Integer/Boolean) | True/1 -> set looping current bar; False/0 -> disable looping | |
x | /loopSetToCurrentSection | enable (Integer/Boolean) | True/1 -> set looping to current section; False/0 -> disable looping | |
x | /loopSetToCurrentNote | enable (Integer/Boolean) | True/1 -> set looping to current Note and next Noter; 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 | /moveLoopLeft | Amount moved depends on settings in the Loop Control's At End tab | ||
x | /moveLoopRight | Amount moved depends on settings in the Loop Control's At End tab |
View
Snd | Rcv | OSC Address | Parameters | Description |
x | /zoomIn | zoom-in Time by a fixed amount | ||
x | /zoomOut | zoom-out Time by a fixed amount | ||
x | /zoomReset | |||
x | /scrollLeft | Scroll left | ||
x | /scrollRight | Scroll right | ||
x | /viewJumpScroll | Change view scrolling to jump scroll | ||
x | /viewCenterScroll | Change view scrolling to continuous scroll |
Other
Snd | Rcv | OSC Address | Parameters | Description |
x | /metronomeEnable | enable (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 | /countInEnable | enable (Integer/Boolean) | 0 to disable; 1 to enable | |
x | /phraseTrainerEnable | enable (Integer/Boolean) | 0 to disable; 1 to enable | |
x | /keyTrainerEnable | enable (Integer/Boolean) | 0 to disable; 1 to enable |