Architecture
The framework consists of two main components:IPlug
Core plugin abstraction layer for DSP, parameters, and state management
IGraphics
Optional GUI toolkit with multiple backends (NanoVG, Skia)
Supported Formats
iPlug2 generates plugins for all major formats:- CLAP - Modern cross-platform format
- VST3 - Steinberg’s VST3 standard
- AUv2/AUv3 - Apple Audio Units (macOS/iOS)
- AAX - Avid Pro Tools format
- Standalone App - Desktop application
- WAM - WebAssembly audio modules
- VST2 - Legacy format (deprecated)
Platform Support
- Desktop
- Mobile & Web
- macOS (x86-64, ARM64)
- Windows (x86-32, x86-64, ARM64)
- Linux (via CLAP/VST3)
Core Classes
Plugin Base Classes
Key Components
Parameters
IParam - Type-safe parameters with ranges, shapes, and display functionsPresets
IPreset - Factory presets and state managementProcessor
Audio processing and channel configuration
MIDI
IMidiMsg and ISysEx for MIDI handlingPlugin Structure
Every iPlug2 plugin consists of three main files:Basic Example
Here’s a simple gain plugin from the IPlugEffect example:IPlugEffect.cpp
Realtime Safety
Code Style
iPlug2 follows these conventions:Next Steps
Plugin Base
Learn about plugin properties, state management, and presets
Audio Processing
Understand ProcessBlock and channel I/O configuration
Parameters
Deep dive into the IParam system
MIDI
Handle MIDI messages and SysEx
Resources
API Documentation
Complete API reference
GitHub Wiki
Guides and tutorials