Iced Audio
An extension to the Iced GUI library with useful widgets for audio applications such as VST3 / CLAP plugins.
Included Widgets
HSlider- Horizontal SliderVSlider- Vertical SliderKnob- A classic knob widgetRamp- Ramp used to control the easing between two points in timeXYPad- XY Pad for controlling two parameters at onceModRangeInput- A dot used to control the range of modulation for a parameter. Styles that add visual feedback of the modulation range exist for theHSlider,VSlider, andKnobwidgets.
Parameters
All widgets (with the exception of XYPad) borrow the same "virtual slider" input logic. Sliders, knobs, ramps, etc, are essentially just different ways to render the output of a virtual slider. You can also build your own custom virtual slider widgets that render whatever you want.
Each virtual slider operates on a normalized float value in the range [0.0..1.0]. Four mapping functions are included:
FloatRange- a linear range of f32 valuesIntRange- a discrete range of i32 values. This will cause the widget to "step" when moved.LogDBRange- a logarithmic range of decibel values. Values around 0 dB will increment slower than values farther away from 0 dB.FreqRange- a logarithmic range of frequency values. Each octave in the 10 octave spectrum (from 20 Hz to 20480 Hz) is spaced evenly.
Custom mapping functions can be created as well.
Audio plugins
If you wish to use iced_audio for audio plugins, check out these other crates:
- nice-plug - Complete audio plugin development framework for VST3, CLAP, and standalone targets with support for Iced.
- clack-plugin - An easy way to create CLAP plugins in Rust.
- iced_baseview - Run Iced on the baseview windowing backend (use in conjuction with a crate like
clack-plugin).
Crate features
Note, you need to enable the canvas feature in iced for things to render properly. You also need to enable the image feature if you want to use the texture styles.
all(default) - Enables all widgetsknob(default) - Enables the knob widgeth_slider(default) - Enables the horizontal slider widgetv_slider(default) - Enables the vertical slider widgetramp(default) - Enables the ramp widgetxy_pad(default) - Enables the XY pad widget
Contributing / Feedback
Contributions are greatly appreciated! Before contributing, please read the official Iced contributing guidelines.