Schemas / Music
rig.music.step
v1.0.0 · stable maturity: draft 7 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 |
intervals |
array<integer> | optional | Optional. Semitone offsets from pitch. Absent = pitch alone. Omit 0. A major triad is [4, 7]; a minor triad is [3, 7] |
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.
The step sounds pitch and each pitch + interval. pitch is the chord root. A note below the root is a negative offset.
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
},
"intervals": {
"type": "array",
"items": {
"type": "integer",
"minimum": -127,
"maximum": 127
},
"uniqueItems": true
}
},
"required": [
"active"
],
"x-rig-maturity": "draft"
}