Sound newbie: general Q

Hello all,

I’m trying to decide between

  • SDL sound lib
  • openAL
  • fmod

It would really help if someone outlines some
pros/cons for each one, together with a list
of features (what they can/cannot do)…

For example if one of them doesn’t support 3D sound,
then it’s probably not good for what I’m trying to do.

Cheers,
Kos.

I dont know why people keep trying to consider fmod as an option. Its
buggy, it has a retarded api, and its not Free Software. Now, as for the
other two, SDL’s sound api is far easier to use than OpenAL, and is
better suided for newbies, but lacks the functionality that OpenAL provides
(but most games dont need it anyhow).On 08-Jun-2004, Kostas Kostiadis wrote:

Hello all,

I’m trying to decide between

  • SDL sound lib
  • openAL
  • fmod


Patrick “Diablo-D3” McFarland || unknown at panax.com
"Computer games don’t affect kids; I mean if Pac-Man affected us as kids, we’d
all be running around in darkened rooms, munching magic pills and listening to
repetitive electronic music." – Kristian Wilson, Nintendo, Inc, 1989
-------------- next part --------------
A non-text attachment was scrubbed…
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20040608/7169a5d3/attachment.pgp

Hello all,

I’m trying to decide between

  • SDL sound lib
  • openAL
  • fmod

I dont know why people keep trying to consider fmod as an option. Its
buggy, it has a retarded api, and its not Free Software. Now, as for the
other two, SDL’s sound api is far easier to use than OpenAL, and is
better suided for newbies, but lacks the functionality that OpenAL provides
(but most games dont need it anyhow).

In my project i first tried to use OpenAL. I had a lot of problems
with it and it has very poor documentation. So i decided to use
something else. I need 3D sound so SDL sound is not an option.
FMod seems to work well. Its documentation is not excellent but good
enough to get things done.

– Ville Ranki
@Ville_Ranki 040-757 2533
http://www.vip.fi/~cosmo/On Tue, 8 Jun 2004, Patrick McFarland wrote:

On 08-Jun-2004, Kostas Kostiadis wrote:

I dont know why people keep trying to consider fmod as an option. Its
buggy, it has a retarded api, and its not Free Software. Now, as for the
other two, SDL’s sound api is far easier to use than OpenAL, and is
better suided for newbies, but lacks the functionality that OpenAL
provides
(but most games dont need it anyhow).

