Tool tree
Compare EQ settings through blind listening. Use your own audio, let a WebMCP agent stage experiments, and choose what sounds best to you.
Implementation
gradeNot graded
gradeNot graded
skill_calibrate_listeningAction
Learn tandem’s safe blind-listening workflow before staging an EQ experiment.
View tool JSON
{
"name": "skill_calibrate_listening",
"kind": "act",
"impl": "imperative",
"description": "Learn tandem’s safe blind-listening workflow before staging an EQ experiment.",
"inputSchema": {
"type": "object",
"description": "No input parameters. Call this tool before beginning a calibration workflow.",
"properties": {},
"additionalProperties": false
}
}get_calibration_stateAnswer
Read the current tandem session, human feedback, and permitted next agent action without revealing a pending A/B mapping.
View tool JSON
{
"name": "get_calibration_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the current tandem session, human feedback, and permitted next agent action without revealing a pending A/B mapping.",
"inputSchema": {
"type": "object",
"description": "No input parameters. The response reflects the current visible tandem session.",
"properties": {},
"additionalProperties": false
}
}stage_ab_trialAction
Validate and stage two safe EQ profiles as a randomized, hidden A/B comparison. This never plays audio or records a vote.
View tool JSON
{
"name": "stage_ab_trial",
"kind": "act",
"impl": "imperative",
"description": "Validate and stage two safe EQ profiles as a randomized, hidden A/B comparison. This never plays audio or records a vote.",
"inputSchema": {
"type": "object",
"description": "Inputs for staging one randomized blind comparison without playing audio or voting. The two candidates must differ on at least one EQ band.",
"properties": {
"requestId": {
"type": "string",
"description": "A unique idempotency key for this mutation. Reuse it only when retrying the same request.",
"minLength": 1,
"maxLength": 80
},
"expectedRevision": {
"type": "integer",
"description": "The current revision returned by get_calibration_state; stale values are rejected.",
"minimum": 0
},
"question": {
"type": "string",
"description": "A neutral listening question shown to the human without revealing the A/B mapping.",
"minLength": 1,
"maxLength": 240
},
"candidateOne": {
"type": "object",
"description": "The first complete EQ candidate. The interface randomizes whether it becomes A or B.",
"properties": {
"low": {
"type": "number",
"description": "Low low-shelf gain at 120 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
},
"warmth": {
"type": "number",
"description": "Warmth bell gain at 350 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
},
"presence": {
"type": "number",
"description": "Presence bell gain at 1500 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
},
"clarity": {
"type": "number",
"description": "Clarity bell gain at 3500 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
},
"air": {
"type": "number",
"description": "Air high-shelf gain at 9000 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
}
},
"required": [
"low",
"warmth",
"presence",
"clarity",
"air"
],
"additionalProperties": false
},
"candidateTwo": {
"type": "object",
"description": "The second complete EQ candidate. The interface randomizes whether it becomes A or B.",
"properties": {
"low": {
"type": "number",
"description": "Low low-shelf gain at 120 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
},
"warmth": {
"type": "number",
"description": "Warmth bell gain at 350 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
},
"presence": {
"type": "number",
"description": "Presence bell gain at 1500 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
},
"clarity": {
"type": "number",
"description": "Clarity bell gain at 3500 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
},
"air": {
"type": "number",
"description": "Air high-shelf gain at 9000 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
}
},
"required": [
"low",
"warmth",
"presence",
"clarity",
"air"
],
"additionalProperties": false
},
"agentRationale": {
"type": "string",
"description": "A concise explanation of the evidence and variables motivating this comparison.",
"minLength": 1,
"maxLength": 600
}
},
"required": [
"requestId",
"expectedRevision",
"question",
"candidateOne",
"candidateTwo",
"agentRationale"
],
"additionalProperties": false
}
}stage_final_profileAction
Propose a final EQ profile after at least two human-completed trials. Human approval remains required in the visible interface.
View tool JSON
{
"name": "stage_final_profile",
"kind": "act",
"impl": "imperative",
"description": "Propose a final EQ profile after at least two human-completed trials. Human approval remains required in the visible interface.",
"inputSchema": {
"type": "object",
"description": "Inputs for staging a final profile for visible human review after two completed trials.",
"properties": {
"requestId": {
"type": "string",
"description": "A unique idempotency key for this mutation. Reuse it only when retrying the same request.",
"minLength": 1,
"maxLength": 80
},
"expectedRevision": {
"type": "integer",
"description": "The current revision returned by get_calibration_state; stale values are rejected.",
"minimum": 0
},
"profile": {
"type": "object",
"description": "The complete proposed EQ profile derived from the recorded human feedback.",
"properties": {
"low": {
"type": "number",
"description": "Low low-shelf gain at 120 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
},
"warmth": {
"type": "number",
"description": "Warmth bell gain at 350 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
},
"presence": {
"type": "number",
"description": "Presence bell gain at 1500 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
},
"clarity": {
"type": "number",
"description": "Clarity bell gain at 3500 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
},
"air": {
"type": "number",
"description": "Air high-shelf gain at 9000 Hz, from -6 to +6 dB in 0.5 dB steps.",
"minimum": -6,
"maximum": 6,
"multipleOf": 0.5
}
},
"required": [
"low",
"warmth",
"presence",
"clarity",
"air"
],
"additionalProperties": false
},
"explanation": {
"type": "string",
"description": "A concise evidence-based explanation shown beside the proposal for human review.",
"minLength": 1,
"maxLength": 600
}
},
"required": [
"requestId",
"expectedRevision",
"profile",
"explanation"
],
"additionalProperties": false
}
}