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 datanum_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