Blog

VST3, AU, CLAP, LV2: which formats you need

Plugin formats look like a menu and behave like a map: what you pick decides which programs can open your work at all. Here is the short version, from having implemented every one of these against its own specification.

VST3 — the default

Steinberg’s current format, loaded by nearly every DAW on Windows, macOS and Linux. If you ship exactly one format, ship this.

Two practical notes. Distributing a VST3 commercially means registering with Steinberg — that is their licence talking, not the C header, which is BSD-3. And VST3 has strong opinions its API does not enforce, so this is the format where an automated validator earns its keep: parameters are normalised 0..1, a step count is the number of steps between values, and edits must reach the host from the main thread with begin/end gestures around them or a drag becomes forty undo steps.

AU — macOS, and not optional there

Apple’s format. Logic Pro and GarageBand load Audio Units and nothing else, so if those users matter, AU is not a nice-to-have. Everywhere else on macOS, VST3 works.

AU is the fussiest of the four to get right, and its failures are quiet: a bundle macOS declines to register is indistinguishable, from outside, from a broken plugin. It sits installed, auval -a never lists it, and asking for it by identifier answers -50. Apple’s auvalis the arbiter, and passing it with zero warnings is the only sensible definition of “done”.

CLAP — the newer one

An open format from u-he and Bitwig, MIT-licensed, no registration and no gatekeeper. Supported by Bitwig, REAPER, Studio One, Qtractor and a growing list.

It is also the most pleasant to implement by a distance: one C header, an entry point, and extensions you opt into. If you already have the DSP, adding CLAP is close to free — which is the real argument for shipping it. Its per-note expression model is genuinely better than the alternatives, and its threading rules are written down rather than implied.

LV2 — Linux

The native format of the Linux audio world: Ardour, Qtractor, Carla. It is RDF-described, so a plugin ships a Turtle manifest a host reads before loading any code — which means the metadata and the code must agree exactly, or the host crashes on a port that is not where it was promised.

Worth shipping if Linux users are part of your audience, and cheap once the DSP exists.

VST2 — you cannot

Steinberg stopped issuing VST2 licences in October 2018 and no longer distributes the SDK. A plugin authored today cannot legally ship as VST2. Frameworks that “support VST2” support it for people who already held the SDK before the cutoff.

This trips people up because plenty of beloved plugins are VST2 and plenty of hosts still load it. Both things are true; neither gives you a licence.

AAX and AUv3, briefly

AAXis Pro Tools, and it requires Avid’s developer agreement plus PACE signing. It is a commercial arrangement, not a technical step.

AUv3 is not a better AU — it is a different artifact, an app extension inside a containing application, required for iOS and sandboxed distribution. AUv2 is what desktop hosts load.

The practical answer

  • VST3 — everyone.
  • AU — if you want Logic and GarageBand.
  • CLAP — cheap to add, appreciated by the hosts that support it.
  • LV2 — if Linux is part of your audience.

Every plugin exported from Sonorie is built in all four, plus a standalone application, for Windows, macOS and Linux — one source, one build, every format, because the expensive part is the DSP and the wrappers are shared. If you want to know why the framework underneath is ours rather than licensed, that is its own story.

Questions

Which plugin format should I use: VST3, AU, or CLAP?

Ship VST3 for the widest reach, AU as well if you want macOS users in Logic or GarageBand, and CLAP because it costs almost nothing to add and Bitwig and REAPER users appreciate it. LV2 matters only if you are targeting Linux hosts like Ardour.

Can I still make a VST2 plugin?

Not legally, unless you already held the VST2 SDK before Steinberg withdrew it in October 2018. New licences are not issued, so a plugin authored today cannot ship in that format. Tools that advertise VST2 support are supporting it for holders of the old SDK.

Is CLAP better than VST3?

CLAP is cleaner to implement and has some genuinely useful features — per-note expression, a sane threading model, no mandatory registration — but format choice is decided by hosts, not by elegance. VST3 is loaded by nearly everything; CLAP is loaded by a growing subset. Ship both.

Do I need AU if I already have VST3?

If you want Logic Pro or GarageBand users, yes. Logic loads Audio Units and nothing else. Everywhere else on macOS, VST3 is fine.

Sonorie turns a description into a real plugin: VST3, AU, CLAP, LV2 and a standalone app, built for Windows, macOS and Linux.

Build one