free-audio/clap
FreeAudio Plugin API
FreeFree tier
About free-audio/clap
CLAP (CLever Audio Plugin) is an open-source, cross-platform audio plugin API that provides a stable ABI for communication between Digital Audio Workstations (DAWs) and audio plugins such as synthesizers, effects, and more. It emphasizes backward compatibility, allowing plugin binaries compiled with CLAP 1.x to be loaded by any CLAP 1.y host. The API is defined in C with a clean extension system, covering fundamental features like state saving/loading, parameter management, note and audio ports, surround and ambisonic channel mappings, and host-provided resource directories. CLAP is designed to be extensible, enabling third-party extensions and community contributions.
Key Features
Stable ABI with backward compatibility (CLAP 1.x binary works with any 1.y host)
C-based interface with clap.h header and extension system
Fundamental extensions: state, state-context, resource-directory, params, note-ports, audio-ports, surround, ambisonic, configurable-audio-ports, audio-ports-config, audio-ports-activation, extensible-audio-ports
Host and plugin interfaces defined as structs (clap_host, clap_plugin)
Thread-safe method specifications for all extension functions
UTF-8 string support throughout API
Provides minimal example plugin template (src/plugin-template.c)
Third-party extension support with versioned identifiers
Pros & Cons
Pros
- Open-source and free to use
- Backward-compatible binary ABI ensures long-term stability
- Well-documented with clear header files and examples
- Extensible architecture via custom extensions
- Cross-platform support (Windows, macOS, Linux)
- Neutral and community-driven (developed under free-audio organization)
Cons
- Relatively smaller ecosystem and adoption compared to VST3 or AU
- Being an ABI standard, requires careful implementation by both hosts and plugin developers
Best For
Building audio plugins (synthesizers, effects, samplers) for DAWsIntegrating CLAP plugin support into digital audio workstationsDeveloping cross-platform audio software requiring a stable and extensible plugin APICreating custom plugin extensions for specialized audio processing needs
FAQ
What does CLAP stand for?
CLAP stands for CLever Audio Plugin.
What is the ABI of CLAP?
CLAP provides a stable Application Binary Interface (ABI) that ensures backward compatibility: a plugin binary compiled with CLAP 1.x can be loaded by any host using CLAP 1.y.
How do I start using CLAP?
Include the header clap/clap.h and implement the required entry point and extensions. A minimal example is provided in src/plugin-template.c.
Does CLAP support custom extensions?
Yes, developers can create and share their own extensions. Extension identifiers must include versioning in case of ABI breaks and must be unique.