use ferrosintesis::offline::{self, Normalization, Options};
use std::path::Path;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut args = std::env::args().skip(1);
let input = args.next().unwrap_or_else(|| "input.mid".into());
let output = args.next().unwrap_or_else(|| "output.wav".into());
let song = offline::load(Path::new(&input))?;
println!(
"{}: {:.1} s, {} events",
song.title(),
song.seconds(),
song.events_len()
);
let opt = Options::default().with_reverb(0.25);
let stats = offline::render_to_wav(
&song,
&opt,
Path::new(&output),
Normalization::loudness(-18.0, -1.0),
)?;
eprintln!("{} voices, peak {:.3}", stats.voices_spawned, stats.peak);
Ok(())
}