[AD] Allegro's Mixer

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


Hi,

I've been thinking of generalizing and extending the Allegro sound API to 
cover multi-channel positional 3D surround sound. 

When Allegro was probably created, it may not have been made with these
things in mind. But now that Allegro5 is in the phase of development, it 
may be possible to start early with a fresh, completely generalized, 
excellent cross platform sound API.

I know that there are certain issues with making this possible in Allegro 
4, but these are the things that I felt, that need to be looked into, 
while designing the mixer API.

1. The sample playback parameters, in bits. There is a certain level of
   incompatiblity/speed issue with older platforms like DOS, when we use 
   higher precision like float/double to represent volume/pan/sample etc. 
   values. But it would be wise to have an API which would allow us to
   inter-operate between different number formats.

2. The number of channels and the drivers. As of now, the drivers have 
   been written with 1 or 2 channels (mostly) in mind. It would be nice to 
   make the drivers flexible as well.

3. The mixer system can be made to integrate parameters like setup of 
   speakers/normalization/number of channels/listener & source positional 
   data etc. while mixing sounds. Where not available, the mixing system 
   must be able to simulate 3D audio using 2D audio (panning and rolloff)
   effects only. Demuxing can be done for lesser number of speakers than
   the number of output channels.

4. It is better that Allegro's API can allow third party plugins/expansions as 
   well, such as DSP code, or even through callback. This will very much 
   enhance the sound aspects of gaming (may be psyco-acoustic 
   environments).

5. Support for multi-channel (>2) input formats (even AC3, if needed). The 
   Allegro sound input code is better written with these new things in 
   mind.

Now for the important part: I'm not saying that this is the best way.. Or 
this is how it should be; but think of all the endless possibilities that 
open up, that prove beneficial to the users of the library in the long 
run. And you will agree with me.

This occured to me as I was going though the architecture of OpenAL.
http://openal.org

I really feel that Allegro (or Allegro5) has vast scope for improvement, 
and that it would be really nice if we include these things in the 
current/future sound API.

We will win.

Regards, 

-- 

Karthik Kumar V
Updated Page -> http://www.geocities.com/kkgoesnuts

A Fortune Cookie :
- ------- ------ -

"Every person can be described as an equilateral triangle of side s, the
vertices representing what (s)he thinks, says and does. For an average
person, s = 10 miles ~ 16000 metres. When s = 0 metres, a person is said to
be a MAHATMA. Everybody should try to make their s get close to 0."





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/