Tool tree
gradeNot graded
get_audio_graph_stateAnswer
Returns the complete current state of the Mysynote synth graph: every module, its type, position, parameter values, lock states, all cable connections, the sequencer pattern, and transport state. Call this before making any changes so you never operate on stale information.
View tool JSON
{
"name": "get_audio_graph_state",
"kind": "answer",
"impl": "imperative",
"description": "Returns the complete current state of the Mysynote synth graph: every module, its type, position, parameter values, lock states, all cable connections, the sequencer pattern, and transport state. Call this before making any changes so you never operate on stale information.",
"inputSchema": {
"type": "object",
"properties": {}
}
}spawn_moduleAction
Creates a new synth module (oscillator, filter, lfo, distortion, delay, reverb, or gain) at a given canvas position, wires up its real Web Audio node, and animates its appearance.
View tool JSON
{
"name": "spawn_module",
"kind": "act",
"impl": "imperative",
"description": "Creates a new synth module (oscillator, filter, lfo, distortion, delay, reverb, or gain) at a given canvas position, wires up its real Web Audio node, and animates its appearance.",
"inputSchema": {
"type": "object",
"properties": {
"moduleType": {
"type": "string",
"enum": [
"oscillator",
"filter",
"lfo",
"distortion",
"delay",
"reverb",
"gain"
]
},
"positionX": {
"type": "number"
},
"positionY": {
"type": "number"
}
},
"required": [
"moduleType",
"positionX",
"positionY"
]
}
}remove_moduleAction
Deletes a module and any cables connected to it.
View tool JSON
{
"name": "remove_module",
"kind": "act",
"impl": "imperative",
"description": "Deletes a module and any cables connected to it.",
"inputSchema": {
"type": "object",
"properties": {
"moduleId": {
"type": "string"
}
},
"required": [
"moduleId"
]
}
}patch_cableAction
Connects one module's output port to another module's input port, updating both the visual graph and the real Web Audio routing. Some inputs are modulation targets (e.g. a filter's "cutoff" input) rather than audio-signal inputs — check get_audio_graph_state for each module's inputs.
View tool JSON
{
"name": "patch_cable",
"kind": "act",
"impl": "imperative",
"description": "Connects one module's output port to another module's input port, updating both the visual graph and the real Web Audio routing. Some inputs are modulation targets (e.g. a filter's \"cutoff\" input) rather than audio-signal inputs — check get_audio_graph_state for each module's inputs.",
"inputSchema": {
"type": "object",
"properties": {
"sourceModuleId": {
"type": "string"
},
"sourceOutput": {
"type": "string"
},
"targetModuleId": {
"type": "string"
},
"targetInput": {
"type": "string"
}
},
"required": [
"sourceModuleId",
"sourceOutput",
"targetModuleId",
"targetInput"
]
}
}remove_cableAction
Removes a single cable connection by its id.
View tool JSON
{
"name": "remove_cable",
"kind": "act",
"impl": "imperative",
"description": "Removes a single cable connection by its id.",
"inputSchema": {
"type": "object",
"properties": {
"connectionId": {
"type": "string"
}
},
"required": [
"connectionId"
]
}
}set_module_paramAction
Sets a parameter on a module (e.g. filter cutoff, oscillator frequency). Fails with PARAMETER_LOCKED if the human has locked that parameter — the agent must not bypass this and should find another route to its goal. Values are clamped to the parameter's valid range. Value may be a number or a string, depending on the parameter (e.g. waveform names are strings).
View tool JSON
{
"name": "set_module_param",
"kind": "act",
"impl": "imperative",
"description": "Sets a parameter on a module (e.g. filter cutoff, oscillator frequency). Fails with PARAMETER_LOCKED if the human has locked that parameter — the agent must not bypass this and should find another route to its goal. Values are clamped to the parameter's valid range. Value may be a number or a string, depending on the parameter (e.g. waveform names are strings).",
"inputSchema": {
"type": "object",
"properties": {
"moduleId": {
"type": "string"
},
"paramName": {
"type": "string"
},
"value": {
"type": "string",
"description": "A number (e.g. \"440\") or a string enum value (e.g. \"sawtooth\")."
}
},
"required": [
"moduleId",
"paramName",
"value"
]
}
}lock_parameterAction
Locks a parameter so the agent cannot modify it until unlocked. Typically invoked by the human, but exposed so the agent can confirm a lock state change requested in conversation.
View tool JSON
{
"name": "lock_parameter",
"kind": "act",
"impl": "imperative",
"description": "Locks a parameter so the agent cannot modify it until unlocked. Typically invoked by the human, but exposed so the agent can confirm a lock state change requested in conversation.",
"inputSchema": {
"type": "object",
"properties": {
"moduleId": {
"type": "string"
},
"paramName": {
"type": "string"
}
},
"required": [
"moduleId",
"paramName"
]
}
}unlock_parameterAction
Unlocks a previously locked parameter. Fails with LOCK_OWNED_BY_HUMAN if a human locked it — that lock can only be cleared from the UI, never by the agent.
View tool JSON
{
"name": "unlock_parameter",
"kind": "act",
"impl": "imperative",
"description": "Unlocks a previously locked parameter. Fails with LOCK_OWNED_BY_HUMAN if a human locked it — that lock can only be cleared from the UI, never by the agent.",
"inputSchema": {
"type": "object",
"properties": {
"moduleId": {
"type": "string"
},
"paramName": {
"type": "string"
}
},
"required": [
"moduleId",
"paramName"
]
}
}get_spectrum_analysisAnswer
Returns a real-time quantitative snapshot of the current audio output from the actual AnalyserNode: peak frequency, low/mid/high band energy (0-1), peak amplitude, and whether the signal is clipping. Use this to verify how a change actually affected the sound.
View tool JSON
{
"name": "get_spectrum_analysis",
"kind": "answer",
"impl": "imperative",
"description": "Returns a real-time quantitative snapshot of the current audio output from the actual AnalyserNode: peak frequency, low/mid/high band energy (0-1), peak amplitude, and whether the signal is clipping. Use this to verify how a change actually affected the sound.",
"inputSchema": {
"type": "object",
"properties": {}
}
}get_sequencer_stateAnswer
Returns the current 8-step sequencer pattern, tempo, and transport state.
View tool JSON
{
"name": "get_sequencer_state",
"kind": "answer",
"impl": "imperative",
"description": "Returns the current 8-step sequencer pattern, tempo, and transport state.",
"inputSchema": {
"type": "object",
"properties": {}
}
}set_sequencer_stepAction
Edits a single step of the 8-step sequence (note, octave, velocity, active).
View tool JSON
{
"name": "set_sequencer_step",
"kind": "act",
"impl": "imperative",
"description": "Edits a single step of the 8-step sequence (note, octave, velocity, active).",
"inputSchema": {
"type": "object",
"properties": {
"index": {
"type": "number"
},
"note": {
"type": "string"
},
"octave": {
"type": "number"
},
"velocity": {
"type": "number"
},
"active": {
"type": "boolean"
}
},
"required": [
"index"
]
}
}clear_graphAction
Removes all modules and cables. Use sparingly — mainly for starting over on explicit human request.
View tool JSON
{
"name": "clear_graph",
"kind": "act",
"impl": "imperative",
"description": "Removes all modules and cables. Use sparingly — mainly for starting over on explicit human request.",
"inputSchema": {
"type": "object",
"properties": {}
}
}