[Spirit FM] mikereidis:
Stable qdsp5v2 Plus/ICS alternative for Desire HD and other HTC devices:

1 - Install a stock or stock derived ICS ROM that supports the HTC ICS FM app.

I used "Primo-S - v3.3 (HTC One V port)" available here: http://xdaforums.com/showthread.php?t=1545595

At end of install, press "No" to stay with original libraries. The other option may fix microphone and/or BT audio issues, but the original HTC libraries are needed.

2 - Install April 11 Spirit. Free version: http://www.mediafire.com/?lildtezub3u6y67

3 - If you deny SU to Spirit, or if Bluetooth is on, the Broadcom OEM API will be used, and Audio->Method will silently and invisibly be set to "HTC".

Otherwise, you need to select that Audio Method manually.

4 - Try it out and report please.

I did a quick test with no headset plugged and FM on speaker. Phone call came in, FM was paused, call was good and FM audio restarted at end of call.

As always, test your phone call and notification etc. scenarios before missing that "million dollar phone call".

I tried transferring the audio libraries to Ice Cold Sandwich 7, but there seems to be no end of inter-dependencies, so I think such a simple mod to other AOSP ROMs is likely not possible. That trick hardly ever worked on GB or earlier either.

The now ICS augmented HTC audio method should likely work on other HTC ICS based devices, using stock or stock derived ROMs. Once the new "trick" was figured out, it's very simple.

Simple is how things should be for an app. This business of trying to hack together solutions that need to be in the audio libraries is a HUGE exercise in frustration and is likely doomed ultimately, if and when usable FM enabled audio libraries are integrated into various ROMs. ICS audio seems to be quite a bit more complicated than GB too.

So, now that there's a usable solution for Desire HD and similar HTC devices on ICS, I REALLY, REALLY think that trying to hack together semi-stable solutions is a REALLY bad idea. The proper solution is in the audio libraries.

And, at this time, I have no particular desire to stretch myself any further into ROM or audio library development. These modern devices have very complicated audio hardware AND software and the interactions between them is at least an order of magnitude more complicated.

Consider me an "FM Radio manufacturer". Google builds cars and said they wouldn't build radios because they don't have enough resources. The ROM teams modify those cars.

Should an "FM Radio manufacturer" such as myself get involved in building cars ? When the car manufacturers and modifiers outnumber me by a very large factor ? And I have to fix/modify various cars/ROMs from different manufacturers ?

IMO, no, that is silly. I should stick with my core mission, as much as I can. My plate is more than full with just that core mission. The mission Google doesn't have the "developer team" to do, despite the fact they could have gotten the various secret documents that are denied to me. IMO, it's a minor miracle I've gotten this far.

The ROM builders are going to have to provide a reasonably easy and stable way to enable FM audio. For every device I need only 3 functions: Disable, Headset and Speaker. Those are the APIs I need. CM7 and the various stock ROMs provide them, and CM9 and the other ICS ROMs will also have to oblige, whether by using proprietary libraries or custom code.