I kinda need 3D sound I’m affraid…
If Ranki Ville is correct, SDL sound doesn’t support 3D sound.
Since fmod isn’t free, that limits my options to openAL :(> ----- Original Message -----

From: Patrick McFarland [mailto:unknown@panax.com]
Sent: 08 June 2004 14:20
To: A list for developers using the SDL library. (includes SDL-announce)
Subject: Re: [SDL] sound newbie: general Q


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

fmod is “free” as in money if used in a non commercial product. It is
by no means open source “free”

MarkOn Tue, 2004-06-08 at 08:57, Kostas Kostiadis wrote:

I dont know why people keep trying to consider fmod as an option. Its
buggy, it has a retarded api, and its not Free Software. Now, as for the
other two, SDL’s sound api is far easier to use than OpenAL, and is
better suided for newbies, but lacks the functionality that OpenAL
provides
(but most games dont need it anyhow).

I kinda need 3D sound I’m affraid…
If Ranki Ville is correct, SDL sound doesn’t support 3D sound.
Since fmod isn’t free, that limits my options to openAL :frowning:

-----Original Message-----
From: Patrick McFarland [mailto:unknown at panax.com]
Sent: 08 June 2004 14:20
To: A list for developers using the SDL library. (includes SDL-announce)
Subject: Re: [SDL] sound newbie: general Q


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

I’ve recently started to use OpenAL for the same reasons. An added problem for
me was that the official OpenAL packages for Debian are old and buggy (as I
only found out by debugging my own demo programs)… compiling it from CVS
helped.

By now, I’ve got it working for 3D engine sounds with dynamic pitch and Ogg
streaming, seams to work well. Watch out for the ALut functions though, they
are NOT portable. You can’t even load a WAV using them and expect to compile
the same program for Linux.

For now, it seems to work well enough for me. But with the recent surround
sound patches for SDL, I hope I can eventually switch back.

Marian.On Tuesday 08 June 2004 15:57, Kostas Kostiadis wrote:

I kinda need 3D sound I’m affraid…
If Ranki Ville is correct, SDL sound doesn’t support 3D sound.
Since fmod isn’t free, that limits my options to openAL :frowning:


“A moose is an animal with horns on the front of his head and a hunting lodge
wall on the back of it.” - Groucho Marx

I kinda need 3D sound I’m affraid…
If Ranki Ville is correct, SDL sound doesn’t support 3D sound.
Since fmod isn’t free, that limits my options to openAL :frowning:

I’ve recently started to use OpenAL for the same reasons. An added problem for
me was that the official OpenAL packages for Debian are old and buggy (as I
only found out by debugging my own demo programs)… compiling it from CVS
helped.

By now, I’ve got it working for 3D engine sounds with dynamic pitch and Ogg
streaming, seams to work well. Watch out for the ALut functions though, they
are NOT portable. You can’t even load a WAV using them and expect to compile
the same program for Linux.

For now, it seems to work well enough for me. But with the recent surround
sound patches for SDL, I hope I can eventually switch back.

The surround sound patches for SDL may not be what you need. They
are for 4 or 6 channel sound, and require a soundcard hooked up
by analog connections to a 4/6 powered speaker set (a digital
connection to a home theater system won’t do).

I think there may be a nomenclature problem here. What is “surround”?
I just updated my OpenAL from cvs and compiled and tested it for
the Alsa driver on Linux. So far as I can tell, it’s for 2 channels
only. I examined the code for the Alsa driver, and I don’t see
anything there for opening Alsa for more than 2 channels. I don’t
hear more than 2 channels, and the sample wave files in the OpenAL
test directory have only 2 channels. The “multichannel” test
programs will not play 6 channel wave files.

So I guess what OpenAL calls “surround” means simulating surround
effects using 2 hardware channels. This is totally different from
the surround support now in SDL cvs, which requires 4 or 6 hardware
sound channels.

Greg Lee <@Greg_Lee>On Tue, 8 Jun 2004, Marian Schedenig wrote:

On Tuesday 08 June 2004 15:57, Kostas Kostiadis wrote:

The surround sound patches for SDL may not be what you need. They
are for 4 or 6 channel sound, and require a soundcard hooked up
by analog connections to a 4/6 powered speaker set (a digital
connection to a home theater system won’t do).

Which is exactly what I want. Digital connections would require DD or DTS
encoding, which OpenAL can’t do either (at least as far as I know).

So I guess what OpenAL calls “surround” means simulating surround
effects using 2 hardware channels. This is totally different from
the surround support now in SDL cvs, which requires 4 or 6 hardware
sound channels.

OpenAL supports at least 5.0 (front stereo, center, rear stereo) IIRC. If you
don’t have rear channels, they are played through the front channels. If/when
SDL supports “surround” on more platforms than just Linux, I guess it
wouldn’t be too tragic if it can’t do this “mix down” (more a conversion of
source position vectors, really), as I suppose it’s easy to add a switch for
stereo/surround modes to the actual game.

Marian.On Saturday 21 August 2004 19:32, Greg Lee wrote:

The surround sound patches for SDL may not be what you need. They
are for 4 or 6 channel sound, and require a soundcard hooked up
by analog connections to a 4/6 powered speaker set (a digital
connection to a home theater system won’t do).

Which is exactly what I want. Digital connections would require DD or DTS
encoding, which OpenAL can’t do either (at least as far as I know).

So I guess what OpenAL calls “surround” means simulating surround
effects using 2 hardware channels. This is totally different from
the surround support now in SDL cvs, which requires 4 or 6 hardware
sound channels.

OpenAL supports at least 5.0 (front stereo, center, rear stereo) IIRC. If you

Not on Linux, I think.

don’t have rear channels, they are played through the front channels. If/when
SDL supports “surround” on more platforms than just Linux, I guess it
wouldn’t be too tragic if it can’t do this “mix down” (more a conversion of
source position vectors, really), as I suppose it’s easy to add a switch for
stereo/surround modes to the actual game.

SDL will downconvert 6 to 2 or 4 to 2 channels automatically, but it doesn’t
mix them down, it simply omits channels. Would it be useful to change that
so that in the down-conversion, the left channel is made the average of the
original left front and left rear channels, and similarly for the right?
I tend to doubt that it would be.

Greg Lee <@Greg_Lee>On Sun, 22 Aug 2004, Marian Schedenig wrote:

On Saturday 21 August 2004 19:32, Greg Lee wrote:

OpenAL supports at least 5.0 (front stereo, center, rear stereo) IIRC. If you

Not on Linux, I think.

Ahem. I take this back. It’s taken me all morning to get it
to work, and I had to patch the source a little, but I can
get OpenAL to use 4 output channels (I didn’t try 5 or 6).

I know this is not the best place to go into it, but there’s
not that much to it, so I will, anyway. I made a file
".openalrc" in my home directory with these lines:
(define speaker-num 4)
(define display-banner #t)
(define source-gain 1.0)
(define devices '(alsa))
(define alsa-device '( surround40 ) )

and, to get OpenAL to parse the last line, patched the
alsa.c driver as follows:
— alsa.c.orig Sun Aug 22 11:26:15 2004
+++ alsa.c Sun Aug 22 13:00:19 2004
@@ -249,6 +249,11 @@
return;

	}
  •   if(rc_type(rcv) == ALRC_CONSCELL)
    
  •   {
    
  •   	rc_symtostr0(rc_car(rcv), retref, retsize);
    
  •   	return;
    
  •   }
    

    }

    assert((int) strlen(DEFAULT_DEVICE) < retsize);

Greg Lee <@Greg_Lee>On Sun, 22 Aug 2004, Greg Lee wrote:

On Sun, 22 Aug 2004, Marian Schedenig wrote: