Skip to main content

render_stereo

Function render_stereo 

Source
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 state
  • sample_rate — samples per second
  • num_samples — number of stereo frames to generate
  • step — 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)]);