What Are Controls?
Controls are interactive UI elements in iPlug2’s IGraphics system. They handle user input (mouse, touch, keyboard, MIDI) and visual rendering.Control Categories
Knobs & Sliders
Rotary knobs, linear sliders, range sliders, and XY pads
Buttons & Switches
Momentary buttons, switches, toggles, tabs, and radio buttons
Displays & Meters
Meters, scopes, displays, and visualization controls
Menus & Text
Pop-up menus, text entry, number boxes
Special Controls
Keyboards, color pickers, LED indicators, and more
Vector vs Bitmap Controls
iPlug2 provides two rendering approaches:Vector Controls (IV*)
Drawn using graphics primitives (paths, shapes). Start withIV prefix.
Advantages:
- Scale perfectly to any size
- Styleable via
IVStyle - Lightweight, no image assets
- Works with NanoVG backend (no dependencies needed)
Bitmap Controls (IB*)
Use pre-rendered images. Start withIB prefix.
Advantages:
- Pixel-perfect custom designs
- Can use complex artwork
- Consistent with traditional plugin UIs
SVG Controls (ISVG*)
Use SVG vector graphics. Start withISVG prefix.
Advantages:
- Scalable like vector controls
- Can import designs from graphic design tools
- Supports color replacement
Basic Control Concepts
Linking to Parameters
Most controls link to a parameter by index:- Updates when parameter changes (automation, presets)
- Sends parameter changes from user interaction
- Displays parameter values and labels
Action Functions
Controls without parameters use action functions:Styling
Vector controls useIVStyle for visual customization:
Control Bounds
All controls require anIRECT defining their position and size:
Common Control Patterns
Read-Only Display
Custom Gearing (Sensitivity)
Grouping Controls
Data Visualization
Many controls receive real-time data from the audio thread usingISender:
Control Hierarchy
Next Steps
Knobs & Sliders
Learn about rotary and linear controls
IVStyle Reference
Customize vector control appearance
Source Reference
- Main Header:
IGraphics/Controls/IControls.h - Base Classes:
IGraphics/IControl.h - All Controls:
IGraphics/Controls/