1 unstable release
Uses new Rust 2024
new 0.1.1 | Apr 2, 2025 |
---|
#35 in #audio-codec
43 downloads per month
Used in 44 crates
(12 directly)
2MB
14K
SLoC
Aloe-Codec
Aloe-Codec provides powerful abstractions and implementations for audio encoding and decoding, tailored towards high-performance audio processing systems. By leveraging memory mapping, threaded structures, and format interfaces, this library offers both flexibility and efficiency for developers working with a wide range of audio formats.
Overview
Aloe-Codec comprises several traits and structs designed for low-level audio data manipulation:
- MemoryMappedAudioFormatReaderInterface: Facilitates reading sections of audio files through memory mapping for rapid data access.
- IncomingDataReceiver: Provides an interface to receive audio data, manage channel configurations, and integrate incoming blocks into a processing pipeline.
- AudioFormatWriterInterface: Defines the means to write audio data in various formats, handling the intricacies of buffer management and data flushing.
- AudioFormatInterface: Unifies disparate audio formats under a singular API, enabling query and creation of readers/writers for specific audio needs.
Usage
use aloe_codec::{MemoryMappedAudioFormatReaderInterface, AudioFormatInterface};
Integrate with audio systems providing memory-mapped reader creation, efficient format management, and advanced data manipulation. Employ threading with ThreadedWriter
to manage concurrent writes, ensuring smooth performance during high-load operations.
Key Features
- Memory Mapping: Provides rapid data access to audio files by mapping sections into memory efficiently.
- Format Agnosticity: Allows for handling diverse audio file formats through unified interfaces.
- Threaded Processing: Utilize
ThreadedWriter
for background processing, reducing latency in data-heavy environments.
Installation
Add the following to your Cargo.toml
:
[dependencies]
aloe-codec = "0.1.0"
Contributing
Contributions are welcome! Please see the repository here for more information.
Last updated by an AI model. Accuracy is expected but not guaranteed.
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
~26–40MB
~593K SLoC