pub fn render_stereo<S>(
initial_state: S,
sample_rate: u32,
num_samples: usize,
step: impl Fn(S, f64) -> ((f32, f32), S),
) -> Vec<(f32, f32)>Expand description
Render a stereo audio buffer by folding a pure step function over time.
Identical to render but the step function produces a (left, right)
sample pair per frame. Returns interleaved [(L0, R0), (L1, R1), ...].
§Arguments
initial_state— starting DSP statesample_rate— samples per secondnum_samples— number of stereo frames to generatestep— pure function:(state, t) → ((left, right), next_state)
§Returns
Vec<(f32, f32)> of num_samples stereo frames.
§Example
use prime_render::render_stereo;
// Constant stereo frame — left=0.5, right=-0.5
let frames = render_stereo((), 44100, 3, |s, _t| ((0.5, -0.5), s));
assert_eq!(frames, vec![(0.5, -0.5), (0.5, -0.5), (0.5, -0.5)]);