bbx_file/
lib.rs

1//! # BBX File
2//!
3//! Audio file I/O implementations for the `bbx_dsp` crate.
4//!
5//! This crate provides [`Reader`](bbx_dsp::reader::Reader) and
6//! [`Writer`](bbx_dsp::writer::Writer) implementations for common audio formats,
7//! as well as [`OfflineRenderer`] for fast non-realtime audio rendering.
8//!
9//! ## Supported Formats
10//!
11//! - **WAV**: Via `hound` (writing) and `wavers` (reading)
12//!
13//! ## Usage
14//!
15//! ```ignore
16//! use bbx_file::readers::wav::WavFileReader;
17//! use bbx_file::writers::wav::WavFileWriter;
18//!
19//! // Reading
20//! let reader = WavFileReader::<f32>::from_path("input.wav")?;
21//!
22//! // Writing
23//! let writer = WavFileWriter::<f32>::new("output.wav", 44100.0, 2)?;
24//! ```
25//!
26//! ## Offline Rendering
27//!
28//! ```ignore
29//! use bbx_file::{OfflineRenderer, RenderDuration, writers::wav::WavFileWriter};
30//!
31//! let writer = WavFileWriter::new("output.wav", 44100.0, 2)?;
32//! let mut renderer = OfflineRenderer::new(graph, Box::new(writer));
33//! let stats = renderer.render(RenderDuration::Duration(30))?;
34//! ```
35
36pub mod readers;
37pub mod renderer;
38pub mod writers;
39
40pub use renderer::{OfflineRenderer, RenderDuration, RenderError, RenderStats};