On Tue, May 17, 2016 at 12:25 AM, David Griffith <dave@email-addr-hidden> wrote:
> On Mon, 16 May 2016, Andrea Del Signore wrote:
>
> > I've been knocking my head against a wall for more than a year trying to
>> > figure out how to correctly mix two streams of audio while using
>> > libsndfile for input and libao for output. My main requirement is that
>> > I cannot assume anything about the output drivers -- that is, I cannot
>> > depend on the output driver (ALSA, OSS, Sun, etc) being able to do the
>> > mixing for me. Many of my target platforms lack any sort of mixing
>> > services. I need to do this myself. I tried starting a mixer/player
>> > thread that would work in a producer/consumer relationship with one or
>> > two audio file decoder threads. I can play one sound at a time just
>> > fine. When I try to do both, I get distortion followed by a segfault.
>>
>> Hi,
>>
>> not sure if I understood correctly: do you just want to mix N files?
>>
>> Like you I'm learning libsndfile and libao so this is my attempt to mix
>> some audio files:
>>
>> http://pastebin.com/dm7z8b3Z
>>
>> HTH,
>> Andrea
>>
>> P.S.
>> Can someone explain line 88 (I already read the sndfile FAQ)?
>>
>
> I'm not simply trying to mix two files. My main project is a game engine
> in which two sounds are allowed at any one time. For instance, there can
> be constant background music punctuated by sound effects. I can't get
> these to mix correctly.
>
>
Hi,
in that case you can just skip the right number of frames before starting
playing sounds.
I modified my code to take the start time for each file and schedule the
play time with frame accuracy.
If you want your timing to be sample accurate the algorithm is a bit more
complex.
Ciao,
Andrea
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Tue May 17 12:15:02 2016
This archive was generated by hypermail 2.1.8 : Tue May 17 2016 - 12:15:02 EEST