How to implement an Equalizer which has more bands than 5?

I’m doing a project with Android and I want to implement an Equalizer.
I’ve found that the APIs provided by Android only have 5 bands to control but I want more.

So I looked inside and I looked the Overview PDF.
But I still don’t know how to realize it…

So, does anyone can give me some help about this?

PS: how to get the sourcecode of the OpenSL?

Hi shengqishifeng,

The number of equalizer bands available for control is retrieved using SLEqualizerItf->GetNumberOfBands(). Since the equalizer controls are a function of how the audio subsystem is designed and the hardware its running on (if hardware accelerated), it is not possible for you to add bands to the equalizer through OpenSL ES.

You can find the entire OpenSL ES specification in the Khronos registry: Android exposes a partial implementation of OpenSL ES 1.0.1 as part of its native API. If you look at section 8.20 in the OpenSL ES 1.0.1 spec you can find more information on how to use the equalizer.

OpenSL ES in itself is only an API. It does not define the code which implements it. For access to source code, you need to check with the implementer to see if the source code is available.