A recording, by its blob and the account holding it. In a record this service publishes it is always that record's own account, since a PDS writes a record only if every blob it names is in that account; a reader still follows `ownerDid` wherever it points.
Properties
No description available.
maxSize: 52.4 MB
A decentralized identifier (DID).
View raw schema
{
"description": "A recording, by its blob and the account holding it. In a record this service publishes it is always that record's own account, since a PDS writes a record only if every blob it names is in that account; a reader still follows `ownerDid` wherever it points.",
"properties": {
"blob": {
"accept": [
"audio/wav",
"audio/flac"
],
"maxSize": 52428800,
"type": "blob"
},
"ownerDid": {
"format": "did",
"type": "string"
}
},
"required": [
"blob",
"ownerDid"
],
"type": "object"
}
A recording over a length of time: what an audio track plays. The same object stands in a track, where it is placed at a tick, and in an at.atmosynth.audioClip record of its own, where it is not.
Properties
The tick of the arrangement this clip starts at. Absent in a clip that is a record of its own.
minimum: 0
No description available.
Ticks over which the clip rises from silence at its start. Optional: absent is none.
minimum: 0
Ticks over which the clip falls to silence at its end. Optional: absent is none.
minimum: 0
The clip's own gain, in decibels, from -96 to 24, as decimal text. Optional: absent is 0.
maxLength: 32 bytes
How many ticks the clip lasts. The recording is cut off at its end.
minimum: 1
Where the clip loops: what it plays from its start to this many ticks is played again and again until `length`, so a two-bar loop fills sixteen bars as one clip. Each pass starts where the clip does, at `offset` or where its warp markers place tick 0, and counts its ticks from there. The fades are the clip's, at its start and its end, and not each pass's. Optional: absent plays the recording once, over the whole length.
minimum: 1
No description available.
maxLength: 320 bytesminLength: 1 bytesmaxGraphemes: 64 graphemes
Where in the recording the clip starts, in seconds from its beginning, as decimal text. Optional: absent is the beginning. Read only where the clip has no warp markers, which say it themselves.
maxLength: 32 bytes
No description available.
How the recording follows the arrangement's tempo: markers in order, each later than the one before in ticks and in seconds. Between two markers the recording is stretched so that the one moment meets the one tick and the next the next; before the first and after the last the nearest pair's stretch goes on. Two markers stretch a whole loop evenly, and more correct a recording that drifts. Optional: absent plays the recording at the speed it was recorded at, from `offset`, whatever the tempo.
maxLength: 1024 items
View raw schema
{
"description": "A recording over a length of time: what an audio track plays. The same object stands in a track, where it is placed at a tick, and in an at.atmosynth.audioClip record of its own, where it is not.",
"properties": {
"at": {
"description": "The tick of the arrangement this clip starts at. Absent in a clip that is a record of its own.",
"minimum": 0,
"type": "integer"
},
"audio": {
"ref": "#audio",
"type": "ref"
},
"fadeIn": {
"description": "Ticks over which the clip rises from silence at its start. Optional: absent is none.",
"minimum": 0,
"type": "integer"
},
"fadeOut": {
"description": "Ticks over which the clip falls to silence at its end. Optional: absent is none.",
"minimum": 0,
"type": "integer"
},
"gain": {
"description": "The clip's own gain, in decibels, from -96 to 24, as decimal text. Optional: absent is 0.",
"maxLength": 32,
"type": "string"
},
"length": {
"description": "How many ticks the clip lasts. The recording is cut off at its end.",
"minimum": 1,
"type": "integer"
},
"loopLength": {
"description": "Where the clip loops: what it plays from its start to this many ticks is played again and again until `length`, so a two-bar loop fills sixteen bars as one clip. Each pass starts where the clip does, at `offset` or where its warp markers place tick 0, and counts its ticks from there. The fades are the clip's, at its start and its end, and not each pass's. Optional: absent plays the recording once, over the whole length.",
"minimum": 1,
"type": "integer"
},
"name": {
"maxGraphemes": 64,
"maxLength": 320,
"minLength": 1,
"type": "string"
},
"offset": {
"description": "Where in the recording the clip starts, in seconds from its beginning, as decimal text. Optional: absent is the beginning. Read only where the clip has no warp markers, which say it themselves.",
"maxLength": 32,
"type": "string"
},
"origin": {
"ref": "#origin",
"type": "ref"
},
"warp": {
"description": "How the recording follows the arrangement's tempo: markers in order, each later than the one before in ticks and in seconds. Between two markers the recording is stretched so that the one moment meets the one tick and the next the next; before the first and after the last the nearest pair's stretch goes on. Two markers stretch a whole loop evenly, and more correct a recording that drifts. Optional: absent plays the recording at the speed it was recorded at, from `offset`, whatever the tempo.",
"items": {
"ref": "#warpMarker",
"type": "ref"
},
"maxLength": 1024,
"type": "array"
}
},
"required": [
"length",
"audio"
],
"type": "object"
}
One target's automation across the whole arrangement.
Properties
In order of `at`, one to a tick. Before the first point the target is at the first point's value; after the last, at the last's.
maxLength: 8192 items
No description available.
View raw schema
{
"description": "One target's automation across the whole arrangement.",
"properties": {
"points": {
"description": "In order of `at`, one to a tick. Before the first point the target is at the first point's value; after the last, at the last's.",
"items": {
"ref": "#automationPoint",
"type": "ref"
},
"maxLength": 8192,
"type": "array"
},
"target": {
"refs": [
"#stripTarget",
"#parameterTarget"
],
"type": "union"
}
},
"required": [
"target",
"points"
],
"type": "object"
}
The value a target takes at one tick.
Properties
The tick of the arrangement, or of the track where the track is a record of its own.
minimum: 0
Whether the value is held until the next point, which is jumped to. Optional: absent is a straight line, and only `true` is written.
The value, in the units the target is written in: decibels and the pan's -1 to 1 for a strip, and for a parameter what its patch writes it as. Between points the value travels in a straight line along the target's own scale — a parameter's as its module declares it, decibels for a level — so a cutoff swept between two points sweeps as its knob would.
maxLength: 64 bytes
View raw schema
{
"description": "The value a target takes at one tick.",
"properties": {
"at": {
"description": "The tick of the arrangement, or of the track where the track is a record of its own.",
"minimum": 0,
"type": "integer"
},
"hold": {
"description": "Whether the value is held until the next point, which is jumped to. Optional: absent is a straight line, and only `true` is written.",
"type": "boolean"
},
"value": {
"description": "The value, in the units the target is written in: decibels and the pan's -1 to 1 for a strip, and for a parameter what its patch writes it as. Between points the value travels in a straight line along the target's own scale — a parameter's as its module declares it, decibels for a level — so a cutoff swept between two points sweeps as its knob would.",
"maxLength": 64,
"type": "string"
}
},
"required": [
"at",
"value"
],
"type": "object"
}
How far from its pitch a note is at one moment of it.
Properties
The tick of the note this point is at, counted from the note's own start.
minimum: 0
Semitones from the note's pitch, from -96 to 96, as decimal text. Upwards is positive.
maxLength: 32 bytes
View raw schema
{
"description": "How far from its pitch a note is at one moment of it.",
"properties": {
"at": {
"description": "The tick of the note this point is at, counted from the note's own start.",
"minimum": 0,
"type": "integer"
},
"value": {
"description": "Semitones from the note's pitch, from -96 to 96, as decimal text. Upwards is positive.",
"maxLength": 32,
"type": "string"
}
},
"required": [
"at",
"value"
],
"type": "object"
}
One effect in a chain: a patch that takes audio in through its input stage and passes it on through its output stage.
Properties
Whether the effect is heard. Optional: absent is on, and only `false` is written. A switched-off insert passes its input on unchanged.
This insert's name within its track, for automation to address. Unique in the track.
maxLength: 64 bytesminLength: 1 bytes
No description available.
An at.atmosynth.patch record, `$type` and all, held here whole. It holds an input stage, which is where the track's audio arrives and, on its second output, the key its `sidechain` names.
The id of the track whose audio reaches this effect as a key: read there, never summed into what is heard. Optional: absent is no key.
maxLength: 64 bytes
View raw schema
{
"description": "One effect in a chain: a patch that takes audio in through its input stage and passes it on through its output stage.",
"properties": {
"enabled": {
"description": "Whether the effect is heard. Optional: absent is on, and only `false` is written. A switched-off insert passes its input on unchanged.",
"type": "boolean"
},
"id": {
"description": "This insert's name within its track, for automation to address. Unique in the track.",
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"origin": {
"ref": "#origin",
"type": "ref"
},
"patch": {
"description": "An at.atmosynth.patch record, `$type` and all, held here whole. It holds an input stage, which is where the track's audio arrives and, on its second output, the key its `sidechain` names.",
"type": "unknown"
},
"sidechain": {
"description": "The id of the track whose audio reaches this effect as a key: read there, never summed into what is heard. Optional: absent is no key.",
"maxLength": 64,
"type": "string"
}
},
"required": [
"id",
"patch"
],
"type": "object"
}
A key: a tonic and a mode.
Properties
The mode. `minor` is the natural minor. A reader meeting a mode it does not know still knows the tonic.
maxLength: 32 bytes
Known values: major, minor, dorian, phrygian, lydian, mixolydian, locrian
The tonic as a pitch class, 0 being C and 11 B. How it is spelt, F♯ or G♭, is the reader's to decide.
minimum: 0maximum: 11
View raw schema
{
"description": "A key: a tonic and a mode.",
"properties": {
"mode": {
"description": "The mode. `minor` is the natural minor. A reader meeting a mode it does not know still knows the tonic.",
"knownValues": [
"major",
"minor",
"dorian",
"phrygian",
"lydian",
"mixolydian",
"locrian"
],
"maxLength": 32,
"type": "string"
},
"tonic": {
"description": "The tonic as a pitch class, 0 being C and 11 B. How it is spelt, F♯ or G♭, is the reader's to decide.",
"maximum": 11,
"minimum": 0,
"type": "integer"
}
},
"required": [
"tonic",
"mode"
],
"type": "object"
}
The key from one tick on.
Properties
The tick this key starts at. The first point is at 0, and each after it later than the one before.
minimum: 0
No description available.
View raw schema
{
"description": "The key from one tick on.",
"properties": {
"at": {
"description": "The tick this key starts at. The first point is at 0, and each after it later than the one before.",
"minimum": 0,
"type": "integer"
},
"key": {
"ref": "#key",
"type": "ref"
}
},
"required": [
"at",
"key"
],
"type": "object"
}
What its creator lets others do with a record, as the SPDX identifier of a Creative Commons licence. A record that says nothing grants nothing, which is copyright's own default: anybody wanting to use it asks its creator first. A reader meeting an identifier it does not know reads it as granting nothing it can be sure of.
ConstraintsmaxLength: 64 bytes
CC0-1.0 CC-BY-4.0 CC-BY-SA-4.0 CC-BY-NC-4.0 CC-BY-NC-SA-4.0 CC-BY-ND-4.0 CC-BY-NC-ND-4.0
View raw schema
{
"description": "What its creator lets others do with a record, as the SPDX identifier of a Creative Commons licence. A record that says nothing grants nothing, which is copyright's own default: anybody wanting to use it asks its creator first. A reader meeting an identifier it does not know reads it as granting nothing it can be sure of.",
"knownValues": [
"CC0-1.0",
"CC-BY-4.0",
"CC-BY-SA-4.0",
"CC-BY-NC-4.0",
"CC-BY-NC-SA-4.0",
"CC-BY-ND-4.0",
"CC-BY-NC-ND-4.0"
],
"maxLength": 64,
"type": "string"
}
One record this one came from, how, and its creator. Written here and not there, so it survives that record being changed or deleted.
Properties
The version of that record this came from. Optional: absent where it was not known.
A decentralized identifier (DID).
`fork`: this began as a copy of that, and changed. `import`: that was taken into this as it was — a clip from a patch's loop, a track from somebody's arrangement. A reader meeting another value still has a parent, and should say only that this came from it.
maxLength: 32 bytes
Known values: fork, import
Where that record is. Absent where the record is somewhere a public record may not point, such as a band: the entry is then credit, the parent's creator and the relation and nothing more.
Which part of that record this came from, where it was a part: a track's `id` in an arrangement, or a sequencer's instance id and a loop as `<instanceId>/<loop>` in a patch. Optional: absent is the whole record.
maxLength: 256 bytes
View raw schema
{
"description": "One record this one came from, how, and its creator. Written here and not there, so it survives that record being changed or deleted.",
"properties": {
"cid": {
"description": "The version of that record this came from. Optional: absent where it was not known.",
"format": "cid",
"type": "string"
},
"creatorDid": {
"format": "did",
"type": "string"
},
"relation": {
"description": "`fork`: this began as a copy of that, and changed. `import`: that was taken into this as it was — a clip from a patch's loop, a track from somebody's arrangement. A reader meeting another value still has a parent, and should say only that this came from it.",
"knownValues": [
"fork",
"import"
],
"maxLength": 32,
"type": "string"
},
"uri": {
"description": "Where that record is. Absent where the record is somewhere a public record may not point, such as a band: the entry is then credit, the parent's creator and the relation and nothing more.",
"format": "at-uri",
"type": "string"
},
"within": {
"description": "Which part of that record this came from, where it was a part: a track's `id` in an arrangement, or a sequencer's instance id and a loop as `<instanceId>/<loop>` in a patch. Optional: absent is the whole record.",
"maxLength": 256,
"type": "string"
}
},
"required": [
"relation",
"creatorDid"
],
"type": "object"
}
A named moment of an arrangement: Intro, Drop, the second verse.
Properties
No description available.
minimum: 0
No description available.
maxLength: 320 bytesminLength: 1 bytesmaxGraphemes: 32 graphemes
View raw schema
{
"description": "A named moment of an arrangement: Intro, Drop, the second verse.",
"properties": {
"at": {
"minimum": 0,
"type": "integer"
},
"name": {
"maxGraphemes": 32,
"maxLength": 320,
"minLength": 1,
"type": "string"
}
},
"required": [
"at",
"name"
],
"type": "object"
}
The meter from one bar line on. Every position in an arrangement is a tick rather than a bar, so a change of meter moves the bar lines and the grid and never a note.
Properties
The tick this meter starts at: 0 for the first point, and for every later one a bar line of the meter before it.
minimum: 0
No description available.
View raw schema
{
"description": "The meter from one bar line on. Every position in an arrangement is a tick rather than a bar, so a change of meter moves the bar lines and the grid and never a note.",
"properties": {
"at": {
"description": "The tick this meter starts at: 0 for the first point, and for every later one a bar line of the meter before it.",
"minimum": 0,
"type": "integer"
},
"timeSignature": {
"ref": "at.atmosynth.patch#timeSignature",
"type": "ref"
}
},
"required": [
"at",
"timeSignature"
],
"type": "object"
}
One note of a clip: struck at a tick, held for so many, as hard and as often as it says.
Properties
The tick of the clip this note is struck at, counted from the clip's start.
minimum: 0
How the note is bent while it is held: points in order of `at`, one to a tick, joined by straight lines, the first point's value before it and the last's after it. Optional: absent is not bent.
maxLength: 256 items
How many ticks it is held for. A note is cut off by the next note of its own pitch, since the same pitch overlapping itself is one voice rather than two.
minimum: 1
The MIDI note number. 60 is middle C.
minimum: 0maximum: 127
How likely it is to be struck each time it comes round, in percent, asked afresh every time. Optional: absent is every time.
minimum: 1maximum: 100
How hard it is struck, on the MIDI scale. Optional: absent is 100.
minimum: 1maximum: 127
View raw schema
{
"description": "One note of a clip: struck at a tick, held for so many, as hard and as often as it says.",
"properties": {
"at": {
"description": "The tick of the clip this note is struck at, counted from the clip's start.",
"minimum": 0,
"type": "integer"
},
"bend": {
"description": "How the note is bent while it is held: points in order of `at`, one to a tick, joined by straight lines, the first point's value before it and the last's after it. Optional: absent is not bent.",
"items": {
"ref": "#bendPoint",
"type": "ref"
},
"maxLength": 256,
"type": "array"
},
"hold": {
"description": "How many ticks it is held for. A note is cut off by the next note of its own pitch, since the same pitch overlapping itself is one voice rather than two.",
"minimum": 1,
"type": "integer"
},
"note": {
"description": "The MIDI note number. 60 is middle C.",
"maximum": 127,
"minimum": 0,
"type": "integer"
},
"probability": {
"description": "How likely it is to be struck each time it comes round, in percent, asked afresh every time. Optional: absent is every time.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"velocity": {
"description": "How hard it is struck, on the MIDI scale. Optional: absent is 100.",
"maximum": 127,
"minimum": 1,
"type": "integer"
}
},
"required": [
"at",
"hold",
"note"
],
"type": "object"
}
Notes over a length of time: what an instrument track plays. The same object stands in a track, where it is placed at a tick, and in an at.atmosynth.noteClip record of its own, where it is not.
Properties
The tick of the arrangement this clip starts at. Absent in a clip that is a record of its own, which is placed nowhere until somebody places it.
minimum: 0
How the clip's notes slide into one another, as a sequencer's do. Optional: absent is no slide.
How many ticks the clip lasts. A note still held at its end is let go there.
minimum: 1
Where the clip loops: the notes from its start to this many ticks are played again and again until `length`, so one bar of a groove fills eight bars as one bar of notes. A note held past the loop's end is let go there. Optional: absent plays the notes once, over the whole length.
minimum: 1
No description available.
maxLength: 320 bytesminLength: 1 bytesmaxGraphemes: 64 graphemes
The notes, each before the loop's end, or the clip's where it does not loop.
maxLength: 8192 items
No description available.
The grid the clip is drawn and snapped to. A guide, not part of what is played. Optional: absent is sixteenths.
How the clip swings, counted in pairs from its own start. The notes stay at the ticks they are written at; the swing is applied as they are played. Optional: absent is straight.
View raw schema
{
"description": "Notes over a length of time: what an instrument track plays. The same object stands in a track, where it is placed at a tick, and in an at.atmosynth.noteClip record of its own, where it is not.",
"properties": {
"at": {
"description": "The tick of the arrangement this clip starts at. Absent in a clip that is a record of its own, which is placed nowhere until somebody places it.",
"minimum": 0,
"type": "integer"
},
"glide": {
"description": "How the clip's notes slide into one another, as a sequencer's do. Optional: absent is no slide.",
"ref": "at.atmosynth.patch#glide",
"type": "ref"
},
"length": {
"description": "How many ticks the clip lasts. A note still held at its end is let go there.",
"minimum": 1,
"type": "integer"
},
"loopLength": {
"description": "Where the clip loops: the notes from its start to this many ticks are played again and again until `length`, so one bar of a groove fills eight bars as one bar of notes. A note held past the loop's end is let go there. Optional: absent plays the notes once, over the whole length.",
"minimum": 1,
"type": "integer"
},
"name": {
"maxGraphemes": 64,
"maxLength": 320,
"minLength": 1,
"type": "string"
},
"notes": {
"description": "The notes, each before the loop's end, or the clip's where it does not loop.",
"items": {
"ref": "#note",
"type": "ref"
},
"maxLength": 8192,
"type": "array"
},
"origin": {
"ref": "#origin",
"type": "ref"
},
"resolution": {
"description": "The grid the clip is drawn and snapped to. A guide, not part of what is played. Optional: absent is sixteenths.",
"ref": "at.atmosynth.patch#resolution",
"type": "ref"
},
"swing": {
"description": "How the clip swings, counted in pairs from its own start. The notes stay at the ticks they are written at; the swing is applied as they are played. Optional: absent is straight.",
"ref": "at.atmosynth.patch#swing",
"type": "ref"
}
},
"required": [
"length",
"notes"
],
"type": "object"
}
Where an inline copy was imported from, and whether it still is that record. An import is a snapshot and a link: the arrangement holds the copy, so it plays whatever becomes of the original, and the link says which version was copied, so a reader can tell when the original has since changed and offer it.
Properties
The version that was copied.
Whether this copy is still that version, unchanged. The first edit to the copy removes it, and the copy is the arrangement's own from then on, still credited to where it came from. Only `true` is written.
An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).
View raw schema
{
"description": "Where an inline copy was imported from, and whether it still is that record. An import is a snapshot and a link: the arrangement holds the copy, so it plays whatever becomes of the original, and the link says which version was copied, so a reader can tell when the original has since changed and offer it.",
"properties": {
"cid": {
"description": "The version that was copied.",
"format": "cid",
"type": "string"
},
"linked": {
"description": "Whether this copy is still that version, unchanged. The first edit to the copy removes it, and the copy is the arrangement's own from then on, still credited to where it came from. Only `true` is written.",
"type": "boolean"
},
"uri": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"uri",
"cid"
],
"type": "object"
}
Automation of one parameter of one instance in the track's instrument or in one of its inserts.
Properties
The id of the insert whose patch holds the instance. Optional: absent is the track's instrument.
maxLength: 64 bytes
No description available.
maxLength: 64 bytesminLength: 1 bytes
No description available.
maxLength: 64 bytesminLength: 1 bytes
View raw schema
{
"description": "Automation of one parameter of one instance in the track's instrument or in one of its inserts.",
"properties": {
"insert": {
"description": "The id of the insert whose patch holds the instance. Optional: absent is the track's instrument.",
"maxLength": 64,
"type": "string"
},
"instanceId": {
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"parameterId": {
"maxLength": 64,
"minLength": 1,
"type": "string"
}
},
"required": [
"instanceId",
"parameterId"
],
"type": "object"
}
Some of a track's audio sent to a bus as well as to where the track goes.
Properties
How much, in decibels, from -96 to 6, as decimal text.
maxLength: 32 bytes
Whether it leaves the track before its level and pan are applied or after. Optional: absent is `postFader`.
maxLength: 32 bytes
Known values: preFader, postFader
The id of the bus track it is sent to.
maxLength: 64 bytesminLength: 1 bytes
View raw schema
{
"description": "Some of a track's audio sent to a bus as well as to where the track goes.",
"properties": {
"level": {
"description": "How much, in decibels, from -96 to 6, as decimal text.",
"maxLength": 32,
"type": "string"
},
"tap": {
"description": "Whether it leaves the track before its level and pan are applied or after. Optional: absent is `postFader`.",
"knownValues": [
"preFader",
"postFader"
],
"maxLength": 32,
"type": "string"
},
"to": {
"description": "The id of the bus track it is sent to.",
"maxLength": 64,
"minLength": 1,
"type": "string"
}
},
"required": [
"to",
"level"
],
"type": "object"
}
Where a track ends: its level, its pan, whether it is heard, and what it sends. A track is heard when it is not muted and, where any track of the arrangement is soloed, it is one of them.
Properties
In decibels, from -96 to 6, as decimal text; -96 is silence. Optional: absent is 0.
maxLength: 32 bytes
From -1, all left, to 1, all right, as decimal text. Optional: absent is the middle.
maxLength: 32 bytes
No description available.
maxLength: 64 items
View raw schema
{
"description": "Where a track ends: its level, its pan, whether it is heard, and what it sends. A track is heard when it is not muted and, where any track of the arrangement is soloed, it is one of them.",
"properties": {
"level": {
"description": "In decibels, from -96 to 6, as decimal text; -96 is silence. Optional: absent is 0.",
"maxLength": 32,
"type": "string"
},
"mute": {
"description": "Only `true` is written.",
"type": "boolean"
},
"pan": {
"description": "From -1, all left, to 1, all right, as decimal text. Optional: absent is the middle.",
"maxLength": 32,
"type": "string"
},
"sends": {
"items": {
"ref": "#send",
"type": "ref"
},
"maxLength": 64,
"type": "array"
},
"solo": {
"description": "Only `true` is written.",
"type": "boolean"
}
},
"type": "object"
}
Automation of a track's own strip.
Properties
No description available.
maxLength: 32 bytes
Known values: level, pan, send
Which send, by the bus it goes to, where `control` is `send`.
maxLength: 64 bytes
View raw schema
{
"description": "Automation of a track's own strip.",
"properties": {
"control": {
"knownValues": [
"level",
"pan",
"send"
],
"maxLength": 32,
"type": "string"
},
"to": {
"description": "Which send, by the bus it goes to, where `control` is `send`.",
"maxLength": 64,
"type": "string"
}
},
"required": [
"control"
],
"type": "object"
}
The tempo from one tick on.
Properties
The tick this tempo starts at. The first point of a tempo map is at 0, and each after it later than the one before.
minimum: 0
Beats per minute, a beat being a quarter note, from 20 to 999, written as its decimal text, as every number in these descriptions that need not be whole is.
maxLength: 32 bytes
Whether the tempo travels from this point to the next in a straight line, in beats per minute over ticks, rather than holding until the next point. Optional: absent is held, and only `true` is written. A ramp on the last point means nothing.
View raw schema
{
"description": "The tempo from one tick on.",
"properties": {
"at": {
"description": "The tick this tempo starts at. The first point of a tempo map is at 0, and each after it later than the one before.",
"minimum": 0,
"type": "integer"
},
"bpm": {
"description": "Beats per minute, a beat being a quarter note, from 20 to 999, written as its decimal text, as every number in these descriptions that need not be whole is.",
"maxLength": 32,
"type": "string"
},
"ramp": {
"description": "Whether the tempo travels from this point to the next in a straight line, in beats per minute over ticks, rather than holding until the next point. Optional: absent is held, and only `true` is written. A ramp on the last point means nothing.",
"type": "boolean"
}
},
"required": [
"at",
"bpm"
],
"type": "object"
}
One row of an arrangement: an instrument playing note clips, an audio track playing audio clips, or a bus taking other tracks' audio. Each runs through its inserts in order into its strip, and on to the one place it goes. The same object stands in an arrangement, a part, and an at.atmosynth.track record of its own.
Properties
An audio track's clips. Two clips of one track do not overlap.
maxLength: 1024 items
One lane to a target.
maxLength: 256 items
The colour it is drawn in, as `#rrggbb`. Decoration only: nothing is said by it alone.
maxLength: 7 bytes
This track's name within its arrangement, for routing and automation to address. Unique in the arrangement, the tracks of every part it includes among them. `master` is the arrangement's master bus.
maxLength: 64 bytesminLength: 1 bytes
The effects the track's audio runs through, in order, before its strip.
maxLength: 32 items
An instrument track's instrument: an at.atmosynth.patch record, `$type` and all, held here whole. Its note clips are played to every Keyboard block in it as the player's keys would be, and what its output stage would send to the speakers goes on into the track's inserts. Its own tempo is not heard: the arrangement's is.
`instrument` plays its note clips through its instrument; `audio` plays its audio clips; `bus` plays no clips and hears whatever names it as its `to`, a send, or both. A reader meeting a kind it does not know plays the track as silence and says so.
maxLength: 32 bytes
Known values: instrument, audio, bus
No description available.
maxLength: 320 bytesminLength: 1 bytesmaxGraphemes: 64 graphemes
An instrument track's clips. Two clips of one track do not overlap.
maxLength: 1024 items
No description available.
No description available.
The id of the bus this track's audio goes to. Optional: absent is `master`, and the master itself goes to the speakers and names nothing. Every track goes to one place, and nothing returns to where it came from by any `to`, send or sidechain.
maxLength: 64 bytes
View raw schema
{
"description": "One row of an arrangement: an instrument playing note clips, an audio track playing audio clips, or a bus taking other tracks' audio. Each runs through its inserts in order into its strip, and on to the one place it goes. The same object stands in an arrangement, a part, and an at.atmosynth.track record of its own.",
"properties": {
"audioClips": {
"description": "An audio track's clips. Two clips of one track do not overlap.",
"items": {
"ref": "#audioClip",
"type": "ref"
},
"maxLength": 1024,
"type": "array"
},
"automation": {
"description": "One lane to a target.",
"items": {
"ref": "#automationLane",
"type": "ref"
},
"maxLength": 256,
"type": "array"
},
"colour": {
"description": "The colour it is drawn in, as `#rrggbb`. Decoration only: nothing is said by it alone.",
"maxLength": 7,
"type": "string"
},
"id": {
"description": "This track's name within its arrangement, for routing and automation to address. Unique in the arrangement, the tracks of every part it includes among them. `master` is the arrangement's master bus.",
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"inserts": {
"description": "The effects the track's audio runs through, in order, before its strip.",
"items": {
"ref": "#insert",
"type": "ref"
},
"maxLength": 32,
"type": "array"
},
"instrument": {
"description": "An instrument track's instrument: an at.atmosynth.patch record, `$type` and all, held here whole. Its note clips are played to every Keyboard block in it as the player's keys would be, and what its output stage would send to the speakers goes on into the track's inserts. Its own tempo is not heard: the arrangement's is.",
"type": "unknown"
},
"kind": {
"description": "`instrument` plays its note clips through its instrument; `audio` plays its audio clips; `bus` plays no clips and hears whatever names it as its `to`, a send, or both. A reader meeting a kind it does not know plays the track as silence and says so.",
"knownValues": [
"instrument",
"audio",
"bus"
],
"maxLength": 32,
"type": "string"
},
"name": {
"maxGraphemes": 64,
"maxLength": 320,
"minLength": 1,
"type": "string"
},
"noteClips": {
"description": "An instrument track's clips. Two clips of one track do not overlap.",
"items": {
"ref": "#noteClip",
"type": "ref"
},
"maxLength": 1024,
"type": "array"
},
"origin": {
"ref": "#origin",
"type": "ref"
},
"strip": {
"ref": "#strip",
"type": "ref"
},
"to": {
"description": "The id of the bus this track's audio goes to. Optional: absent is `master`, and the master itself goes to the speakers and names nothing. Every track goes to one place, and nothing returns to where it came from by any `to`, send or sidechain.",
"maxLength": 64,
"type": "string"
}
},
"required": [
"id",
"kind"
],
"type": "object"
}
One moment of a recording pinned to one tick of its clip.
Properties
The tick of the clip, counted from its start.
minimum: 0
The moment of the recording, in seconds from its beginning, as decimal text.
maxLength: 32 bytes
View raw schema
{
"description": "One moment of a recording pinned to one tick of its clip.",
"properties": {
"at": {
"description": "The tick of the clip, counted from its start.",
"minimum": 0,
"type": "integer"
},
"seconds": {
"description": "The moment of the recording, in seconds from its beginning, as decimal text.",
"maxLength": 32,
"type": "string"
}
},
"required": [
"at",
"seconds"
],
"type": "object"
}