Stems
The stem catalog, how stems relate to each other, and silent stems.
Catalog
Stems form a tree. The mix splits into vocals and instrumental, and each of those into smaller parts. Any stem can be requested on its own by its id.
| Id | Stem | Part of |
|---|---|---|
vocals | Vocals | the mix |
vocals.lead | Lead vocals | vocals |
vocals.backing | Backing vocals | vocals |
instrumental | Instrumental | the mix |
instrumental.drums | Drums | instrumental |
instrumental.drums.kick | Kick | instrumental.drums |
instrumental.drums.snare | Snare | instrumental.drums |
instrumental.drums.toms | Toms | instrumental.drums |
instrumental.drums.hihat | Hi-hat | instrumental.drums |
instrumental.drums.cymbals | Cymbals | instrumental.drums |
instrumental.bass | Bass | instrumental |
instrumental.guitar | Guitar | instrumental |
instrumental.piano | Piano | instrumental |
instrumental.other | Other | instrumental |
GET /catalog Get the catalog
Response
{
"stems": [
{
"id": "vocals",
"name": "Vocals",
"parent": "mix"
},
{
"id": "vocals.lead",
"name": "Lead vocals",
"parent": "vocals"
},
{
"id": "vocals.backing",
"name": "Backing vocals",
"parent": "vocals"
},
{
"id": "instrumental",
"name": "Instrumental",
"parent": "mix"
},
{
"id": "instrumental.drums",
"name": "Drums",
"parent": "instrumental"
},
{
"id": "instrumental.drums.kick",
"name": "Kick",
"parent": "instrumental.drums"
},
{
"id": "instrumental.drums.snare",
"name": "Snare",
"parent": "instrumental.drums"
},
{
"id": "instrumental.drums.toms",
"name": "Toms",
"parent": "instrumental.drums"
},
{
"id": "instrumental.drums.hihat",
"name": "Hi-hat",
"parent": "instrumental.drums"
},
{
"id": "instrumental.drums.cymbals",
"name": "Cymbals",
"parent": "instrumental.drums"
},
{
"id": "instrumental.bass",
"name": "Bass",
"parent": "instrumental"
},
{
"id": "instrumental.guitar",
"name": "Guitar",
"parent": "instrumental"
},
{
"id": "instrumental.piano",
"name": "Piano",
"parent": "instrumental"
},
{
"id": "instrumental.other",
"name": "Other",
"parent": "instrumental"
}
]
}Returns the same tree as JSON. No key required.
Remainders
Three stems are computed as the remainder of their parent: vocals.backing is the vocals without the lead, instrumental.other is the instrumental without drums, bass, guitar and piano, and instrumental.drums.cymbals is the drums without kick, snare, toms and hi-hat. A remainder contains everything
its siblings don't, so a stem's children always add up to the stem, and all stems together add up to the song.
Silent stems
A stem with no audio in the song, for example piano in a guitar band, is returned as {"silent": true} without files. A stem is silent when its loudest 100 ms are more than 50 dB below the
song's loudest 100 ms. Quiet parts above that threshold are delivered as files. Silent stems are charged like any other
stem.
Quality
- Separation is not perfect. Dense mixes leave some bleed of one stem in another, depending on the song.
- Guitar and piano separate less cleanly than drums and bass. Remainders contain whatever the other stems missed.
- Drum kit parts are split from the drums stem. Sounds without a part of their own, such as claps or shakers, are returned in the part they sound closest to.
- Lead and backing vocals are separated by how the voices sit in the mix. A doubled lead, or harmonies as loud as the lead, can end up in the other stem.
- Stems keep the song's level. They are scaled down together only if one would clip, so they still add up to the song.