RU /EN
Start a project
← Selected projects
Case study

ACE-Step Studio

The native macOS take on the KRT Studio music workflow — a separate lightweight product for Apple Silicon.

  • ~7.7 s / 30 s audio
  • ~3.9× realtime
  • 25 GB → ~400 MB
  • Swift + MLX

What it is

A macOS app that generates music locally on Apple Silicon. It is the native version of the KRT Studio music workflow — the same direction, packaged as an app for a single Mac instead of a server platform.

Why it exists

KRT Studio is a full self-hosted platform: it assumes a GPU fleet and someone who maintains it. For the music workflow that bar is unnecessary — the user wants to type a description and get a track, not provision a server.

Hence the split:

  • KRT Studio — a platform on your own GPUs, covering every modality;
  • ACE-Step Studio — a separate lightweight product that runs entirely on one Mac.

What I did

The full native pipeline in Swift and MLX:

Prompt → Tokenizer → Qwen3 → Conditioning → DiT → VAE → Audio

Porting every stage, the runtime, and the app itself.

What’s technically interesting

Parity. The ported pipeline was verified stage by stage against the reference implementation, not just by listening to the output:

StageDeviation
Tokenizerbit-exact
Tokenizer indices50 of 50 exact
Qwen33.39×10⁻⁵
DiT4.35×10⁻⁵

Stage-by-stage checking is not a formality here. In a generative pipeline an error in an early stage produces audio that subjectively sounds acceptable, and tracing the cause afterwards is nearly impossible. Comparing intermediate tensors catches the drift where it appears.

VAE and memory. A straightforward decode needed around 25 GB of buffers, which puts generation outside the reach of a normal machine. A tiled decoder cut the VAE buffer cache to ~400 MB. That optimisation is what turns a demo into an app you can hand to someone.

Speed. 30 seconds of music in ~7.7 s on an M1 Max — roughly ~3.9× faster than realtime, locally and without a server.

What came out of it

Music generation on a Mac with no cloud and no GPU fleet, with verified parity against the reference implementation.

Release in preparation.