1 unstable release
Uses new Rust 2024
new 0.1.1 | Apr 2, 2025 |
---|
#187 in #dsp
23 downloads per month
Used in 39 crates
(9 directly)
1MB
10K
SLoC
aloe-param
aloe-param
is a Rust library designed to facilitate audio parameter management in digital signal processing applications. This crate provides a comprehensive suite of tools for creating and managing normalized audio parameters, enabling the seamless integration of GUI components with audio processors. Through a variety of interfaces, you can manipulate parameters that range from simple boolean switches to complex parameter groups with nested structures.
Features
- Audio Parameter Interfaces: Define flexible audio parameters through traits that support both continuous and discrete values.
- Parameter Synchronization: Maintain real-time synchronization between UI components and plugin parameters.
- Comprehensive Type Support: Manage various parameter types, including floating point, integer, and boolean.
- Extensible Architecture: Create complex parameter groups and support custom UI control attachments.
Concepts and Usage
-
Normalisable Range: Employ
NormalisableRange<f32>
for parameter ranges, allowing precise control over value scaling and conversion between UI and internal representations. -
Attachments: Utilize
ButtonParameterAttachment
,SliderParameterAttachment
, andComboBoxParameterAttachment
to bind UI components seamlessly to audio parameters. -
Parameter Groups: Build structured hierarchies of parameters using
AudioProcessorParameterGroup
, supporting nested subgroups for advanced parameter organization.
Example Usage
use aloe_param::{AudioParameterFloat, RangedAudioParameter};
let mut param = AudioParameterFloat::new(
&"gain",
&"Gain",
NormalisableRange::new(0.0, 1.0),
0.5,
Some("dB"),
Some(AudioProcessorParameterCategory::Volume),
|v, _| format!("{:.2} dB", v),
|s| s.parse().unwrap_or(0.0),
);
This example demonstrates how to create an audio parameter with a normalisable range, suitable for managing gain in a digital audio workstation.
Installation
Add the following to your Cargo.toml
:
[dependencies]
aloe-param = "0.1.0"
License
This project is licensed under the terms of the GPL-3.0 license.
Note: This README.md file was generated by an AI model and may not be 100% accurate, however it should be pretty good.
This crate is a translation of the JUCE module.
JUCE is a c++ software framework for developing high performance audio applications.
Usage falls under the GPLv3 as well as the JUCE commercial license.
See github.com/juce-framework/JUCE and the JUCE license page for details.
This crate is in the process of being translated from c++ to rust. For progress updates, please see the workspacer rust project. designed specifically for rust projects.
Dependencies
~28–41MB
~616K SLoC