// A podcast host: each uploaded episode measured, its dead air found, its ends trimmed, and the whole brought to -16 LUFS.
//
//   quillo run loudness.qwe      then open http://localhost:8080/episode

use "loudness.qwer"

let EPISODE = "loudness_sample.wav"

route GET /episode {
    let m = loudness_measure(EPISODE)?
    {
        measured: m,
        too_quiet: m.integrated_lufs < -19.0,
        silences: loudness_silences(EPISODE, -50.0, 0.5)?,
        trimmed: loudness_trim(EPISODE, "data/loudness/trimmed.wav", -50.0, 0.1)?,
    }
}

route GET /normalize {
    let n = loudness_normalize(EPISODE, "data/loudness/podcast.wav", -16.0, -1.0)?
    { gain_db: n.gain_db, limited_by_peak: n.limited_by_peak, before: n.before.integrated_lufs, after: n.after.integrated_lufs, peak_after: n.after.true_peak_dbtp }
}

route GET /podcast.wav {
    loudness_normalize(EPISODE, "data/loudness/podcast.wav", -16.0, -1.0)?
    file("data/loudness/podcast.wav")
}
