On Tue, May 17, 2016 at 12:25 AM, David Griffith <d...@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. >> >> 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. http://pastebin.com/0PMyfPvK 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@lists.linuxaudio.org http://lists.linuxaudio.org/listinfo/linux-audio-dev