//! Multi-track song format with synthesized notes and audio file clips.
//!
//! Loads `.track` text files, schedules notes and audio clips on per-track
//! mixers, and plays them through a `SoundSystem`. Designed to be edited by
//! humans or AI and used as runtime audio in games.
//!
//! # Example
//! ```no_run
//! use game_audio::{SoundSystem, track::SongPlayer};
//!
//! let system = SoundSystem::new().unwrap();
//! let mut player = SongPlayer::new();
//! player.play_path(&system, "song.track").unwrap();
//! ```

mod export;
mod format;
mod player;
mod song;
mod synth;

pub use export::render_song_stereo;
#[cfg(feature = "export")]
#[cfg(feature = "export")]
pub use export::{ExportError, export_mp3, export_wav};
pub use format::{ParseError, parse, parse_with_sounds, resolve_imports};
pub use player::{PlayerError, SongPlayer};
pub use song::{
    Clip, Curve, Effect, Envelope, Harmonic, PatternStep, Song, Sound, Track, Waveform,
    is_audio_filename, pitch_to_frequency,
};
pub use synth::Note;
