aloe-ladspa 0.1.1

A Rust crate for managing and interfacing with LADSPA audio plugins, supporting loading and operating plugins on Linux and BSD. This crate is a translation of the c++ juce module serving the same function.
docs.rs failed to build aloe-ladspa-0.1.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

Aloe-LADSPA

aloe-ladspa is a Rust crate providing comprehensive management and instantiation of LADSPA audio plugins on Unix-like systems. This crate primarily focuses on implementing a plugin format manager capable of loading, scanning, and operating LADSPA plugins in an audio processing environment, leveraging dynamic libraries via libladspa. It supports Linux and BSD platforms.

Features

  • Plugin Format Management: Offers structure and functionality to manage and recognize LADSPA plugins.
  • Dynamic Module Handling: Loads and interacts with modules via dynamic library utilities.
  • Instance Creation and Lifecycle: Provides methods for creating plugin instances, initializing audio parameters, and executing plugins.
  • Efficient Resource Management: Ensures proper resource allocation and deallocation with Drop traits and recursive searches.
  • Thread Safety: Utilizes critical sections to ensure thread-safe operations during plugin interactions.

Introduction to Core Components

The crate comprises several core constructs that define its functionality:

LADSPAPluginFormat

  • Manages plugin formats and scanning processes.
  • Provides methods to determine a file's plugin validity and manage search directories.

LADSPAModuleHandle

  • Handles the loading and management of dynamic libraries, maintaining active module lists.
  • Implements RAII for module opening and closing.

LADSPAPluginInstance

  • Represents individual plugin instances, dealing with initialization and execution.
  • Manages audio buffers and ports, facilitating seamless audio processing.

Usage

Add aloe-ladspa to your Cargo.toml:

[dependencies]
aloe-ladspa = "0.1"

Include the crate in your project:

use aloe_ladspa::{LADSPAPluginFormat, LADSPAModuleHandle, LADSPAPluginInstance};

// Example usage creating and initializing a LADSPA plugin instance

Note: This README was generated by an AI model, it may not be fully accurate, but it strives to offer a useful overview.

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.