#![deny(missing_docs)]
//! Procedural game audio library.
//!
//! Generates tones, noise, and pattern-based music without audio files.
//! Built on [rodio](https://docs.rs/rodio) for audio output.
//!
//! # Example
//! ```no_run
//! use std::time::Duration;
//! use game_audio::{Tone, Noise, Sequence, SoundSystem};
//!
//! let system = SoundSystem::new();
//! system.play(Tone::new(Duration::from_millis(200), 440.0, 0.0, 0.2, 0.999));
//! system.play(Noise::new(Duration::from_millis(100), 0.3, 0.9997));
//! system.play(Sequence::new(&[(800.0, 0.04), (1100.0, 0.06)]));
//! ```

mod engine;
mod sequence;
mod system;
mod texture;
pub mod track;
mod waveform;

pub use engine::Oscillator;
#[cfg(not(target_arch = "wasm32"))]
pub use rodio::Player;
pub use sequence::{Sequence, SequenceSegment};
#[cfg(target_arch = "wasm32")]
pub use system::Player;
pub use system::{SoundSystem, SoundSystemError};
pub use texture::Texture;
pub use waveform::{Noise, Tone, hill, saw, soft_square, square, triangle};
