Re: [LAD] mixing while using libao and libsndfile

2016-05-17 Thread Andrea Del Signore
On Tue, 17 May 2016 08:26:17 +, David Griffith wrote:

> On Tue, 17 May 2016, Andrea Del Signore wrote:
> 
>> On Tue, May 17, 2016 at 12:25 AM, David Griffith
>>  wrote:
>> On Mon, 16 May 2016, Andrea Del Signore wrote:
>> 
>> > 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.
> 
> That won't work.  Your code schedules things ahead of time before
> anything else happens.  I need to be able to fire off sound effects the
> instant the player does something to cause them.  I can't know in
> advance.

Hi,

another code iteraction: http://pastebin.com/v8gTWBtJ

This is a basic implementation, there is a lot of things left todo (RT 
safeness as Paul already noted, code cleanup, etc...)

HTH,
Andrea

P.S.
I don't code in C very often, may be this is my first time in 6 or 7 
years. For me this code snippet is just an excuse to do some exercise :)


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] mixing while using libao and libsndfile

2016-05-17 Thread Paul Davis
Your design is way too simple and fundamentally wrong.

If you want low latency you need to use a pull model (aka callback model)
for audio i/o to the device. Let the device tell you when it wants audio
data, and deliver it,on time, without blocking (which means no on-demand
file i/o in the same thread as the device audio i/o). See
http://www.rossbencina.com/code/real-time-audio-programming-101-time-waits-for-nothing

On Tue, May 17, 2016 at 4:26 AM, David Griffith  wrote:

> On Tue, 17 May 2016, Andrea Del Signore wrote:
>
> On Tue, May 17, 2016 at 12:25 AM, David Griffith  wrote:
>> On Mon, 16 May 2016, Andrea Del Signore wrote:
>>
>> > 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.
>>
>
> That won't work.  Your code schedules things ahead of time before anything
> else happens.  I need to be able to fire off sound effects the instant the
> player does something to cause them.  I can't know in advance.
>
> --
> David Griffith
> d...@661.org
> ___
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> http://lists.linuxaudio.org/listinfo/linux-audio-dev
>
>
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] mixing while using libao and libsndfile

2016-05-17 Thread Andrea Del Signore
On Tue, May 17, 2016 at 10:26 AM, David Griffith  wrote:

> On Tue, 17 May 2016, Andrea Del Signore wrote:
>
> On Tue, May 17, 2016 at 12:25 AM, David Griffith  wrote:
>> On Mon, 16 May 2016, Andrea Del Signore wrote:
>>
>> > 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.
>>
>
> That won't work.  Your code schedules things ahead of time before anything
> else happens.  I need to be able to fire off sound effects the instant the
> player does something to cause them.  I can't know in advance.
>
> --
> David Griffith
> d...@661.org



Yes my code for now implements only your initial request (play 2 sounds
spaced by few seconds), and it shows how to schedule N sound files of
different length at different times.

I'll try to write a simple mixer for my next learning exercise :)

Have a good day,
Andrea
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] mixing while using libao and libsndfile

2016-05-17 Thread David Griffith

On Tue, 17 May 2016, Andrea Del Signore wrote:


On Tue, May 17, 2016 at 12:25 AM, David Griffith  wrote:
On Mon, 16 May 2016, Andrea Del Signore wrote:

> 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.


That won't work.  Your code schedules things ahead of time before anything 
else happens.  I need to be able to fire off sound effects the instant the 
player does something to cause them.  I can't know in advance.


--
David Griffith
d...@661.org___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev