Spatial Audio

AI Mixing API — auto-mix stems to immersive audio

Static and dynamic analysis of your stems — tempo, genre, masking, strum patterns — drives automatic mixing to surround and object-based immersive audio, at a junior mixing engineer's quality bar.

AudioSpatial

Before & after

See the difference

Quiet, uneven dry stems go in — a loud, broadcast-ready master comes out.

INPUTThree dry stems
Vocal stemSTEM
Guitar stemSTEM
Keys stemSTEM
OUTPUTOne polished master
Mixed masterMASTER
Balanced, loud, broadcast-ready
Stems before-23 LUFS
AI master-14 LUFS

Mastered to broadcast loudness (-14 LUFS) — loud, punchy and consistent on every speaker.

What it does

Send stems, get a balanced mix — without gain staging by hand. Static analysis identifies tempo and genre to set the right effect parameters before a single fader moves. Dynamic analysis resolves masking: when stems collide in frequency, priority ordering keeps the lead audible. It even recognizes arpeggio versus strummed accompaniments and treats them differently. The result renders to stereo, 5.1, 7.1.2 or object-based spatial masters.

Full API reference
Python
import requests

url = "https://api.mlslabs.io/v1/ai-mixing/jobs"
resp = requests.post(
    url,
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={
        "stems": [
            {"url": ".../vocals.wav", "role": "vocals", "priority": 1},
            {"url": ".../drums.wav", "role": "drums", "priority": 2},
            {"url": ".../bass.wav", "role": "bass", "priority": 3},
            {"url": ".../guitar.wav", "role": "guitar", "priority": 4},
        ],
        "preset": "modern_pop",
        "output": {"format": "7.1.2", "objects": True},
    },
)
job = resp.json()
print(job["job_id"])

Key features

Why teams pick this API

Static intelligence

Rhythm and genre detection set the right effect parameters before a single fader moves.

Masking resolution

When stems collide in frequency, priority ordering (predefined, spectral energy or loudness) keeps the lead audible.

Playing-style awareness

Recognizes arpeggio vs strummed accompaniments and treats them differently — more musical, less auto.

Object-based output

Surround/immersive output with optional audio objects for modern spatial workflows.

Use cases

Built for real workflows

Immersive livestreaming

Call the API (or mount the plugin workflow) and get surround/immersive mixes out — fast, with artistic quality.

Media asset servers

Batch-convert legacy stereo programs to surround/immersive on content production servers, saving manual labor costs.

Car & home-theater playback

Pair with Source Separation: split stereo on playback, mix in real time, and experience immersive audio on any device.

Pricing

Credit-based pricing

Every request draws from your credit pool. This API bills 20 credits per minute of audio.

Billing unitCost in creditsNotes
Processing time20 creditsPer minute of audio
Failed jobs0 creditsCredits auto-refunded
Batch processingSame rateOne queue, per-file callbacks

See credit packs & full pricing

Learn

Guides, tutorials & comparisons

Browse all tutorials

FAQ

Common questions

What input does it need?

Pre-separated stems with roles (vocals, drums, bass, guitar, piano, brass, strings). No stems? Run Source Separation first — one pipeline, one vendor.

What output formats do you support?

Stereo WAV/FLAC, 5.1/7.1.2 channel-bed WAV, and object-based spatial masters (ADM BWF). Atmos-branded encoded output requires a Dolby license — talk to us.

Can I get the FX settings instead of the rendered mix?

Yes — the API returns a settings JSON (gain, pan, EQ carve points, masking decisions) you can apply in your own pipeline.

How does it handle frequency masking?

When stems overlap in frequency, priority-based ducking and EQ carving keep the lead audible.

Do you do mastering?

No — mixing only, and we say so plainly. Pair the mix with a mastering house for final loudness and release delivery.

What happens if a job fails?

Credits are auto-refunded. Failed jobs never bill you.