Schemas / Music
rig.music.step
v0.31.0 · draft 6 fields 1 required
Fields
| Field | Type | Meaning | |
|---|---|---|---|
active |
bool | required | Fire this step |
pitch |
integer0 – 127 | optional | Optional. 0-127; absent = 60 |
velocity |
integer0 – 127 | optional | Optional. 0-127 (maps to host volume); absent = 100 |
gate |
number0 – 1 | optional | Optional. 0-1 fraction of the step duration; absent = 1 |
waveform |
integer0 – 255 | optional | Optional. 0-255; absent = 0. 0-7 are the portable synth shapes; 8 and up are host instrument slots |
effect |
integer0 – 7 | optional | Optional. 0-7 note effect id; absent = 0 |
One cell in a pattern grid. Format when present.
Owned by rig.music.pattern (steps array). Not a free-time piano-roll note - that is rig.music.note.
Only active is required - an inactive step can be {"active": false} with nothing invented for the silent fields.
One hit per step in the current draft. Chords / locks can come later as extra fields or child data.
A tracker-style step row uses pitch + waveform + velocity as volume + effect per cell - no parallel sample schema. Waveform values 8 and up are host instrument slots; the Contract does not assign them portable shapes.
JSON Schema
Resolves at https://rig.works/schemas/rig.music.step.schema.json —
raw file.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://rig.works/schemas/rig.music.step.schema.json",
"title": "rig.music.step",
"type": "object",
"additionalProperties": false,
"properties": {
"active": {
"$ref": "./_defs.schema.json#/$defs/bool"
},
"pitch": {
"type": "integer",
"minimum": 0,
"maximum": 127
},
"velocity": {
"type": "integer",
"minimum": 0,
"maximum": 127
},
"gate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"waveform": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"effect": {
"type": "integer",
"minimum": 0,
"maximum": 7
}
},
"required": [
"active"
]
}