On Fri, Jun 5, 2026 at 5:48 PM Jan Stary <[email protected]> wrote:

> On Jun 05 16:09:53, [email protected] wrote:
> > Hi!,
> >
> > I am working on a curses C sndio app to
> > play samples that are just wav files.
> > I would like to be able to play them
> > "over each other" like not sequentially.
> >
> > (I would like for the wav file to play
> > regardless if another one is already playing.)
> >
> > I can play ONE wav file using sndio.
> >
> > https://codeberg.org/pkw/siotest/src/branch/main/siotest.c#L130
> >
> > What is the easiest and most idiomatic way
> > to play multiples ones ?
>
> If they use the same sample encoding and have the same number of channels
> and use the same sample rate, then make one output sample the average
> of the input samples, obviously. Doing the arithmetics might overflow
> though, so you might want to convert to floats and do the arithmetics
> there and then convert back to the sample encoding you want to play.
>
> And if they do not use the same sample rate, you have resampling to do;
> and if they do not use the same sample encoding, you need to convert;
> and if they have different number of channels, you need to remix somehow.
>
> > Any pointers or places to look?
>
> Look what aucat does with more than one -i
>
>         Jan
>
>
Hi Paul,

I built a simple library to handle this case a couple of years ago to
handle exactly such a case. I used it in a dichotic listening test and in
for audio feedback in a stroop test. You can find the code here ->
https://sw.gy/c-snd/

Ron

Reply via email to