Files
XZBT/exhibits/minimal-audio.xzbt
T

139 lines
4.5 KiB
Plaintext

{
"xzbt": "0.1",
"meta": {
"id": "minimal-audio",
"name": "Minimal Audio",
"version": "1.1.0",
"author": "XZBT",
"description": "A minimal generic exhibit exercising audio graphs, components, routing, buses, and the Phase 3c automation modes and curves.",
"license": "CC0-1.0",
"tags": ["minimal", "audio"]
},
"runtime": {
"seed": 42
},
"parameters": {
"level": {
"type": "number",
"default": 0.6,
"min": 0,
"max": 4,
"step": 0.01,
"label": "Ambient bus level"
}
},
"bindings": [
{
"source": "parameters.level",
"target": "audio.buses.ambient.gain"
}
],
"components": {
"audio": {
"partial": {
"parameters": {
"pitch": { "type": "number", "default": 220, "min": 20, "max": 4000, "unit": "Hz" },
"level": { "type": "number", "default": 0.2, "min": 0, "max": 1 }
},
"input": false,
"nodes": {
"tone": { "type": "oscillator", "waveform": "triangle", "frequency": { "ref": "inputs.pitch" } },
"shape": { "type": "filter", "mode": "lowpass", "frequency": 1800, "q": 0.7 },
"level": { "type": "gain", "gain": { "ref": "inputs.level" } }
},
"routes": [
{ "from": "tone", "to": "shape" },
{ "from": "shape", "to": "level" },
{ "from": "level", "to": "output" }
],
"automation": [
{ "target": "shape.frequency", "interpolation": "exponential", "points": [
{ "at": "0s", "value": 1800 }, { "at": "12s", "value": 800 }
] }
]
}
}
},
"audio": {
"buses": {
"ambient": { "gain": 0.6 },
"effects": { "gain": 0.8 }
},
"recipes": {
"drift": {
"mode": "continuous",
"nodes": {
"low": { "type": "component", "use": "partial", "values": { "pitch": 110, "level": 0.25 } },
"high": { "type": "component", "use": "partial", "values": { "pitch": { "random": { "min": 320, "max": 340 } }, "level": 0.12 } },
"wobble": { "type": "lfo", "waveform": "sine", "frequency": 0.08, "amplitude": 1 },
"wander": { "type": "sample-hold", "rate": 0.5, "min": -6, "max": 6, "slew": "600ms" },
"blend": { "type": "mixer" },
"space": { "type": "reverb", "size": 0.7, "decay": "3.5s", "damping": 0.6, "mix": 0.3 },
"trim": { "type": "gain", "gain": 0.7 }
},
"routes": [
{ "from": "low", "to": "blend" },
{ "from": "high", "to": "blend" },
{ "from": "blend", "to": "space" },
{ "from": "space", "to": "trim" },
{ "from": "trim", "to": "output" },
{ "from": "wobble", "to": "low.pitch", "depth": 1.5 },
{ "from": "wander", "to": "high.pitch", "depth": 1 }
],
"automation": [
{ "target": "low.pitch", "mode": "offset", "interpolation": "smooth", "points": [
{ "at": "0s", "value": 0 }, { "at": "6s", "value": 12 }, { "at": "18s", "value": -4 }
] },
{ "target": "high.level", "mode": "scale", "points": [
{ "at": "0s", "value": 0.4 }, { "at": "3s", "value": 1 }
] }
]
}
}
},
"sounds": {
"drift": {
"name": "Drift",
"tags": ["continuous", "abstract"],
"usage": ["manual"],
"bus": "ambient",
"recipe": { "use": "drift" }
},
"tick": {
"name": "Tick",
"tags": ["transient"],
"usage": ["manual", "automatic"],
"bus": "effects",
"recipe": {
"mode": "oneshot",
"nodes": {
"hit": { "type": "impulse", "color": "white", "duration": "6ms", "amplitude": 0.9, "decay": "exponential" },
"body": {
"type": "resonator",
"fundamental": 480,
"modes": [
{ "ratio": 1, "gain": 1, "decay": "260ms" },
{ "ratio": 2.7, "gain": 0.35, "decay": "140ms" },
{ "ratio": 5.4, "gain": 0.12, "decay": "70ms" }
],
"mix": 1
},
"place": { "type": "stereo-pan", "pan": -0.2 },
"trim": { "type": "gain", "gain": 0.5 }
},
"routes": [
{ "from": "hit", "to": "body" },
{ "from": "body", "to": "place" },
{ "from": "place", "to": "trim" },
{ "from": "trim", "to": "output" }
],
"automation": [
{ "target": "place.pan", "interpolation": "step", "points": [
{ "at": "0ms", "value": -0.2 }, { "at": "120ms", "value": 0.2 }
] }
]
}
}
}
}