Advertisement

Audio API's

Started by March 10, 2012 05:34 PM
4 comments, last by Krohm 12 years, 8 months ago
Hi everyone,

Been reading previous posts about this but are all been like 2 years ago or more and I just wanted to be clear on what is the best type of Audio API's that are free.

I know there is FMOD and irrKlang but you have to pay if you were publish a product.

I know that DirectSound is obsolete and XAudio2 is the replacement for it but what is the deal with OpenAL?

If I wanted to publish a product on the iOS (Mac or iPhone/iPad) I would definitally have to use OpenAL or is there something else?

I have not yet began to implement XAudio2 but what is the advantages over OpenAL?

And finally what audio api can Android use?

Thanks for reading.
Hi.

XAudio2 is a Microsoft API and is only available for Windows and Xbox games.
OpenAl is cross-platform, but is its not always easy to find its documentation on more recent devices.
When i was programming on Android i used androids MediaPlayer API.
On the IPhone. mac and other apple devices, i advice you to look at Apples' Core Audio API ;).
Advertisement
I know that DirectSound is obsolete and XAudio2 is the replacement for it but what is the deal with OpenAL?
That's the real question when it comes to OpenAL. I still have problems in understanding if this project is a joke or not. It was clear since the beginning they wanted to capitalize on the OpenGL-sound-alike naming, what they didn't: provide a decent API you can trust.
I think I spent some effort on it about six months ago; it was basically like being in 199x again.
I have not yet began to implement XAudio2 but what is the advantages over OpenAL?
You don't implement XAudio2. You implement code on top of it. I'm fairly sure implementing XAudio2 is going to be problematic.
Anyway, some things I recall about XAudio2

  • Sound sources are much smarter. They can be multichannel and 3D positioned... like AL, sure. They can also be unlimited in line of principle (or at least it's a very high limit). You won't be as lucky in AL as far as I remember.
  • The API actually makes sense (in 2010+).
  • Sound effects library, accurate mixing, hardware independent with high rendering quality. Nicely adapts to modern PC architectures.
  • No bugs.
  • It ships with Windows since ... some XP service pack (2?)
  • No need to choose against different implementations that work "sort of". You got one. And it will do the job.

    Ok, I'll cut it short. To me, it bought mainly peace of mind. I had a few scars in the past with AL. Is it serious now? I don't know. And I don't plan to spend my time again figuring out.

Previously "Krohm"


[quote name='themadme' timestamp='1331400871' post='4920933']I know that DirectSound is obsolete and XAudio2 is the replacement for it but what is the deal with OpenAL?
That's the real question when it comes to OpenAL. I still have problems in understanding if this project is a joke or not. It was clear since the beginning they wanted to capitalize on the OpenGL-sound-alike naming, what they didn't: provide a decent API you can trust.
I think I spent some effort on it about six months ago; it was basically like being in 199x again.
[/quote]
I've to second this one, the API of OpenAL is ok, but the driver support is terrible. I got it running on one PC and not at all on a second PC


  • It ships with Windows since ... some XP service pack (2?)


Almost, when you want to support 3d audio you should use x3daudio lib from directX which is optional, that is, you need to install it afterwards.
Hi,

Thanks for all the information people, very much appreciated.

Yeah, I have read other forum mentioning that OpenAL is very difficult to work with and I think I might just ignore it for now.

So XAudio2 is completely software pipeline API (or so what I have read) which makes sense since CPU cores on today's PC are powerful and quick enough to process sounds. Though I wonder what or is there a Golden rule for the number of maximum sounds to be or can be played? When using hardware, it depended on the sound card limitations which would vary between 16 to 128 buffers therefore you would need a prioritise system to play the most important sounds to the user.

For now Ill just a keep a maximum sounds variable that can be set to whatever value.

Again thanks for all the replies.

So XAudio2 is completely software pipeline API (or so what I have read) which makes sense since CPU cores on today's PC are powerful and quick enough to process sounds.
Even yesterday's PCs are fast enough! I've been profiling a Athlon Venice (monocore, DDR1, 2400 Mhz effective). I think I had about 12 sounds and it took about 5% of CPU budget. However, there was no 3D positioning, only simple panning.

Though I wonder what or is there a Golden rule for the number of maximum sounds to be or can be played? When using hardware, it depended on the sound card limitations which would vary between 16 to 128 buffers therefore you would need a prioritise system to play the most important sounds to the user.
Prioritization is still important. Mostly for human reasons as far as I've understood. I think there's no practical limit on the number of mixers available. When talking about buffers however, I recall there's an upper limit on the number of buffers queued (or perhaps queued+playing?) on a source and even in total. This happens because the internal XAudio2 manager really batches them somehow. I'll be honest, I don't remember if there's a limit on the source count.

Previously "Krohm"

This topic is closed to new replies.

Advertisement