Spirit Free June 25: http://devhost.xda-developers.com/unU (Other versions on Play.)
Stock phones with SU/root will use the OEM API, but may be switchable to UART mode if you need the extra RDS or other features.
For CM/Google etc:
Volume is loud; you can set Audio-Volume Scale to 30 or as required.
So far you can only get speaker mode by selecting speaker mode, then pulling the wired headset out, and re-inserting just enough for the antenna affect.
Occasional audio glitches possible. Try Pause/Play or restart Spirit. I tested one phone call and that worked.
Bluetooth must be off. There is a new "Broadcom Bluedroid" Bluetooth API I need to support.
Audio->Method is "HTC One ALSA Xprmnt", which should be automatic if ro.product.device starts with "m7".
I "roughed in" some digital audio support. It should eventually work but not yet.
At some point direct FM to BT A2DP headset without the data leaving the combo chip may be possible. But going low level could create problems with other BT headset usage, and digital audio will provide a usable, though less efficient route.