Skip to main content

deinterleave_channel

Function deinterleave_channel 

Source
pub(crate) fn deinterleave_channel(
    batch: &[f64],
    num_channels: usize,
    channel: usize,
    out: &mut Vec<f64>,
)
Expand description

Copies one channel’s samples out of an interleaved LJM batch into out.

LJM returns scans interleaved (ch0, ch1, ..., ch0, ch1, ...). out is cleared first, so one buffer can be reused for every channel of every read.

§Arguments

  • batch - Interleaved samples from one LJM read; its length must be a multiple of num_channels (a trailing partial scan is ignored).
  • num_channels - Channels per scan, greater than zero.
  • channel - Position of the channel in the scan list, below num_channels.
  • out - Receives the channel’s samples in scan order.

§Examples

batch [a0, b0, a1, b1], 2 channels, channel 1  ->  out [b0, b1]