deinterleave

Function deinterleave 

Source
pub fn deinterleave<T: Float>(data: &[T], num_channels: usize) -> Vec<Vec<T>>
Expand description

Deinterleave multi-channel audio data.

Converts interleaved format (e.g., [L,R,L,R,L,R,...] for stereo) into separate channels (vec![vec![L,L,L,...], vec![R,R,R,...]]).

§Arguments

  • data - Interleaved audio data
  • num_channels - Number of channels

§Panics

Panics if num_channels is 0 or if data.len() is not divisible by num_channels.

§Example

use stft_rs::deinterleave;

let interleaved = vec![1.0, 2.0, 3.0, 4.0, 5.0, 6.0]; // L,R,L,R,L,R
let channels = deinterleave(&interleaved, 2);

assert_eq!(channels[0], vec![1.0, 3.0, 5.0]); // Left
assert_eq!(channels[1], vec![2.0, 4.0, 6.0]); // Right