Skip to main content

assert_audio_unit_meta_data_snapshot

Macro assert_audio_unit_meta_data_snapshot 

Source
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),
    }
});