Skip to main content
adapt.separate_stems takes a finished, mixed track and splits it into its parts (“stems”), each as its own file. Use it to make an instrumental or a vocal-only version of a song, to remix or re-balance a track, or to pull out a drum loop.

The request

There is nothing else to choose: every request returns all five stems. Every field, with its exact rules: submit and poll in the API Reference.

Example

This separates a song and saves each stem as <kind>.flac. It uses the reference client; save soundpiece.py or soundpiece.mjs next to it first.

The result

run returns the finished stems object, with one entry in outputs per stem:

Choosing parameters

There are none to choose, but a few things help:
  • Start from the best copy you have. A WAV or FLAC separates more cleanly than a heavily compressed MP3.
  • Want only an instrumental? Download just the instrumental stem; it is already the track minus its vocals, so you don’t need to mix the others back together.
  • Want new music in the same style instead? Look at create.remix_song or create.remix_instrumental.

Errors

When you submit (the request is refused, nothing is charged): While processing (the operation finishes as failed, with an error.code): Source limits for this endpoint: WAV, MP3 or FLAC, from 1 second to 5 minutes long, and at most 50 MB. See Errors for the response shapes, and for the errors every endpoint can return (401, 403, 429).

Cost

3 credits per request, for all five stems. Resending a request with the same idempotency key is not charged again.