Tool tree
gradeNot graded
get_studio_stateAnswer
Call this first whenever the user asks Champagne to master, analyze, trim, fade, or change track speed. It checks the live audio already loaded in the current Champagne browser page, including a built-in demo or audio selected in the page, so the user does not need to attach that audio to ChatGPT. If the page is empty, direct the user to Select Audio or Try Demo in Champagne instead of asking for a chat attachment. Returns stateVersion for subsequent actions without exposing audio bytes, waveform samples, filenames, or local paths.
View tool JSON
{
"name": "get_studio_state",
"kind": "answer",
"impl": "imperative",
"description": "Call this first whenever the user asks Champagne to master, analyze, trim, fade, or change track speed. It checks the live audio already loaded in the current Champagne browser page, including a built-in demo or audio selected in the page, so the user does not need to attach that audio to ChatGPT. If the page is empty, direct the user to Select Audio or Try Demo in Champagne instead of asking for a chat attachment. Returns stateVersion for subsequent actions without exposing audio bytes, waveform samples, filenames, or local paths.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}analyze_trackAction
Measure the track already loaded in Champagne locally and return compact objective level, peak, crest-factor, duration, and headroom findings. No audio leaves the page and no chat attachment is required.
View tool JSON
{
"name": "analyze_track",
"kind": "act",
"impl": "imperative",
"description": "Measure the track already loaded in Champagne locally and return compact objective level, peak, crest-factor, duration, and headroom findings. No audio leaves the page and no chat attachment is required.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}create_mastering_takeAction
Use only when the user requests mastering or sonic changes. Create and locally render one reversible custom Champagne style from a safe baseline plus small, bounded musical adjustments. If the same request also includes cuts, fades, or speed, call those tools afterward in that order and pass each newly returned stateVersion into the next action. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.
View tool JSON
{
"name": "create_mastering_take",
"kind": "act",
"impl": "imperative",
"description": "Use only when the user requests mastering or sonic changes. Create and locally render one reversible custom Champagne style from a safe baseline plus small, bounded musical adjustments. If the same request also includes cuts, fades, or speed, call those tools afterward in that order and pass each newly returned stateVersion into the next action. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.",
"inputSchema": {
"type": "object",
"properties": {
"expectedStateVersion": {
"type": "integer",
"minimum": 0,
"description": "Version returned by get_studio_state."
},
"baseStyle": {
"type": "string",
"enum": [
"full_power",
"warm_presence",
"modern_crisp",
"dominant"
],
"description": "Tested Champagne mastering style."
},
"priorities": {
"type": "array",
"maxItems": 5,
"items": {
"type": "string",
"enum": [
"loudness",
"punch",
"warmth",
"clarity",
"dynamic_range",
"low_end",
"presence",
"air",
"width",
"glue",
"density",
"smoothness"
]
}
},
"constraints": {
"type": "array",
"maxItems": 4,
"items": {
"type": "string",
"enum": [
"preserve_transients",
"avoid_pumping",
"avoid_harshness",
"avoid_clipping",
"keep_dynamic"
]
}
},
"intensity": {
"type": "number",
"minimum": -1,
"maximum": 1,
"description": "Bounded relative intensity from -1 to 1."
},
"styleName": {
"type": "string",
"minLength": 1,
"maxLength": 48,
"description": "Short user-facing name for this custom style."
},
"brief": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"description": "Concise musical direction being implemented."
},
"adjustments": {
"type": "object",
"properties": {
"warmth": {
"type": "number",
"minimum": -1,
"maximum": 1
},
"brightness": {
"type": "number",
"minimum": -1,
"maximum": 1
},
"punch": {
"type": "number",
"minimum": -1,
"maximum": 1
},
"dynamics": {
"type": "number",
"minimum": -1,
"maximum": 1
},
"lowEnd": {
"type": "number",
"minimum": -1,
"maximum": 1
},
"presence": {
"type": "number",
"minimum": -1,
"maximum": 1
},
"air": {
"type": "number",
"minimum": -1,
"maximum": 1
},
"width": {
"type": "number",
"minimum": -1,
"maximum": 1
},
"glue": {
"type": "number",
"minimum": -1,
"maximum": 1
},
"density": {
"type": "number",
"minimum": -1,
"maximum": 1
},
"smoothness": {
"type": "number",
"minimum": -1,
"maximum": 1
}
},
"additionalProperties": false
}
},
"required": [
"expectedStateVersion",
"baseStyle",
"priorities",
"constraints",
"styleName",
"brief"
],
"additionalProperties": false
}
}refine_mastering_takeAction
Create a reversible child style with one bounded semantic change. The source remains intact and the new result becomes the active audible master. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.
View tool JSON
{
"name": "refine_mastering_take",
"kind": "act",
"impl": "imperative",
"description": "Create a reversible child style with one bounded semantic change. The source remains intact and the new result becomes the active audible master. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.",
"inputSchema": {
"type": "object",
"properties": {
"expectedStateVersion": {
"type": "integer",
"minimum": 0,
"description": "Version returned by get_studio_state."
},
"sourceTakeId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Existing rendered style ID."
},
"dimension": {
"type": "string",
"enum": [
"intensity",
"warmth",
"brightness",
"punch",
"dynamics",
"lowEnd",
"presence",
"air",
"width",
"glue",
"density",
"smoothness"
]
},
"direction": {
"type": "string",
"enum": [
"increase",
"decrease"
]
},
"amount": {
"type": "string",
"enum": [
"small",
"medium"
]
},
"brief": {
"type": "string",
"minLength": 1,
"maxLength": 180
}
},
"required": [
"expectedStateVersion",
"sourceTakeId",
"dimension",
"direction",
"amount",
"brief"
],
"additionalProperties": false
}
}create_variationsAction
Create up to three sibling mastering styles in one transaction and select the first result. Use this for contrasting warm, open, and club-loud directions. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.
View tool JSON
{
"name": "create_variations",
"kind": "act",
"impl": "imperative",
"description": "Create up to three sibling mastering styles in one transaction and select the first result. Use this for contrasting warm, open, and club-loud directions. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.",
"inputSchema": {
"type": "object",
"properties": {
"expectedStateVersion": {
"type": "integer",
"minimum": 0,
"description": "Version returned by get_studio_state."
},
"styles": {
"type": "array",
"minItems": 2,
"maxItems": 3,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"full_power",
"warm_presence",
"modern_crisp",
"dominant"
]
}
},
"constraint": {
"type": "string",
"enum": [
"preserve_transients",
"keep_dynamic",
"avoid_harshness",
"none"
]
}
},
"required": [
"expectedStateVersion",
"styles",
"constraint"
],
"additionalProperties": false
}
}stage_comparisonAction
Group two or three rendered custom styles for comparison and select the first. This does not alter any rendered audio. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.
View tool JSON
{
"name": "stage_comparison",
"kind": "act",
"impl": "imperative",
"description": "Group two or three rendered custom styles for comparison and select the first. This does not alter any rendered audio. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.",
"inputSchema": {
"type": "object",
"properties": {
"expectedStateVersion": {
"type": "integer",
"minimum": 0,
"description": "Version returned by get_studio_state."
},
"takeIds": {
"type": "array",
"minItems": 2,
"maxItems": 3,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
},
"required": [
"expectedStateVersion",
"takeIds"
],
"additionalProperties": false
}
}set_trim_fadesAction
Use for every cut, trim, fade-in, or fade-out instruction, including when it appears inside a mastering request. Update the non-destructive keep region and fade lengths while preserving the selected master. Values are validated against the loaded track duration; after a prior action, use that action’s returned stateVersion. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.
View tool JSON
{
"name": "set_trim_fades",
"kind": "act",
"impl": "imperative",
"description": "Use for every cut, trim, fade-in, or fade-out instruction, including when it appears inside a mastering request. Update the non-destructive keep region and fade lengths while preserving the selected master. Values are validated against the loaded track duration; after a prior action, use that action’s returned stateVersion. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.",
"inputSchema": {
"type": "object",
"properties": {
"expectedStateVersion": {
"type": "integer",
"minimum": 0,
"description": "Version returned by get_studio_state."
},
"startSeconds": {
"type": "number",
"minimum": 0,
"description": "Absolute start of the kept audio in seconds. To cut N seconds from the front, set this to N."
},
"endSeconds": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Absolute end of the kept audio in seconds. To cut N seconds from the back, set this to durationSeconds minus N."
},
"fadeInSeconds": {
"type": "number",
"minimum": 0,
"maximum": 30,
"description": "Fade length in seconds immediately after startSeconds; use 0 for no fade-in."
},
"fadeOutSeconds": {
"type": "number",
"minimum": 0,
"maximum": 30,
"description": "Fade length in seconds immediately before endSeconds; use 0 for no fade-out."
},
"fadeInCurve": {
"type": "number",
"minimum": -1,
"maximum": 1,
"description": "Fade-in curvature; -1 broad, +1 sharp."
},
"fadeOutCurve": {
"type": "number",
"minimum": -1,
"maximum": 1,
"description": "Fade-out curvature; -1 broad, +1 sharp."
}
},
"required": [
"expectedStateVersion",
"startSeconds",
"endSeconds",
"fadeInSeconds",
"fadeOutSeconds"
],
"additionalProperties": false
}
}commit_masterAction
Call only when the user explicitly asks to switch to, select, or finalize a previously rendered style. Make that style active and audible without rendering, preparing, exporting, or downloading. Do not call this automatically after creating or refining a master. On success, stop. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.
View tool JSON
{
"name": "commit_master",
"kind": "act",
"impl": "imperative",
"description": "Call only when the user explicitly asks to switch to, select, or finalize a previously rendered style. Make that style active and audible without rendering, preparing, exporting, or downloading. Do not call this automatically after creating or refining a master. On success, stop. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.",
"inputSchema": {
"type": "object",
"properties": {
"expectedStateVersion": {
"type": "integer",
"minimum": 0,
"description": "Version returned by get_studio_state."
},
"takeId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Existing rendered style ID."
}
},
"required": [
"expectedStateVersion",
"takeId"
],
"additionalProperties": false
}
}set_track_speedAction
Use for every speed instruction, including when it appears inside a mastering request. Set the current track speed from 50% to 150%; the change is heard immediately and updates the visible percentage and slider. 100% restores normal speed. After a prior action, use that action’s returned stateVersion. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.
View tool JSON
{
"name": "set_track_speed",
"kind": "act",
"impl": "imperative",
"description": "Use for every speed instruction, including when it appears inside a mastering request. Set the current track speed from 50% to 150%; the change is heard immediately and updates the visible percentage and slider. 100% restores normal speed. After a prior action, use that action’s returned stateVersion. Operates on the audio already loaded in the current Champagne browser page, so no chat attachment is required.",
"inputSchema": {
"type": "object",
"properties": {
"expectedStateVersion": {
"type": "integer",
"minimum": 0,
"description": "Version returned by get_studio_state."
},
"speedPercent": {
"type": "number",
"minimum": 50,
"maximum": 150,
"description": "Absolute track speed. For example, 135 is 35% faster and 75 is three-quarters speed."
}
},
"required": [
"expectedStateVersion",
"speedPercent"
],
"additionalProperties": false
}
}