pub mod detector;
pub mod key_changes;
pub mod key_clarity;
pub mod templates;
pub use detector::{detect_key, detect_key_ensemble, detect_key_multi_scale, detect_key_weighted, detect_key_weighted_mode_heuristic};
pub use key_changes::{detect_key_changes, KeyChange, KeyChangeResult};
pub use key_clarity::compute_key_clarity;
pub use templates::KeyTemplates;
use crate::analysis::result::Key;
#[derive(Debug, Clone)]
pub struct KeyDetectionResult {
pub key: Key,
pub confidence: f32,
pub all_scores: Vec<(Key, f32)>,
pub top_keys: Vec<(Key, f32)>,
}