Tool tree
web-harmonium
Implementation
gradeNot graded
gradeNot graded
play_noteAction
Play one harmonium reed on the visible 39-key keyboard: it sounds and the key lights up. Requires the human to have tapped 'Tap to start' for audio.
View tool JSON
{
"name": "play_note",
"kind": "act",
"impl": "imperative",
"description": "Play one harmonium reed on the visible 39-key keyboard: it sounds and the key lights up. Requires the human to have tapped 'Tap to start' for audio.",
"inputSchema": {
"type": "object",
"properties": {
"key": {
"type": "integer",
"minimum": 0,
"maximum": 38,
"description": "Key index 0-38 (key 0 = C3, key 12 = C4 = Sa when Sa is C). Required unless note is given."
},
"note": {
"type": "string",
"enum": [
"Sa",
"komal Re",
"Re",
"komal Ga",
"Ga",
"Ma",
"tivra Ma",
"Pa",
"komal Dha",
"Dha",
"komal Ni",
"Ni"
],
"description": "Sargam name relative to current Sa, e.g. 'Sa'. Used only when key is absent."
},
"dur": {
"type": "number",
"minimum": 0.1,
"maximum": 10,
"description": "Seconds to hold the reed, from 0.1 to 10. Omit it to use 2 seconds."
}
},
"anyOf": [
{
"required": [
"key"
]
},
{
"required": [
"note"
]
}
]
}
}play_scoreAction
Play a timed score on the visible harmonium after audio is unlocked. Use seconds for t and dur, key 0-38 for pitch, and equal t values for chords.
View tool JSON
{
"name": "play_score",
"kind": "act",
"impl": "imperative",
"description": "Play a timed score on the visible harmonium after audio is unlocked. Use seconds for t and dur, key 0-38 for pitch, and equal t values for chords.",
"inputSchema": {
"type": "object",
"properties": {
"sa": {
"type": "string",
"enum": [
"C",
"C#",
"D",
"D#",
"E",
"F",
"F#",
"G",
"G#",
"A",
"A#",
"B"
],
"description": "Movable tonic for labels, e.g. 'C'. Updates the page's Sa; pitches never retune."
},
"events": {
"type": "array",
"minItems": 1,
"maxItems": 1024,
"items": {
"type": "object",
"properties": {
"t": {
"type": "number",
"minimum": 0,
"maximum": 1800,
"description": "Start time in seconds from playback start"
},
"key": {
"type": "integer",
"minimum": 0,
"maximum": 38,
"description": "Key index 0-38 (source of truth for pitch)"
},
"note": {
"type": "string",
"maxLength": 80,
"description": "Advisory Sargam label; pitch always comes from key"
},
"dur": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 30,
"description": "Duration in seconds"
}
},
"required": [
"t",
"key",
"dur"
]
}
}
},
"required": [
"events"
]
}
}set_saAction
Set the movable tonic used by visible Sargam labels while keeping every keyboard key at its existing pitch.
View tool JSON
{
"name": "set_sa",
"kind": "act",
"impl": "imperative",
"description": "Set the movable tonic used by visible Sargam labels while keeping every keyboard key at its existing pitch.",
"inputSchema": {
"type": "object",
"properties": {
"sa": {
"type": "string",
"enum": [
"C",
"C#",
"D",
"D#",
"E",
"F",
"F#",
"G",
"G#",
"A",
"A#",
"B"
],
"description": "Western note name that becomes Sa"
}
},
"required": [
"sa"
]
}
}stopAction
Stop all sounding reeds and any score playback on the visible keyboard.
View tool JSON
{
"name": "stop",
"kind": "act",
"impl": "imperative",
"description": "Stop all sounding reeds and any score playback on the visible keyboard.",
"inputSchema": {
"type": "object",
"properties": {}
}
}get_stateAnswer
Read the web-harmonium state: current Sa, audio lock, active keys, score playback.
View tool JSON
{
"name": "get_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the web-harmonium state: current Sa, audio lock, active keys, score playback.",
"inputSchema": {
"type": "object",
"properties": {}
}
}