#![deny(missing_docs)]
#![cfg_attr(feature = "playback", doc = include_str!("../README.md"))]
#![cfg_attr(
    not(feature = "playback"),
    doc = "Procedural game audio, headless build: parsing, synthesis and offline \
           rendering only — enable the `playback` feature for the device-facing \
           types (`SoundSystem`, `SongPlayer`). Full documentation lives in the \
           README and the default build."
)]

mod engine;
#[cfg(all(not(target_arch = "wasm32"), feature = "record"))]
pub mod record;
mod sequence;
#[cfg(feature = "playback")]
mod system;
mod texture;
pub mod track;
mod waveform;

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