at.atmosynth.patch
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"connection": {
"description": "An audio connection between two module instances, naming the declared ports at each end.",
"properties": {
"from": {
"ref": "#outputRef",
"type": "ref"
},
"to": {
"ref": "#inputRef",
"type": "ref"
}
},
"required": [
"from",
"to"
],
"type": "object"
},
"inputRef": {
"properties": {
"audioInput": {
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"instanceId": {
"maxLength": 64,
"minLength": 1,
"type": "string"
}
},
"required": [
"instanceId",
"audioInput"
],
"type": "object"
},
"lineage": {
"description": "The patch this one was forked from, and its creator. Preserved even when the source is later deleted.",
"properties": {
"creatorDid": {
"format": "did",
"type": "string"
},
"patchId": {
"maxLength": 128,
"type": "string"
},
"uri": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"uri",
"creatorDid"
],
"type": "object"
},
"main": {
"description": "A patch, held in its creator's own repository.",
"key": "tid",
"record": {
"properties": {
"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"
},
"forkedFrom": {
"ref": "#lineage",
"type": "ref"
},
"midiRouting": {
"description": "Which module instances receive MIDI input.",
"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"
},
"tags": {
"description": "Freely created tags, lower-cased on write so one hashtag matches one set of patches.",
"items": {
"maxLength": 128,
"type": "string"
},
"type": "array"
},
"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"
},
"midiRoute": {
"properties": {
"instanceId": {
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"midiInput": {
"maxLength": 64,
"minLength": 1,
"type": "string"
}
},
"required": [
"instanceId",
"midiInput"
],
"type": "object"
},
"moduleInstance": {
"description": "One use of one module version. A patch may use the same module more than once; each instance is separately addressable and carries its own parameter values and slot fills.",
"properties": {
"instanceId": {
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"module": {
"ref": "#moduleRef",
"type": "ref"
},
"parameterValues": {
"items": {
"ref": "#parameterValue",
"type": "ref"
},
"type": "array"
},
"position": {
"description": "Where the creator placed this instance in the patch's arrangement, so the arrangement travels with the patch and a fork inherits it. Optional permanently, and the only field in either description that exists for presentation.",
"ref": "#position",
"type": "ref"
},
"sampleSlotFills": {
"description": "Samples this instance supplies for the module's declared slots. A fill lives here, in the patch, so writing one never touches the module.",
"items": {
"ref": "#sampleSlotFill",
"type": "ref"
},
"type": "array"
},
"voiceScope": {
"description": "Whether this instance is built once for each sounding note or once for the whole patch. Optional permanently: an unset scope is worked out when the patch is played, and is never written on a creator's behalf.",
"knownValues": [
"perNote",
"perPatch"
],
"type": "string"
}
},
"required": [
"instanceId",
"module"
],
"type": "object"
},
"moduleRef": {
"description": "A pin to one exact published version of a module. Resolving it fetches that record, whoever authored it.",
"properties": {
"authorDid": {
"format": "did",
"type": "string"
},
"moduleId": {
"maxLength": 128,
"minLength": 1,
"type": "string"
},
"versionKey": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
"required": [
"moduleId",
"versionKey",
"authorDid"
],
"type": "object"
},
"outputRef": {
"properties": {
"audioOutput": {
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"instanceId": {
"maxLength": 64,
"minLength": 1,
"type": "string"
}
},
"required": [
"instanceId",
"audioOutput"
],
"type": "object"
},
"parameterValue": {
"description": "A value for one of the module's exposed parameters, or an explicit fall-back to the module's declared default.",
"properties": {
"id": {
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"useDefault": {
"description": "Set where the patch explicitly defers to the module's default rather than recording a value.",
"type": "boolean"
},
"value": {
"type": "unknown"
}
},
"required": [
"id"
],
"type": "object"
},
"position": {
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
}
},
"required": [
"x",
"y"
],
"type": "object"
},
"sampleSlotFill": {
"properties": {
"blob": {
"accept": [
"audio/wav"
],
"maxSize": 2097152,
"type": "blob"
},
"ownerDid": {
"format": "did",
"type": "string"
},
"slotId": {
"maxLength": 64,
"minLength": 1,
"type": "string"
}
},
"required": [
"slotId",
"blob",
"ownerDid"
],
"type": "object"
}
},
"description": "A synth patch: which modules it uses, how they are wired, what their parameters are set to, and how it is played. A patch plus the module records it pins is everything needed to reproduce it.",
"id": "at.atmosynth.patch",
"lexicon": 1
}
Metadata
- DID
-
did:plc:fzjkahpwapmoqxybwdjb6ysf - CID
-
bafyreibkrh5ttzk4os3sixl57pg4r4aou45wrusje4kqrmiyhh5hklfyyu - Indexed At
- 2026-08-31 13:27 UTC
- AT-URI
-
at://did:plc:fzjkahpwapmoqxybwdjb6ysf/com.atproto.lexicon.schema/at.atmosynth.patch
Version History (20 versions)
- 2026-10-06 13:10 UTC
- 2026-10-06 11:18 UTC diff
- 2026-10-05 20:32 UTC diff
- 2026-10-05 08:47 UTC diff
- 2026-10-02 14:29 UTC diff
- 2026-10-01 12:30 UTC diff
- 2026-09-29 13:40 UTC diff
- 2026-09-29 09:38 UTC diff
- 2026-09-28 20:02 UTC diff
- 2026-09-25 10:58 UTC diff
- 2026-09-24 12:51 UTC diff
- 2026-09-23 12:04 UTC diff
- 2026-09-23 07:51 UTC diff
- 2026-09-22 18:36 UTC diff
- 2026-09-22 12:16 UTC diff
- 2026-09-21 20:07 UTC diff
- 2026-09-18 11:56 UTC diff
- 2026-09-14 18:09 UTC diff
- 2026-09-10 05:50 UTC diff
- 2026-09-09 12:09 UTC diff
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
at.atmosynth.module record
A reusable synth module: Web Audio nodes wired together, with declared audio and MIDI boundaries, exposed parameters, automation and sample slots. Each published version is its own record; records sharing a moduleId for…
-
A multitrack composition made in the Anisota Lab's Synth studio and saved to the owner's library. The piece is stored as compact musical event data (not audio), so it can be reloaded into the synth, replayed and edited.…