iced_audio 0.14.1

An extension to the Iced GUI library with useful widgets for audio applications
Documentation

Iced Audio

Documentation Crates.io License project chat

An extension to the Iced GUI library with useful widgets for audio applications such as VST3 / CLAP plugins.

more screenshots

Included Widgets

  • HSlider - Horizontal Slider
  • VSlider - Vertical Slider
  • Knob - A classic knob widget
  • 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 the HSlider, VSlider, and Knob widgets.

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 values
  • IntRange - 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 widgets
  • knob (default) - Enables the knob widget
  • h_slider (default) - Enables the horizontal slider widget
  • v_slider (default) - Enables the vertical slider widget
  • ramp (default) - Enables the ramp widget
  • xy_pad (default) - Enables the XY pad widget

Contributing / Feedback

Contributions are greatly appreciated! Before contributing, please read the official Iced contributing guidelines.