1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//! # Charon
//!
//! Modern Rust music source separation library using state-of-the-art ML inference.
//!
//! Charon provides a complete, pure-Rust implementation for audio source separation,
//! inspired by Demucs but built with modern Rust ML frameworks (ONNX Runtime via `ort`,
//! and HuggingFace Candle).
//!
//! ## Features
//!
//! - **Multiple ML Backends**: Support for ONNX Runtime (production-ready, hardware accelerated)
//! and Candle (pure Rust, flexible)
//! - **Audio Processing**: Complete audio I/O with Symphonia (decode any format),
//! Rubato (high-quality resampling), and Hound (WAV encoding)
//! - **Real-time Processing**: Support for real-time audio separation using CPAL
//! - **Hardware Acceleration**: CUDA, TensorRT, Metal, Accelerate support
//! - **Parallel Processing**: Multi-threaded audio processing with Rayon
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! use charon_audio::{Separator, SeparatorConfig};
//!
//! # fn main() -> anyhow::Result<()> {
//! // Create a separator with default settings
//! let separator = Separator::new(SeparatorConfig::default())?;
//!
//! // Separate an audio file
//! let stems = separator.separate_file("input.mp3")?;
//!
//! // Save individual stems
//! stems.save_all("output_dir")?;
//! # Ok(())
//! # }
//! ```
// Re-export main types
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use RealtimeSeparator;
pub use ;
pub use WasmSeparator;