[Samsung Galaxy Nexus] MWisBest:
Some possibly exciting news... long story though, so I'll have a TL;DR version of it at the end.

Since my phone had been broken for a while, I was using my tablet to play music in my car instead of my phone like I usually do. I'm kind of an audiophile (meaning obsessed with high quality music, I am not content with MP3s and tend to use CD-quality FLAC audio whenever I can), so I'm a good judge of audio. My car's stereo is pretty awesome. (NOTE: From here up until the next bolded text, I get into some pretty high detail about stuff that I find interesting but others may find boring, so you can skip from here to the next bolded text if you'd like.) It's the stock system, but it's no slouch: 7 Infinity speakers (2 6x9s in the rear deck getting all frequencies, 2 6.5x6.5s in the front doors getting mostly mid-bass frequencies but some lower frequencies as well, 2 2.5x2.5s that are in this pod thing attached up by the front corners of the front door windows that get mids and highs, and 1 2.5x2.5 up by the windshield next to the defroster vents that gets mids and highs), an Infinity amplifier, an Alpine-made head unit, and a 4-CD changer separate from the head unit but just below it in the front dash and not in the trunk. I spliced into the wires that go from the CD changer to the head unit to add a little $2 3.5mm jack I got from RadioShack, which is pretty nifty: if I plug something into the jack, the audio from whatever I plug in gets sent to the head unit, but if I don't have anything plugged into it, the audio from the CD changer is sent to the head unit. I also added some 6x9 Infinity speaker grilles my dad had laying around to the rear 6x9s, because instead of having speaker grilles they were covered up by the thick carpet/cardboard-like material the rear deck is made of.

My ears are extremely sensitive. When I was in elementary school, I remember that they would occasionally test everybody's hearing (not all at once tho, one at a time). Basically they'd play a tone at a certain frequency and ask if you could hear it. They even played three tones that you weren't supposed to hear, the frequencies were supposed to be too high for anybody to hear, that way they could tell if people were lying. They went in order from the lowest to the highest frequency, and I heard all but the very last tone. I was told that I was lying and they'd do the test again with me and to be honest this time. I told them I wasn't, and being the brainiac smartass I was I said to prove it don't just go in order with the tones, mix them up (they just pressed a separate button to play each one): turned out I wasn't lying. Imagine that.

In middle school, we were learning about the ear in science class. To demonstrate the limits of human hearing, the teacher got out a dog whistle, where it was supposed to be such a high frequency sound that only dogs can hear it. I heard it, and it hurt like hell. It was LOUD. And I was the only one that heard it.

On a mostly-separate note, we also had a screaming contest at the end of the unit: the teacher had a decibel meter, and we stood 100 centimeters (40 inches) away from it and screamed as loud as we could: my scream was the loudest, at 120dB. 120dB is almost loud enough to damage your hearing.

So now to the brunt of the story. I noticed that my tablet was really lacking in bass and audio clarity compared to my phone. Both of them are OMAP4460-powered devices. (NOTE: I'm not going to be exactly right on everything I say here, I'm still kind of new to all this audio hardware stuff, [MENTION=5747201]isrcepeda[/MENTION] and [MENTION=4243514]Hashcode[/MENTION] have been a huge help in getting me way more up-to-speed with this than I was though!) I thought that all OMAP4 devices were supposed to use the TWL6040 audio chip, and it is the way it should be done, but it turns out the tablet uses a WM8962 instead, which if I'm understanding this correctly, does some audio processing on top of what the TI Audio Back End ("ABE") already does, and I think there's something going on with how these two are stacking up that's causing problems. The TWL6040 provides a more direct output for the ABE and just lets ABE do its job.

Inspired by all the stuff I've been learning with this, I've decided to try and write a kernel driver to allow for some customizing and tweaking of all that the TI ABE has to offer, as well as whatever can be done with both the TWL6040 of many OMAP4 devices as well as the annoying WM8962 in this tablet. This is going to be my first major project in C/C++ code, and the first thing I've ever really written from scratch in it. (NOTE: I'm aware C and C++ aren't 1:1 compatible with everything, but most things I've worked with so far are anyway.) I can't make any guarantees on this, worst-case scenario it might end up being a complete failure, but at the very least I think I can learn a lot from doing this regardless of its outcome. I'm hoping to write this in a way that is compatible with many devices, such as some other Samsung products running OMAP4s.

This is something that probably won't be in an FML release for a while, but whenever it gets there I think it's going to be pretty awesome. If I'm looking at this TI ABE code correctly, it has a THIRTEEN BAND EQUALIZER, where not only is the gain for each band adjustable but the frequency of each band is too! That's pretty awesome, and it should also be more efficient than more software-based solutions like the standard stuff in the DSPManager app.

TL;DR: I hope to have some pretty badass audio processing going on soon.