macro_rules! assert_audio_unit_meta_data_snapshot {
($unit:expr, $meta_builder:expr) => { ... };
($unit:expr, $input:expr => $meta_builder:expr) => { ... };
($unit:expr, $input:expr, $config:expr => $meta_builder:expr) => { ... };
}Expand description
Capture audio unit data, compute metadata in a lambda, render a single-page SVG dashboard, and assert it as a binary snapshot.
The closure must return SnapshotMetadata, typically created with
insta_fun_meta!.
ยงUsage
use fundsp::prelude::*;
use insta_fun::prelude::*;
assert_audio_unit_meta_data_snapshot!(sine_hz::<f32>(220.0), |data: &AudioUnitSnapshotData| {
let out = &data.output_data[0];
let min = out.iter().fold(f32::INFINITY, |a, &b| a.min(b));
let max = out.iter().fold(f32::NEG_INFINITY, |a, &b| a.max(b));
insta_fun_meta! {
magnitudes: line(out.iter().map(|v| v.abs())),
output_range: range(min, max),
num_samples: scalar(data.num_samples),
}
});