[LAD] mixing while using libao and libsndfile
Andrea Del Signore
sejerpz at gmail.com
Tue May 17 05:32:32 UTC 2016
On Tue, May 17, 2016 at 12:25 AM, David Griffith <dave at 661.org> 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.
>> 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:
>> 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.
in that case you can just skip the right number of frames before starting
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
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Linux-audio-dev