fm.freemix.release.stem
A stem (isolated track component) belonging to a parent track
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | release.freemix.fm |
| Indexed |
Record
record · key tidProperties
aiDeclaration
objectDeclaration of AI involvement in creation
Duration of the stem in milliseconds
Audio file format
maxLength: 100knownValues: wav | flac | mp3
SHA-256 hash of the stem audio content
maxLength: 200
Size of the audio file in bytes
audioUrl
string · uriDEPRECATED (FM-508): no longer emitted. Stem audio is private (gated download / app-served preview) and is never surfaced in the portable record. Field kept (optional) to tolerate pre-FM-508 records without a putRecord rewrite. Stems never get a public clip.
maxLength: 3000
bpmCentis
integerCenti-BPM (BPM × 100), integer — the Lexicon model has no float type; decode as `bpmCentis / 100` on read. Mirrors `fm.freemix.release.track`.
minimum: 2000maximum: 99900
coverArtUrl
string · uriURL to cover art image
maxLength: 3000
Record creation timestamp
maxLength: 100
description
stringStem description
maxLength: 5000
detachedAt
string · datetimeFM-504 tombstone: when the parent link was severed
maxLength: 100
genres
arrayGenre classifications. Deliberately plural `genres` (it IS an array), NOT the track lexicon's singular `genre` — singular-for-an-array is misleading. Intentional divergence.
maxLength: 10
maxLength: 50
Human-readable name (e.g., 'Main Vocal', 'Acid Line', '808 Kit')
maxLength: 100
license
string · at-uriAT URI of the license grant record. For child stems this is the parent track's license, copied down at creation (FM-504)
maxLength: 3000
musicalKey
stringMusical key (e.g., 'Am', 'F#m', 'Bb'). Deliberately named `musicalKey`, NOT the track lexicon's `key`: `key` is dangerously overloaded in a data layer (record keys, rkeys, map keys), so `musicalKey` is collision-proof and self-documenting. Intentional divergence.
maxLength: 10
parentTrack
string · at-uriAT URI of the parent track this stem belongs to (optional for standalone stems)
maxLength: 3000
parentTrackCid
string · cidCID of the parent track record (pins to exact version)
maxLength: 200
position
integerDisplay order position (0-indexed)
minimum: 0
previouslyAttachedToCid
string · cidFM-504 tombstone: CID of the former parent track record at detach time
maxLength: 200
previouslyAttachedToUri
string · at-uriFM-504 tombstone: AT URI of the former parent track, set when this stem was detached (parent deleted, keep-stems path). Preserves remix-tree placement + royalty-lineage reconstructability
maxLength: 3000
Type/category of the stem
maxLength: 100knownValues: drums | bass | vocals | synth | guitar | keys | pad | lead | fx | other | 808 | synth-strings | vocal-sample | space-echo | plate | african-percussion | surdo | kete
tags
arrayFreeform tags
maxLength: 10
maxLength: 50
title
stringStem title (first-class stems). `label` remains the required human-readable name; `title` is the unified-on-title field added in FM-504
maxLength: 300
Similar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
fm.freemix.stem
recordA stem (isolated track component). Top-level leaf (FM-549 s38: pulled out from under release.* ; release.stem -> stem). May optionally reference a parent track and/or a parent stems-group.
-
fm.freemix.release.track
recordA music track record on FreeMix
-
fm.freemix.track
recordA music track record on FreeMix. Top-level leaf (FM-549 s38: pulled out from under the release.* prefix; release.track -> track).
-
fm.freemix.sample
recordA sample: a first-class leaf audio record (FM-549 s38: promoted from a DB-only concept to a real ATProto record). A building block — samples carry a 0% royalty by tier principle and no structured credits/notes (s41).
-
fm.plyr.stg.track
recordA music track published to the AT Protocol network.