Tool tree
gradeNot graded
get_songAnswer
Read the whole song: tempo, swing, playback state, and every track with its 16-step pattern ("." rest, "x" hit, "X" accent) and notes for melodic tracks. Call this first, and again after edits to verify.
View tool JSON
{
"name": "get_song",
"kind": "answer",
"impl": "imperative",
"description": "Read the whole song: tempo, swing, playback state, and every track with its 16-step pattern (\".\" rest, \"x\" hit, \"X\" accent) and notes for melodic tracks. Call this first, and again after edits to verify.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/sidejam/"
}set_patternAction
Replace a track's 16-step pattern. "." = rest, "x" = hit, "X" = accented hit. Example: "X...x...X...x..." is four-on-the-floor. Spaces and | are ignored, so "X.x. x.x. | X.x. x.x." also works. On melodic tracks existing pitches are kept; use set_notes to choose pitches.
View tool JSON
{
"name": "set_pattern",
"kind": "act",
"impl": "imperative",
"description": "Replace a track's 16-step pattern. \".\" = rest, \"x\" = hit, \"X\" = accented hit. Example: \"X...x...X...x...\" is four-on-the-floor. Spaces and | are ignored, so \"X.x. x.x. | X.x. x.x.\" also works. On melodic tracks existing pitches are kept; use set_notes to choose pitches.",
"inputSchema": {
"type": "object",
"properties": {
"track": {
"type": "string",
"description": "Track id (\"t1\"), name (\"Bass\"), or instrument (\"kick\") — see get_song."
},
"pattern": {
"type": "string",
"description": "16 steps of . x X",
"minLength": 16
}
},
"required": [
"track",
"pattern"
],
"additionalProperties": false
},
"page": "/sidejam/"
}set_notesAction
Write pitched notes on a bass or lead track. Each entry places a note at a step (0-15); note: null clears that step. Notes use scientific pitch ("C2", "F#3", "Bb1"). Bass range C1..C4, lead range C3..C6 (out-of-range notes are clamped).
View tool JSON
{
"name": "set_notes",
"kind": "act",
"impl": "imperative",
"description": "Write pitched notes on a bass or lead track. Each entry places a note at a step (0-15); note: null clears that step. Notes use scientific pitch (\"C2\", \"F#3\", \"Bb1\"). Bass range C1..C4, lead range C3..C6 (out-of-range notes are clamped).",
"inputSchema": {
"type": "object",
"properties": {
"track": {
"type": "string",
"description": "Track id (\"t1\"), name (\"Bass\"), or instrument (\"kick\") — see get_song."
},
"notes": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"properties": {
"step": {
"type": "integer",
"minimum": 0,
"maximum": 15
},
"note": {
"type": [
"string",
"null"
],
"description": "e.g. \"C2\"; null clears the step"
},
"accent": {
"type": "boolean"
}
},
"required": [
"step",
"note"
],
"additionalProperties": false
}
}
},
"required": [
"track",
"notes"
],
"additionalProperties": false
},
"page": "/sidejam/"
}set_tempoAction
Set tempo (bpm 40-220) and/or swing (0-60 percent shift of off-beat 16ths).
View tool JSON
{
"name": "set_tempo",
"kind": "act",
"impl": "imperative",
"description": "Set tempo (bpm 40-220) and/or swing (0-60 percent shift of off-beat 16ths).",
"inputSchema": {
"type": "object",
"properties": {
"bpm": {
"type": "number",
"minimum": 40,
"maximum": 220
},
"swing": {
"type": "number",
"minimum": 0,
"maximum": 60
}
},
"additionalProperties": false
},
"page": "/sidejam/"
}set_trackAction
Mix a track: volume (0-100), mute (true/false), and/or rename it.
View tool JSON
{
"name": "set_track",
"kind": "act",
"impl": "imperative",
"description": "Mix a track: volume (0-100), mute (true/false), and/or rename it.",
"inputSchema": {
"type": "object",
"properties": {
"track": {
"type": "string",
"description": "Track id (\"t1\"), name (\"Bass\"), or instrument (\"kick\") — see get_song."
},
"volume": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"mute": {
"type": "boolean"
},
"name": {
"type": "string",
"maxLength": 24
}
},
"required": [
"track"
],
"additionalProperties": false
},
"page": "/sidejam/"
}add_trackAction
Add an instrument track (current: 4/8). Drums: kick, snare, hihat, clap. Melodic: bass, lead. New tracks start empty — follow up with set_pattern or set_notes.
View tool JSON
{
"name": "add_track",
"kind": "act",
"impl": "imperative",
"description": "Add an instrument track (current: 4/8). Drums: kick, snare, hihat, clap. Melodic: bass, lead. New tracks start empty — follow up with set_pattern or set_notes.",
"inputSchema": {
"type": "object",
"properties": {
"instrument": {
"type": "string",
"enum": [
"kick",
"snare",
"hihat",
"clap",
"bass",
"lead"
]
},
"name": {
"type": "string",
"maxLength": 24
}
},
"required": [
"instrument"
],
"additionalProperties": false
},
"page": "/sidejam/"
}clear_trackAction
Erase every step on one track. Asks the person at the keyboard to approve first.
View tool JSON
{
"name": "clear_track",
"kind": "act",
"impl": "imperative",
"description": "Erase every step on one track. Asks the person at the keyboard to approve first.",
"inputSchema": {
"type": "object",
"properties": {
"track": {
"type": "string",
"description": "Track id (\"t1\"), name (\"Bass\"), or instrument (\"kick\") — see get_song."
}
},
"required": [
"track"
],
"additionalProperties": false
},
"page": "/sidejam/"
}remove_trackAction
Delete a track and its pattern. Asks the person at the keyboard to approve first.
View tool JSON
{
"name": "remove_track",
"kind": "act",
"impl": "imperative",
"description": "Delete a track and its pattern. Asks the person at the keyboard to approve first.",
"inputSchema": {
"type": "object",
"properties": {
"track": {
"type": "string",
"description": "Track id (\"t1\"), name (\"Bass\"), or instrument (\"kick\") — see get_song."
}
},
"required": [
"track"
],
"additionalProperties": false
},
"page": "/sidejam/"
}playAction
Start looping the song out loud so the human can hear it. (You cannot hear it — ask them how it sounds.)
View tool JSON
{
"name": "play",
"kind": "act",
"impl": "imperative",
"description": "Start looping the song out loud so the human can hear it. (You cannot hear it — ask them how it sounds.)",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/sidejam/"
}