From cabb2e6d5101506e59abb8be1d87408acabb1136 Mon Sep 17 00:00:00 2001 From: steven-na Date: Wed, 5 Aug 2026 14:30:13 -0700 Subject: Few new helper funcs --- src/wav.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/wav.c') diff --git a/src/wav.c b/src/wav.c index 9796160..ab8919d 100644 --- a/src/wav.c +++ b/src/wav.c @@ -1,4 +1,5 @@ #include "wav.h" +#include "common.h" #include "smrt_arena.h" #include @@ -260,3 +261,27 @@ f64 *read_32bps_float_data(smrt_arena_t *arena, wav_data_t data, u16 num_channel return vs; } + +f64 *combine_channels(smrt_arena_t *arena, f64 **channels, u64 num_channels, u64 sample_count) { + assert(num_channels != 0 && "num_channels must be >0"); + + f64 *samples = SMRTA_ALLOC_ARRAY(arena, f64, num_channels * sample_count); + + for (u64 s = 0; s < sample_count; s++) { + for (u64 c = 0; c < num_channels; c++) { + samples[s*num_channels + c] = channels[c][s]; + } + } + + return samples; +} + +f32 *f64_to_f32(smrt_arena_t *arena, f64 *samples, u64 sample_count) { + f32 *o = SMRTA_ALLOC_ARRAY(arena, f32, sample_count); + + for (u64 i = 0; i < sample_count; i++) { + o[i] = (f32)samples[i]; + } + + return o; +} -- cgit v1.2.3