1 unstable release
Uses new Rust 2024
new 0.1.1 | Apr 3, 2025 |
---|
#6 in #signalprocessing
Used in 23 crates
(9 directly)
4MB
32K
SLoC
Aloe DSP
Aloe DSP is a sophisticated library for digital signal processing (DSP) applications in Rust. It provides a comprehensive set of interfaces and structures for audio processing, designed to leverage traits and structures in a modular, extensible manner. The components cover everything from parameter management to audio file handling and signal transformation.
Features
- Processor Abstractions: Implementations and traits such as
ProcessorBase
allow for polymorphic audio processing. - Parameter Interfaces: Handy base classes like
DSPDemoParameterBase
and abstractions for audio controls includingSliderParameter
andChoiceParameter
. - Audio Management:
AudioFileReaderComponent
andAudioPlayerHeader
simplify audio file handling with capabilities like async file operations and transport control. - Signal Processing Utilities: Utility functions such as
decibels_to_gain
andsnap_to_zero
offer precise control in DSP contexts. - Processing Contexts: Use contexts like
ProcessContextNonReplacing
andProcessContextReplacing
to manage input/output processing blocks efficiently.
Getting Started
Add the following to your Cargo.toml
:
[dependencies]
aloe-dsp = "0.1.0"
Usage
A typical usage example would involve setting up audio processing chains using the provided trait implementations and structures. Consider an audio file being processed with a custom filter encapsulated in a ProcessorWrapper
.
// Example setup for setting up processing chain
let spec = ProcessSpec::default();
let mut processor = ProcessorWrapper::new(CustomProcessor::new());
processor.prepare(&spec);
let mut context = ProcessContextReplacing::new(audio_block_mut);
processor.process(&context);
For more detailed information, please refer to the documentation.
License
Licensed under GPL-3.0. See LICENSE for details.
Disclaimer: This README is generated by an AI model and may not be 100% accurate, but it aims to provide an insightful overview of the library's capabilities.
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
~27–41MB
~600K SLoC