#linux #audio-processing #audio #bela #devicemanagement

aloe-audio-linux-bela

A Rust crate for managing audio devices using BELA on Linux platforms, facilitating audio processing and device control. This crate is a translation of the c++ juce module serving the same function.

1 unstable release

Uses new Rust 2024

new 0.1.1 Apr 3, 2025

#77 in #audio-processing


Used in aloe-exports

GPL-3.0 license

1MB
10K SLoC

aloe-audio-linux-bela

aloe-audio-linux-bela is a Rust crate designed to facilitate audio device management and operations on Linux-based platforms using the BELA audio environment. This crate abstracts complex audio I/O tasks into more straightforward, programmatically manageable routines.

Overview

The main components of this library include:

  • BelaAudioIODeviceType: Represents the type of audio I/O device specific to BELA systems, incorporating the manipulation of device names, scanning, and initialization of audio devices.
  • BelaAudioIODevice: An entity handling the operations and state management of audio devices, including channel management, sample rates, and buffer sizes.

Key Features

  • Customize audio device settings to match specific requirements for audio and analog channels.
  • Open and close audio devices efficiently to manage resource allocation dynamically.
  • Set up callback functions necessary for rendering and cleaning up audio processing routines.

Usage

Add aloe-audio-linux-bela to your Cargo.toml:

[dependencies]
aloe-audio-linux-bela = "0.1.0"

Then you can use the BelaAudioIODeviceType and BelaAudioIODevice to manage your audio processing:

use aloe_audio_linux_bela::{BelaAudioIODeviceType, BelaAudioIODevice};

fn main() {
    let mut device_type = BelaAudioIODeviceType::default();
    let mut device = BelaAudioIODevice::default();

    // Setup audio device
    device.open(...);
    if device.is_open() {
        // Start processing audio
        device.start(...);
    }
}

License

This crate is licensed under the GPL-3.0 License.


Please note: This README.md file is generated by an AI model and may not be fully accurate, though it should provide a solid understanding.

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–38MB
~622K SLoC