feat(audio): complete phase 3c slice 3 automation

This commit is contained in:
2026-09-05 20:22:22 -07:00
parent 9ae2c76075
commit 04d4e49e9f
18 changed files with 2224 additions and 590 deletions
+41
View File
@@ -1594,6 +1594,41 @@
"$ref": "#/definitions/AudioRoute"
}
},
"AudioAutomationList": {
"type": "array",
"maxItems": 64,
"description": "Graph-local tracks (16.1); expanded totals and target capabilities are semantic checks.",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["target", "points"],
"properties": {
"target": { "type": "string", "pattern": "^[a-z][a-z0-9_-]*\\.[a-z][a-z0-9_-]*$" },
"mode": { "enum": ["absolute", "offset", "scale"], "default": "absolute" },
"interpolation": { "enum": ["step", "linear", "exponential", "smooth"], "default": "linear" },
"points": {
"type": "array",
"minItems": 2,
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["at", "value"],
"properties": {
"at": { "$ref": "#/definitions/DurationSpec" },
"value": {
"allOf": [
{ "$ref": "#/definitions/ValueSpec" },
{ "type": ["number", "object"] }
],
"description": "ValueSpec<number>; numeric references and expression leaves are checked semantically."
}
}
}
}
}
}
},
"AudioRecipe": {
"type": "object",
"description": "A recipe graph, or a reference to a shared recipe (15.16).",
@@ -1610,6 +1645,9 @@
"routes": {
"$ref": "#/definitions/AudioRouteList"
},
"automation": {
"$ref": "#/definitions/AudioAutomationList"
},
"mode": {
"type": "string",
"enum": [
@@ -1650,6 +1688,9 @@
"routes": {
"$ref": "#/definitions/AudioRouteList"
},
"automation": {
"$ref": "#/definitions/AudioAutomationList"
},
"input": {
"type": "boolean"
},