#audio-plugin #vst #plugin #ladspa #audiounit

aloe-audio-plugin-format

A comprehensive Rust library to manage and interface with various audio plugin formats such as VST, AudioUnit, and LADSPA. Supports synchronous and asynchronous plugin operations within diverse audio environments. 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

#4 in #audiounit


Used in 9 crates (5 directly)

GPL-3.0 license

535KB
5.5K SLoC

aloe-audio-plugin-format

Aloe Audio Plugin Format is a Rust library designed to manage and interface with various audio plugin formats, such as VST, AudioUnit, and LADSPA. It provides a structured approach to dealing with these diverse formats through the AudioPluginFormatManager and associated classes.

Features

  • Audio Plugin Management: Offers a centralized manager to handle different types of audio plugin formats.
  • VST, AudioUnit, and LADSPA Support: Built-in support for industry-standard plugin types with extensible format compatibility.
  • Plugin Lifecycle Management: Functions to add, identify, and manipulate plugin formats dynamically.
  • Asynchronous and Synchronous Plugin Creation: Reliable methods for instantiating plugins efficiently within the application's threading model.

Installation

Add the following to your Cargo.toml:

[dependencies]
aloe-audio-plugin-format = "0.1.0"

Usage

Create a Plugin Format Manager

use aloe_audio_plugin_format::AudioPluginFormatManager;

let mut manager = AudioPluginFormatManager::new();
manager.add_default_formats();

Add and Retrieve Plugin Formats

let num_formats = manager.get_num_formats();
let format = manager.get_format(0);

Asynchronous Plugin Instantiation

manager.create_plugin_instance_async(description, 44100.0, 512, |instance, error_message| {
    if let Some(plugin) = instance {
        // Handle successful plugin creation
    } else {
        eprintln!("Error: {}", error_message);
    }
});

Documentation

The full documentation is available at docs.rs.

Contributing

Contributions to enhance the functionalities of the library are welcome. Please check the repository for issues and submission guidelines.

License

GPL-3.0 licensed. Please refer to LICENSE for more details.


This README.md file was generated by an AI model and may not be 100% accurate; however, it should be quite informative.

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

~39MB
~630K SLoC