Developers: Getting Started

How we’d start…

Here’s an example of how a developer might approach writing their first CLAP plug-in:

  • if you’re new to Github, become familiar with Github, e.g. get Github Desktop, learn how to check out a repository
  • get and build the CLAP Info Tool (this also gets CLAP itself)
  • download and install any existing CLAP plug-in, check that CLAP Info does what it’s supposed to
  • download and build the CLAP Saw Demo or any other example that’s available as open source (they usually come with additional instructions on building etc.)
  • now start developing your own CLAP, set up a project, build it, test it in CLAP Info
  • then take it from there: Check in CLAP Validator, run in a CLAP-enabled DAW, add a UI…
  • ask us or other developers anytime on the way

CLAP example plug-in implementations

These projects and tutorials are a great starting point to learn about CLAP and/or prototype a plug-in:

CLAP Repositories Overview

Apart from the main repository at https://github.cleveraudio.org/ there are additional repositories containing software helpers, information, examples and tools:

https://github.com/free-audio

These are the repositories needed for development:

  • clap the definition of the standard in C (also the CLAP repository)
  • clap-helpers helper classes such as a C++ glue layer
  • clap-host an example host (based on Qt)
  • clap-plugins example plug-ins (based on Qt)
  • clap-juce-extension a drop-in and documentation for building CLAP with JUCE
  • clap-info a tool to show information about a CLAP plugin on the command line
  • clap-validator a command line tool that validates CLAP plug-ins (written in Rust)
  • clap-wrapper library to wrap CLAP plug-ins to other formats
  • clap-imgui-support support library binding CLAP to Dear ImGui
  • clap-saw-demo-imgui example synth using Dear ImGui

CLAP-enabled frameworks, projects and toolkits

Many developers start out with one of the established frameworks such as DPF, JUCE or iPlug2. CLAP support for iPlug2 is on the way, and for JUCE we provide an extension. Things may change quickly in the near future, so always check their websites and forums.

For more links there’s a preliminary list of community projects, bindings to programming languages and further examples at the bottom of the Github Readme in CLAP’s repository:

https://github.cleveraudio.org/

Get help

If you have questions on the way or if you need help with CLAP specific issues, we recommend the following places to ask questions:

  • Github Discussions the discussion section of the official CLAP repository
  • if you’re familiar with KVR Audio, there’s a developer forum where many of the CLAP developers participate
  • Discord: There are numerous Discords for audio development. In fact, the CLAP team is using Discord for its own communication. We’re happy to invite developers who are working on shipping CLAP software to users - send us an email!