stem-splitter-core 1.2.0

Core library for AI-powered audio stem separation
Documentation
mod error;
mod types;

pub mod core {
    pub mod audio;
    pub mod dsp;
    pub mod engine;
    pub(crate) mod ep;
    pub mod splitter;
}

pub mod model {
    pub mod model_manager;
    pub mod registry;
}

pub mod io {
    pub mod crypto;
    pub(crate) mod ep_cache;
    pub mod net;
    pub mod paths;
    pub mod progress;
}

// Public API
pub use crate::core::splitter::split_file;
pub use crate::io::progress::{
    set_download_progress_callback, set_split_progress_callback, SplitProgress,
};
pub use crate::model::model_manager::{ensure_model, ModelHandle};
pub use crate::types::{AudioData, ModelManifest, SplitOptions, SplitResult};

pub fn prepare_model(model_name: &str, manifest_url_override: Option<&str>) -> error::Result<()> {
    let handle = ensure_model(model_name, manifest_url_override)?;
    crate::core::engine::preload(&handle)?;
    Ok(())
}