# Mureka | Stem Song V2 | Audio Separation Splits a song into 12 individual audio stems and extracts each instrument as MIDI data, returning both stem tracks and MIDI files ready for DAW use. ## API Information - **Model Slug:** mureka-stem-song-v2-audio-seperation - **Branded URL:** https://www.eachlabs.ai/mureka/mureka/mureka-stem-song-v2-audio-seperation - **Provider:** Mureka - **Category:** Voice to Text - **Output Type:** object - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Audio Separation V2 (12-stem split + MIDI export): $0.70 per song (Mureka list) - **Estimated Processing Time:** 40 seconds - **Last Updated:** 2026-04-27 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/mureka-stem-song-v2-audio-seperation ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.7000 - **Pricing Details:** Audio Separation V2 (12-stem split + MIDI export): $0.70 per song (Mureka list) ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Audio Separation V2 (12-stem split + MIDI export): $0.70 per song (Mureka list) | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | url | string | Yes | - | - | Public URL of the song to stem-separate. Supports mp3 and m4a. Also accepts a data:audio/mp3;base64,… URL up to ~10 MB of encoded data. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "mureka-stem-song-v2-audio-seperation", "input": { "url": "https://cdn-us.eachlabs.ai/uploads/5c67d648-32fe-4124-9b44-e09295457828.mp3" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "object", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "Authorization: Bearer YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **Mureka | Stem Song V2 | Audio Separation Overview** The **Mureka | Stem Song V2 | Audio Separation** model from provider Mureka revolutionizes audio processing by splitting full songs into 12 distinct audio stems while extracting MIDI data for each instrument. This solves the challenge of isolating vocals, drums, bass, and other elements from mixed tracks, enabling precise remixing and editing in digital audio workstations (DAWs). Unlike basic stem splitters, its standout feature is simultaneous MIDI extraction, delivering note-level data for instruments like piano, guitar, and synths in two ZIP archives: one for WAV stems and one for MIDI files. Available via the **each::labs** platform, it supports MP3 or M4A inputs up to ~10 MB, with processing times of 30-90 seconds. Ideal for music producers seeking high-fidelity separation without manual labor, it outperforms simpler tools by providing DAW-ready outputs. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.