iPlug2 icon indicating copy to clipboard operation
iPlug2 copied to clipboard

C++ Audio Plug-in Framework for desktop, mobile and web

iPlug 2

C++ audio plug-in framework for desktop, mobile (iOS) and web

Build Status

iPlug 2 is a simple-to-use C++ framework for developing cross-platform audio plug-ins/apps and targeting multiple plug-in APIs with the same minimalistic code. It abstracts an audio plug-in (IPlug) and its drawing engine/GUI toolkit (IGraphics). IGraphics is a simple UI toolkit with good performance which contains a collection of common controls well suited for audio plug-ins, either using bitmap or vector graphics. Alternatively examples are included showing how you can use technologies such as HTML/CSS or SwiftUI on top of a C++ DSP layer.

The original version of iPlug was released in 2008 as part of Cockos' WDL library. iPlug 2 (2018) is a substantial reworking that brings multiple vector graphics backends to IGraphics (including GPU accelerated options and HiDPI/scaling), a better approach to concurrency, support for distributed plug-in formats and compiling to WebAssembly via emscripten, amongst many other things.

iPlug 2 targets the VST2, VST3, AUv2, AUv3, AAX (Native) and the Web Audio Module (WAM) plug-in APIs. It can also produce standalone win32/macOS apps with audio and MIDI I/O, as well as Reaper extensions. Windows 8, macOS 10.11, and iOS 13 are the official minimum target platforms, but depending on the graphics backend used, you may be able to make it work on earlier operating systems.

iPlug 2 includes support for the FAUST programming language, and the libfaust JIT compiler. It was the winner of the 2018 FAUST award.

iPlug 2 is licensed with a liberal zlib-like license, which means that it is free to use in closed source projects and is free from corporate interference.

You can discuss iPlug 2 on the iPlug2 forum or on the iPlug user's slack channel.

We welcome any help with bug fixes, features or documentation.

You can help support the project financially in several ways, preferably via github sponsors but also via patreon or paypal donations. With regular financial support, more time can be spent maintaining and improving the project. Even small contributions are very much appreciated.

patreon paypalslack