Separate Stems
separate_stemsExtract vocal, instrumental, or multi-stem components from audio files or direct URLs. Choose from two to six stems, with adjustable quality and output format.
Instructions
Submit an audio file or direct audio URL to StemSplit for stem separation. By default (wait=true), this polls until completion and downloads all output stems to disk, returning local file paths the LLM can hand off to other tools. For YouTube URLs, use separate_youtube instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Local absolute path (e.g. /Users/me/song.mp3 or ~/Music/song.wav) or direct audio URL (https://...). Do NOT pass YouTube or SoundCloud URLs here — use separate_youtube for YouTube, separate_soundcloud for SoundCloud. | |
| outputType | No | Which stems to extract. VOCALS, INSTRUMENTAL, BOTH (default), FOUR_STEMS (vocals+drums+bass+other), SIX_STEMS (adds piano+guitar — requires quality=BEST). | BOTH |
| quality | No | Processing quality. FAST, BALANCED, or BEST (default). | BEST |
| outputFormat | No | Output file format. MP3 (default), WAV, or FLAC. | MP3 |
| fileName | No | Optional display name for the job (defaults to the source filename). | |
| wait | No | If true (default), block until the job completes and download stems to disk. If false, return job_id immediately and let the caller poll get_job. | |
| timeoutSeconds | No | Maximum time to wait for completion when wait=true. Default 600s (10 minutes). | |
| pollIntervalSeconds | No | How often to check job status when wait=true. Default 5s. | |
| outputDir | No | Directory to write stems into when wait=true. Defaults to ~/Downloads/stemsplit/<jobId>/. |