Iced Audio
An extension to the Iced GUI library with useful widgets for audio applications such as VST / LV2 plugins.
Widgets implemented
Inputs
-
HSlider
- Horizontal Slider -
VSlider
- Vertical Slider -
Knob
- A classic knob widget. (no texture style yet) -
Ramp
- Ramp used to control the easing between two points in time -
XYPad
- XY Pad for controlling two parameters at once -
ModRangeInput
- 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
, andKnob
widgets.
Take a look at the roadmap for a list of planned widgets.
Each parameter can be mapped to one of four ranges:
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.
Run examples with
cargo run --package inputs_tour --release
cargo run --package simple --release
Installation
Add iced_audio
as a dependency in your Cargo.toml
:
= "0.7"
Or if you want to use the GitHub version of iced
:
= { = "https://github.com/BillyDM/iced_audio", = "iced_git" }
Both Iced Audio and Iced move fast and the main
and iced_git
branch can contain breaking changes! If
you want to learn about a specific release, check out the release list.
Simple Usage Example
This crate assumes you know the basics of how to use Iced. If you haven't alreay, please check it out here.
// Import iced modules.
use ;
// Import iced_audio modules.
use ;
// The message when a parameter widget is moved by the user
VST / LV2 / AU Plugins
If you wish to use iced_audio for audio plugins, check out my other repos.
Please note these are experimental and currently lacking many features.
iced_baseview
- Run Iced usingbaseview
as a backend.iced-baseplug-examples
- Example audio plugins usingbaseplug
as a plugin wrapper,iced_baseview
as a GUI backend, and iced_audio widgets.
Contributing / Feedback
Contributions are greatly appreciated! If you want to contribute, please read the official Iced contributing guidelines for more details.
Feedback is also welcome! You can open an issue or, if you want to talk,
come chat to our Zulip server. Moreover, you can find me (and a bunch of
awesome folks) over the #gui-and-ui
channels in
the Rust Community Discord. I go by BillyDM#3892
there.