at.atmosynth.defs

atmosynth.at

Documentation

audio object

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 blob Required

No description available.

maxSize: 52.4 MB
ownerDid string did Required

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"
}
audioClip 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

at integer Optional

The tick of the arrangement this clip starts at. Absent in a clip that is a record of its own.

minimum: 0
audio ref #audio Required

No description available.

fadeIn integer Optional

Ticks over which the clip rises from silence at its start. Optional: absent is none.

minimum: 0
fadeOut integer Optional

Ticks over which the clip falls to silence at its end. Optional: absent is none.

minimum: 0
gain string Optional

The clip's own gain, in decibels, from -96 to 24, as decimal text. Optional: absent is 0.

maxLength: 32 bytes
length integer Required

How many ticks the clip lasts. The recording is cut off at its end.

minimum: 1
loopLength integer Optional

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
name string Optional

No description available.

maxLength: 320 bytesminLength: 1 bytesmaxGraphemes: 64 graphemes
offset string Optional

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
origin ref #origin Optional

No description available.

warp array of ref#warpMarker Optional

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"
}
automationLane object

One target's automation across the whole arrangement.

Properties

points array of ref#automationPoint Required

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
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"
}
automationPoint object

The value a target takes at one tick.

Properties

at integer Required

The tick of the arrangement, or of the track where the track is a record of its own.

minimum: 0
hold boolean Optional

Whether the value is held until the next point, which is jumped to. Optional: absent is a straight line, and only `true` is written.

value string Required

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"
}
bendPoint object

How far from its pitch a note is at one moment of it.

Properties

at integer Required

The tick of the note this point is at, counted from the note's own start.

minimum: 0
value string Required

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"
}
insert 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

enabled boolean Optional

Whether the effect is heard. Optional: absent is on, and only `false` is written. A switched-off insert passes its input on unchanged.

id string Required

This insert's name within its track, for automation to address. Unique in the track.

maxLength: 64 bytesminLength: 1 bytes
origin ref #origin Optional

No description available.

patch unknown Required

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.

sidechain string Optional

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"
}
key object

A key: a tonic and a mode.

Properties

mode string Required

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
tonic integer Required

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"
}
keyPoint object

The key from one tick on.

Properties

at integer Required

The tick this key starts at. The first point is at 0, and each after it later than the one before.

minimum: 0
key ref #key Required

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"
}
license string

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
Known Values (other values may be valid)
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"
}
lineage object

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 string cid Optional

The version of that record this came from. Optional: absent where it was not known.

creatorDid string did Required

A decentralized identifier (DID).

relation string Required

`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
uri string at-uri Optional

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.

within string Optional

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"
}
marker object

A named moment of an arrangement: Intro, Drop, the second verse.

Properties

at integer Required

No description available.

minimum: 0
name string Required

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"
}
meterPoint 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

at integer Required

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
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"
}
note object

One note of a clip: struck at a tick, held for so many, as hard and as often as it says.

Properties

at integer Required

The tick of the clip this note is struck at, counted from the clip's start.

minimum: 0
bend array of ref#bendPoint Optional

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
hold integer Required

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
note integer Required

The MIDI note number. 60 is middle C.

minimum: 0maximum: 127
probability integer Optional

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
velocity integer Optional

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"
}
noteClip 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

at integer Optional

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
glide ref at.atmosynth.patch#glide Optional

How the clip's notes slide into one another, as a sequencer's do. Optional: absent is no slide.

length integer Required

How many ticks the clip lasts. A note still held at its end is let go there.

minimum: 1
loopLength integer Optional

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
name string Optional

No description available.

maxLength: 320 bytesminLength: 1 bytesmaxGraphemes: 64 graphemes
notes array of ref#note Required

The notes, each before the loop's end, or the clip's where it does not loop.

maxLength: 8192 items
origin ref #origin Optional

No description available.

resolution ref at.atmosynth.patch#resolution Optional

The grid the clip is drawn and snapped to. A guide, not part of what is played. Optional: absent is sixteenths.

swing ref at.atmosynth.patch#swing Optional

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"
}
origin 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

cid string cid Required

The version that was copied.

linked boolean Optional

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.

uri string at-uri Required

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"
}
parameterTarget object

Automation of one parameter of one instance in the track's instrument or in one of its inserts.

Properties

insert string Optional

The id of the insert whose patch holds the instance. Optional: absent is the track's instrument.

maxLength: 64 bytes
instanceId string Required

No description available.

maxLength: 64 bytesminLength: 1 bytes
parameterId string Required

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"
}
send object

Some of a track's audio sent to a bus as well as to where the track goes.

Properties

level string Required

How much, in decibels, from -96 to 6, as decimal text.

maxLength: 32 bytes
tap string Optional

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
to string Required

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"
}
strip 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

level string Optional

In decibels, from -96 to 6, as decimal text; -96 is silence. Optional: absent is 0.

maxLength: 32 bytes
mute boolean Optional

Only `true` is written.

pan string Optional

From -1, all left, to 1, all right, as decimal text. Optional: absent is the middle.

maxLength: 32 bytes
sends array of ref#send Optional

No description available.

maxLength: 64 items
solo boolean Optional

Only `true` is written.

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"
}
stripTarget object

Automation of a track's own strip.

Properties

control string Required

No description available.

maxLength: 32 bytes
Known values: level, pan, send
to string Optional

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"
}
tempoPoint object

The tempo from one tick on.

Properties

at integer Required

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
bpm string Required

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
ramp boolean Optional

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"
}
track 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

audioClips array of ref#audioClip Optional

An audio track's clips. Two clips of one track do not overlap.

maxLength: 1024 items
automation array of ref#automationLane Optional

One lane to a target.

maxLength: 256 items
colour string Optional

The colour it is drawn in, as `#rrggbb`. Decoration only: nothing is said by it alone.

maxLength: 7 bytes
id string Required

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
inserts array of ref#insert Optional

The effects the track's audio runs through, in order, before its strip.

maxLength: 32 items
instrument unknown Optional

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.

kind string Required

`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
name string Optional

No description available.

maxLength: 320 bytesminLength: 1 bytesmaxGraphemes: 64 graphemes
noteClips array of ref#noteClip Optional

An instrument track's clips. Two clips of one track do not overlap.

maxLength: 1024 items
origin ref #origin Optional

No description available.

strip ref #strip Optional

No description available.

to string Optional

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"
}
warpMarker object

One moment of a recording pinned to one tick of its clip.

Properties

at integer Required

The tick of the clip, counted from its start.

minimum: 0
seconds string Required

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"
}

Lexicon Garden

@