A patch, held in its creator's own repository.
tid
Timestamp-based ID
Properties
concertPitch
string
Optional
The frequency A4 sounds at in this patch, in hertz, from 380 to 500, written as its decimal text — "432", "415.3" — as every number in this description that need not be whole is. Every note's frequency is tuned against it, which is what an oscillator a module does not drive itself and a module's note signal play at; under a `tuning` it anchors the tuning's reference key, which sounds where twelve-tone equal temperament puts it at this pitch. A sample is not retuned by it: its own reference pitch is a note rather than a frequency, and it plays as recorded. Optional permanently: a patch that says nothing is tuned to 440, which is what every patch written before the field existed says.
maxLength: 32 bytesconnections
array
of
ref
#connection
Optional
No description available.
createdAt
string
datetime
Required
An RFC 3339 formatted timestamp.
description
string
Required
No description available.
maxLength: 3000 bytesdescriptionVersion
integer
Required
Version of the patch description this record follows.
minimum: 1inputRouting
array
of
ref
#inputRoute
Optional
What reaches the input of each sequencer, each note range, each transpose, each pitch assignment and each one-shot: which note sources a sequencer hears, to record from and — unless it says otherwise (`thru`) — to pass on to whatever it plays; which a note range hears, to pass on what falls inside its range (`noteRange`); which a transpose or a pitch assignment hears, to pass on at another pitch (`transpose`, `assignedNote`); and which a one-shot hears, to pass on lasting one length (`noteLength`). A sequencer with nothing wired here records nothing, and the others pass nothing on. Optional permanently: a patch that says nothing has nothing wired into any of them, which is what every patch written before the input existed says.
lineage
array
of
ref
#lineage
Optional
The patches this one came from: the one it was forked from, if it was, and every one imported into it. Only the direct ones — each of those names its own — so the whole of where a patch came from is read by following these upward. The modules it pins and the samples it fills are not repeated here: they are already in its instances. Optional permanently: a patch that says nothing came from nothing but its modules. A patch written before this field existed may say its fork as `forkedFrom` instead, `{uri, creatorDid, patchId?}`, which a reader treats as a lineage of relation `fork`; it is never written again.
maxLength: 64 itemsmidiRouting
array
of
ref
#midiRoute
Optional
The note plane: which note inputs receive note events, and from which note source — a sequencer, or the player's keys and MIDI devices. "MIDI" is the historical name; what travels here is notes, whatever produced them.
moduleInstances
array
of
ref
#moduleInstance
Required
No description available.
name
string
Required
No description available.
maxLength: 200 bytesminLength: 1 bytesoutput
ref
#outputRef
Optional
Which instance reaches the audio output.
patternRouting
array
of
ref
#patternRoute
Optional
The song plane: which sequencers and automation blocks each arranger or scenes block chooses the loops or lanes of. A sequencer or an automation block has one pattern input, so it appears here at most once. Optional permanently: a patch that says nothing has no arranger in it, and every sequencer plays the loop it names as active and every automation block the lane.
tags
array
of
string
Optional
Freely created tags, lower-cased on write so one hashtag matches one set of patches.
tempo
integer
Optional
The tempo this patch was written at, in beats per minute, a beat being a quarter note whatever the time signature says. It is what a sequenced patch counts its bars against, so a patch that plays itself arrives at the speed its creator meant. It seeds the player's own tempo rather than replacing it: how fast a visitor plays is still theirs, and moving it moves everything counting against it. Optional permanently — a patch that says nothing is played at whatever tempo the player already had.
minimum: 20maximum: 300timeSignature
ref
#timeSignature
Optional
How many of which note one bar of this patch is. Every length here counted in bars — a loop, a section, an automation lane — is counted in this bar, so a loop of four bars is twelve beats in 3/4. Optional permanently: a patch that says nothing is in 4/4, which is what every patch written before the field existed says.
tuning
ref
#tuning
Optional
Which pitch each key of this patch sounds at, as a Scala .scl file and its .kbm key map say it. Every frequency a key is played at comes from it — an oscillator a module does not drive itself, a module's note signal, and a sample, which sounds at its key what an oscillator at that key would — and a pitch bend is applied after it, in twelve-tone semitones. The concert pitch is still the one frequency here: the tuning's reference key sounds where twelve-tone equal temperament puts it at the patch's concert pitch. A key the map sends nowhere sounds nothing. Optional permanently: a patch that says nothing is in twelve-tone equal temperament, which is what every patch written before the field existed says.
types
array
of
string
Optional
Zero or more of the ten fixed types. A patch may carry several.
View raw schema
{
"description": "A patch, held in its creator's own repository.",
"key": "tid",
"record": {
"properties": {
"concertPitch": {
"description": "The frequency A4 sounds at in this patch, in hertz, from 380 to 500, written as its decimal text — \"432\", \"415.3\" — as every number in this description that need not be whole is. Every note's frequency is tuned against it, which is what an oscillator a module does not drive itself and a module's note signal play at; under a `tuning` it anchors the tuning's reference key, which sounds where twelve-tone equal temperament puts it at this pitch. A sample is not retuned by it: its own reference pitch is a note rather than a frequency, and it plays as recorded. Optional permanently: a patch that says nothing is tuned to 440, which is what every patch written before the field existed says.",
"maxLength": 32,
"type": "string"
},
"connections": {
"items": {
"ref": "#connection",
"type": "ref"
},
"type": "array"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"description": {
"maxLength": 3000,
"type": "string"
},
"descriptionVersion": {
"description": "Version of the patch description this record follows.",
"minimum": 1,
"type": "integer"
},
"inputRouting": {
"description": "What reaches the input of each sequencer, each note range, each transpose, each pitch assignment and each one-shot: which note sources a sequencer hears, to record from and — unless it says otherwise (`thru`) — to pass on to whatever it plays; which a note range hears, to pass on what falls inside its range (`noteRange`); which a transpose or a pitch assignment hears, to pass on at another pitch (`transpose`, `assignedNote`); and which a one-shot hears, to pass on lasting one length (`noteLength`). A sequencer with nothing wired here records nothing, and the others pass nothing on. Optional permanently: a patch that says nothing has nothing wired into any of them, which is what every patch written before the input existed says.",
"items": {
"ref": "#inputRoute",
"type": "ref"
},
"type": "array"
},
"lineage": {
"description": "The patches this one came from: the one it was forked from, if it was, and every one imported into it. Only the direct ones — each of those names its own — so the whole of where a patch came from is read by following these upward. The modules it pins and the samples it fills are not repeated here: they are already in its instances. Optional permanently: a patch that says nothing came from nothing but its modules. A patch written before this field existed may say its fork as `forkedFrom` instead, `{uri, creatorDid, patchId?}`, which a reader treats as a lineage of relation `fork`; it is never written again.",
"items": {
"ref": "#lineage",
"type": "ref"
},
"maxLength": 64,
"type": "array"
},
"midiRouting": {
"description": "The note plane: which note inputs receive note events, and from which note source — a sequencer, or the player's keys and MIDI devices. \"MIDI\" is the historical name; what travels here is notes, whatever produced them.",
"items": {
"ref": "#midiRoute",
"type": "ref"
},
"type": "array"
},
"moduleInstances": {
"items": {
"ref": "#moduleInstance",
"type": "ref"
},
"type": "array"
},
"name": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"output": {
"description": "Which instance reaches the audio output.",
"ref": "#outputRef",
"type": "ref"
},
"patternRouting": {
"description": "The song plane: which sequencers and automation blocks each arranger or scenes block chooses the loops or lanes of. A sequencer or an automation block has one pattern input, so it appears here at most once. Optional permanently: a patch that says nothing has no arranger in it, and every sequencer plays the loop it names as active and every automation block the lane.",
"items": {
"ref": "#patternRoute",
"type": "ref"
},
"type": "array"
},
"tags": {
"description": "Freely created tags, lower-cased on write so one hashtag matches one set of patches.",
"items": {
"maxLength": 128,
"type": "string"
},
"type": "array"
},
"tempo": {
"description": "The tempo this patch was written at, in beats per minute, a beat being a quarter note whatever the time signature says. It is what a sequenced patch counts its bars against, so a patch that plays itself arrives at the speed its creator meant. It seeds the player's own tempo rather than replacing it: how fast a visitor plays is still theirs, and moving it moves everything counting against it. Optional permanently — a patch that says nothing is played at whatever tempo the player already had.",
"maximum": 300,
"minimum": 20,
"type": "integer"
},
"timeSignature": {
"description": "How many of which note one bar of this patch is. Every length here counted in bars — a loop, a section, an automation lane — is counted in this bar, so a loop of four bars is twelve beats in 3/4. Optional permanently: a patch that says nothing is in 4/4, which is what every patch written before the field existed says.",
"ref": "#timeSignature",
"type": "ref"
},
"tuning": {
"description": "Which pitch each key of this patch sounds at, as a Scala .scl file and its .kbm key map say it. Every frequency a key is played at comes from it — an oscillator a module does not drive itself, a module's note signal, and a sample, which sounds at its key what an oscillator at that key would — and a pitch bend is applied after it, in twelve-tone semitones. The concert pitch is still the one frequency here: the tuning's reference key sounds where twelve-tone equal temperament puts it at the patch's concert pitch. A key the map sends nowhere sounds nothing. Optional permanently: a patch that says nothing is in twelve-tone equal temperament, which is what every patch written before the field existed says.",
"ref": "#tuning",
"type": "ref"
},
"types": {
"description": "Zero or more of the ten fixed types. A patch may carry several.",
"items": {
"knownValues": [
"Lead",
"Pad",
"Bass",
"Plucked",
"Percussion",
"Keys",
"Brass",
"Strings",
"Vocal",
"SFX"
],
"type": "string"
},
"type": "array"
}
},
"required": [
"descriptionVersion",
"name",
"description",
"moduleInstances",
"createdAt"
],
"type": "object"
},
"type": "record"
}