[Android Software Development] bjrmd:
As many out there know the wolfson audio DAC has been the subject of many sound mods to improve smartphone sound quality. Supercurio was the pioneer in this and made some great DAC control enhancements namely voodoo sound. This has been continued with the work of the boeffla sound, scooby doo and various wolfson control programs in many kernels for the Note 2, S3 intl. In both boeffla and voodoo mods there is a section for activating the onboard parametric equalizer of the DAC. What has NOT been available is a way to adjust the frequency, bandwidth of the bands. So we were left with fixed bands that could have gain adjustment only. Up to now I have been using the parametric equalizer of Neutron player which is quite good but thought why not try to do the same thing with the wolfson DAC directly. Since it is an on chip feature it takes not extra cpu time or battery use. Looking through many posts and boards, there was no real data on how to do this. So I started tinkering with the equalization band parameters directly and was able to get frequency adjustment changes looking at RMAA curves. But there seemed to be no good pattern to what I was doing. I was ready to just give up but found a post on a raspberry pi thread about changing some registers on the wolfson DAC and was finally able to do it. So here it is:

Go to http://www.wolfsonmicro.com/support/wisce and download the WISCE software for the 8994 board. Then download the 8994 "board" http://www.wolfsonmicro.com/product...ments/uploads/software/WM8994Setup_Rev3_0.zip.

Install the wisce, then the 8994 board.

Do not open either yet.

After all installed, open the 8994 program, create a new system, choose simulated and keep the default device, hit ok and you are ready.

Proceed down the left side to Tuning- A1F1Dac1, if you click that you will see the equalizer settings and curve.

Here you can adjust the center freq, high and low pass filters and bandwidth of each.

When you are satisfied , go to the View menu and choose registers.

See the screen shot but the values you are interested in are circled, they correspond to the file in sys/devices/virtual/misc/voodoo_sound/headphone_eq_bands_values. They are in hex. In wolfson/boeffla they are in a different file but in decimal. Under the File/Preferences menu of wisce you can change the display to decimal so no need to hand convert.

The gain must be set independently, so in the same folder sys/devices/virtual/misc/voodoo_sound, there will be files for gain of bands 1-5. Be gentle here, or you will get clipping. In fact I would make cuts in the parametric settings at least equal to your gains. If you use Neutron , you can set up a similar equalization curve, "normalize" the tracks to the curve and Neutron will set the preamp gain for each track individually. Then just disable Neutron's equalizer and the gain settings will still stick for the wolfson DAC changes.

Make sure that you go into either boeffla or voodoo settings and enable the bass booster, or equalizer even if you don't want the extra bass. That enables the use of the settings.

The changes may not survive a reboot and the equalization bands file will only show the changes if a headset is in the jack

I use tasker to overwrite the files each reboot and have a different profile if I am using my Shure 535 with a microphone control vs playing to a speaker setup(3 band plug)

Here is the result using RMAA including neutron as my original base.

Happy tuning!