///|
fn main {
let layout = @moonloudness.ChannelLayout::five_point_zero()
let config = match @moonloudness.MeterConfig::new(48000, layout) {
Ok(value) => value
Err(_) => panic()
}
let analyzer = @moonloudness.Analyzer::new(config)
let interleaved : Array[Double] = []
let pi = 3.141592653589793
for frame in 0..<48000 {
let surround = 0.1 *
@math.sin(2.0 * pi * 750.0 * frame.to_double() / 48000.0)
interleaved.push(0.0)
interleaved.push(0.0)
interleaved.push(0.0)
interleaved.push(surround)
interleaved.push(0.0)
}
match analyzer.push(interleaved) {
Ok(_) => ()
Err(_) => panic()
}
let report = analyzer.finish()
let peaks = report.channel_sample_peaks_linear()
for channel in 0.. value
None => "?"
}
println(label + " peak: " + peaks[channel].to_string())
}
match layout.channel_weight(3) {
Some(value) => println("Loudness-weighted Ls gain: " + value.to_string())
None => println("Loudness-weighted Ls gain: unavailable")
}
match report.integrated_lufs() {
Some(value) => println("Program loudness (LUFS): " + value.to_string())
None => println("Program loudness (LUFS): unavailable")
}
}