Android audio effect limits to 5 bands
Asked Answered
K

4

8

I use Android Audio Effect/Equalizer API for my app. However, it limits to 5 bands. Is there any document/library that helps to tune more bands for a finer equalizer implementation?

Knurled answered 22/9, 2012 at 16:24 Comment(3)
Can't you just use more than one instance of the equalizer to get more bands?Cageling
I use one instance of the equalizer that is attached to [developer.android.com/reference/android/media/… AudioSessionId)Knurled
@NilsPipenbrinck: Use of more then one instance of the equalizer will convert in to same another 5 band frequency. Then how it is possible to have all frequency different? Do have any other idea?Automatism
H
2

It varies from device to device getNumberOfBands tell you the number of Equalizer effect. Some devices have 5,8 and 13,etc.

Equalizer equalizer = new Equalizer(0,mediaplayer.getAudioSessionId());

equalizer.setEnabled(true);

equalizer.getNumberOfBands(); //it tells you the number of equalizer in device.

Also have a look at this

Hinojosa answered 8/5, 2015 at 8:22 Comment(2)
I tried this on three different devices (Samsung, Huawei, Nexus). All give 5 bands. Whereas PowerAmp (Music Player) available on playstore gives 10 bands for every device. Any idea how they are doing this?Nisbet
I have tested it on different devices and returns sometimes 15 and sometime 5. And I don't know how PowerAmp does this for 10 bandsHinojosa
N
4

This question was asked long ago. Here is a solution for people seeking answer in future. I have found this library for android that provides 10band Equalizer.

Using Android's Equalizer Api on three different devices I was able to get the following result:

1) Samsung Galaxy Note 3 (5 Bands)

2) Huawei Mate 8 (5 Bands)

3) Nexus 5 (5 bands)

using this library I am able to get 10bands on all of the above devices. I have tested it and it is working great.

Include this library in your project. And use the following code to have an Equalizer with 10 bands.

IMediaPlayerFactory mediaPlayerFactory = new OpenSLMediaPlayerFactory(getApplicationContext());
IBasicMediaPlayer mediaPlayer = mediaPlayerFactory.createMediaPlayer();
IEqualizer equalizer = mediaPlayerFactory.createHQEqualizer();
/* This returns 10 bands exactly like Poweramp music app does */
int numOfBands = equalizer.getNumberOfBands();

This library has is documentation that you can refer as-well. Hope this helps.

Nisbet answered 28/7, 2017 at 17:10 Comment(0)
H
2

It varies from device to device getNumberOfBands tell you the number of Equalizer effect. Some devices have 5,8 and 13,etc.

Equalizer equalizer = new Equalizer(0,mediaplayer.getAudioSessionId());

equalizer.setEnabled(true);

equalizer.getNumberOfBands(); //it tells you the number of equalizer in device.

Also have a look at this

Hinojosa answered 8/5, 2015 at 8:22 Comment(2)
I tried this on three different devices (Samsung, Huawei, Nexus). All give 5 bands. Whereas PowerAmp (Music Player) available on playstore gives 10 bands for every device. Any idea how they are doing this?Nisbet
I have tested it on different devices and returns sometimes 15 and sometime 5. And I don't know how PowerAmp does this for 10 bandsHinojosa
P
0

The number of bands and their center frequencies are dependent upon the handset. The equalizer implementation is baked into the ROM.

Proper answered 12/11, 2013 at 22:53 Comment(0)
H
0

You can try having a try with sasken-player, it's a reimplementation of the equalizer that will give you 10 bands

Harmony answered 17/11, 2015 at 21:31 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.