[APP][4.1+] Spirit2: Real FM Radio for AOSP & root

What name would you prefer for this new FM app ?

  • Spirit2

    Votes: 441 81.4%
  • a2d.fm

    Votes: 23 4.2%
  • a2d

    Votes: 1 0.2%
  • A2D FM

    Votes: 51 9.4%
  • A2D

    Votes: 8 1.5%
  • Other: Please post

    Votes: 29 5.4%

  • Total voters
    542
Status
Not open for further replies.
Search This thread

mikereidis

Inactive Recognized Developer
Jan 28, 2011
7,823
4,143
Ottawa/Gatineau, Canada
I just made it but the dev. don't still answer me, maybe is busy, but I hope him can do it soon..
Meanwhile I ask here because I hope maybe @mikereidis can help me to found a temporary fix or way to got this app work :fingers-crossed:

I return to hospital tomorrow. Hopefully I will get a better idea when (or if ever ?) I'll be able to read for more than a minute or 2 at a time.

Anyone can email me to ask for an app refund. Now you can even do it through Google, even months later.


I've had both good and bad experiences getting changes needed for FM from ROM devs. The good ones are usually initiated by the ROM devs, and not by me.

Some of the core CM folk will just say "We don't support FM"/ Some have expressed offence and even threatened to get me banned from XDA for asking for help for my "commercial, closed source" app. (Then CM went commercial, LOL.)

I think it may be better for the users of my apps to ask ROM and kernel devs for usuable FM support, especially when I don't have the phone myself, or that specific variant when they don't support my variant.

If you want, I'll get on it and ask myself when I can, given my current half-blindness.


But I'm not too sure many ROM or kernel devs will want to go back to the "old kernels", especially when the new ones seem to offer many nice features, AFAICT. I haven't yet looked too closely at exactly what mods those devs would need to make.



Will respond to other posts after I get my family fed dinner. Wife only cooks on weekends. ;)
 

mikereidis

Inactive Recognized Developer
Jan 28, 2011
7,823
4,143
Ottawa/Gatineau, Canada
i have only one issue volume cant chenge :(
i have LG G2 with Carbon Rom, i know it is a know issue, but how i can workaround?
i tryed to control the volume from "Viper4Android Fx" app, but nothing, the volume dont change :(
Please can help me? how i can controll the volume?
thanks


Edit:
i noted if i not put the jack the volume change, but when i plug in the jack the volume dont change again :(
do you know how fix or workaround it?
Usually i use phone speaker for listen music.

My new app AudioTricks / VolumeTricks isn't a proper fix of course, but should be a usable workaround for volume control issues: http://forum.xda-developers.com/showthread.php?t=2756320

See post #2 in that thread for the free download link and instructions. The 1 version older release here will be easier to use for volume reduction (or see end of thread there for /data/data/fm.a2d.av/files/primary_gain_inv hack), which I presume is what you need: http://d-h.st/gL3

Lack of volume control with Spirit2 (or Spirit1 in digital audio mode) is so far very unusual; yours may be the first report. That's because with digital audio, Android itself handles volume control, and Spirit2 doesn;t have to do anything special.

If you are listening via speaker then I can see a problem on (I think rare) ROMs that use HALs that will only adjust headset volume when headset is plugged in. As you see a workaround is to leave the jack plugged enough for antenna effect, but not enough for switch to wired headset audio.

Were you using the speaker setting option ? It is still known not to work on some devices/ROMs.
 

mikereidis

Inactive Recognized Developer
Jan 28, 2011
7,823
4,143
Ottawa/Gatineau, Canada
I may as well try, even if they are not able to find other versions of the apps, but given the very high cost of these apps I expect maxim assistance from the developer to solve the problem.

My right eye is closed and leaking liquids, and I'm here struggling to read and respond. I think taht should help qulify me as one of the more dedicated devs on XDA. Several devs don't even respond to posts or emails. (BTW, not bother to correct every spelling or grammatical mistake this post.)

Haven't gotten to my email since Friday, but I'll try tonight.

I've also been doing my best to support my original customers of Spirit1 who bought over 3 years ago now. (The ancient times, when 2.3 GingerBread was shiny and new, and before litterally hundreds of changes (for each device!_ were made on ROMs that I had to accomodate/ That helps explain why Spirit1 code became such a mess; and it still supports Android 2.1 Eclair, LOL)

That and sticking with a very dffiucult, unglamours, mostly unwanted among devs, and not particularly lucrative niche for this long, and with a 2nd gen app even.

And I try to keep smiling... :)
 
Last edited:
  • Like
Reactions: nicesoni_ash

Trinition

Senior Member
Dec 16, 2010
215
27
Cincinnati, OH
HTC One CM11 Bluetooth Disconnects then Reconnects

Reporting problems:
If you're a customer and you post, let me know if I don't know you. I may be more likely to help and flash your ROM to test or whatever. These things take time and time is short.


New customer, here!

I'm running relatively recent CM11 nightlies on my HTC One. My goal is to get the FM tuner in the device to tune my radio stations during my commute, but to be played over Bluetooth to my 2012 Honda Civic's iMid so that other Bluetooth audio can play as well (e.g. Waze notifications, TTS SMS notifications, etc.).

I've bought and installed .Spirit2. I followed the HTC One AOSP instructions in the first page of posts. After I rebooted, I turned on Bluetooth and connected to the car, and then launched .Spirit2. I heard static from the default frequency for a few seconds, then I saw Bluetooth drop from the car and my Bluetooth status bar notification disappear. A few seconds later, it was back on -- but the .Spirit2 audio was no longer coming through.

I think I repeated this one more time before I had to call it a night. I'll try more tomorrow. In the mean time, I've searched this thread and didn't find anything, so I wanted to put this information out there to see if this is a known issue.
 

sergts

New member
Jun 4, 2014
1
0
Smartphone Jiayu G4S program runs but no sound. Button in the middle is not active, you can only scroll bar on the right.
 

tanoxxx

Senior Member
Feb 10, 2010
1,731
427
Florence
My right eye is closed and leaking liquids, and I'm here struggling to read and respond. I think taht should help qulify me as one of the more dedicated devs on XDA. Several devs don't even respond to posts or emails. (BTW, not bother to correct every spelling or grammatical mistake this post.)

Haven't gotten to my email since Friday, but I'll try tonight.

I've also been doing my best to support my original customers of Spirit1 who bought over 3 years ago now. (The ancient times, when 2.3 GingerBread was shiny and new, and before litterally hundreds of changes (for each device!_ were made on ROMs that I had to accomodate/ That helps explain why Spirit1 code became such a mess; and it still supports Android 2.1 Eclair, LOL)

That and sticking with a very dffiucult, unglamours, mostly unwanted among devs, and not particularly lucrative niche for this long, and with a 2nd gen app even.

And I try to keep smiling... :)

LG G2 ?

Are you saying it works OK on SlimKat, audio and all ?

If so I'm happy to hear it.

My new app AudioTricks / VolumeTricks isn't a proper fix of course, but should be a usable workaround for volume control issues: http://forum.xda-developers.com/showthread.php?t=2756320

See post #2 in that thread for the free download link and instructions. The 1 version older release here will be easier to use for volume reduction (or see end of thread there for /data/data/fm.a2d.av/files/primary_gain_inv hack), which I presume is what you need: http://d-h.st/gL3

Lack of volume control with Spirit2 (or Spirit1 in digital audio mode) is so far very unusual; yours may be the first report. That's because with digital audio, Android itself handles volume control, and Spirit2 doesn;t have to do anything special.

If you are listening via speaker then I can see a problem on (I think rare) ROMs that use HALs that will only adjust headset volume when headset is plugged in. As you see a workaround is to leave the jack plugged enough for antenna effect, but not enough for switch to wired headset audio.

Were you using the speaker setting option ? It is still known not to work on some devices/ROMs.

First of all again best wishes for a speedy recovery, im really very sad for your problem :(:(
I apologize if I may be misunderstood, i dont wanna refund, because your app is very great and usefull, ok maybe a little expensive, but you and all others dev. deserve it, because is thanks to you if we have always our mobile better :good::good::highfive::highfive:

I ask again at dev of Mahdi-Rom if him can do something for fix the problem with your app, i hope him can do it, i reall miss Radio Fm on my G2 :(

Spirit2 work, but no sound :(
I think I understand that in the rom missing audio driver or something like that :confused:
but really there isnt nothing to do for fix or workaround this issue by myself? with some app or i dont know others? obviously i believe i need your help, if you can, im not dev. and i dont know how i can to do :(

I hope you can understand me, and you can help me, when you can and if you can :fingers-crossed::fingers-crossed::fingers-crossed::fingers-crossed:

Still sorry for the misunderstanding and for my bad english.
 

mikereidis

Inactive Recognized Developer
Jan 28, 2011
7,823
4,143
Ottawa/Gatineau, Canada
I return to hospital tomorrow. Hopefully I will get a better idea when (or if ever ?) I'll be able to read for more than a minute or 2 at a time.

OT.

Thanks for best wishes. Sad to report Doctor said: "Bad infection. This is serious. Fix or lose your eye". :( And: "Stronger antibiotic drops every hour, cream overnight, MUST return tomorrow to check."

And to top it off, 10 yo son gets emergency transferred from one hospital he's in a program at to another and we find he has juvenile diabetes; He was in emergency just a few weeks ago for food allergy anaphylactic shock (Took 3 Epipens.)

When I was young, you went to a hospital and the staff took care of you. These days it seems they want a parent or other close person there 24 hours... I'm guessing that came about after some round of budget cuts.

Gotta LOL at life or ya end up cryin... :)
 

mikereidis

Inactive Recognized Developer
Jan 28, 2011
7,823
4,143
Ottawa/Gatineau, Canada
New customer, here!

I'm running relatively recent CM11 nightlies on my HTC One. My goal is to get the FM tuner in the device to tune my radio stations during my commute, but to be played over Bluetooth to my 2012 Honda Civic's iMid so that other Bluetooth audio can play as well (e.g. Waze notifications, TTS SMS notifications, etc.).

I've bought and installed .Spirit2. I followed the HTC One AOSP instructions in the first page of posts. After I rebooted, I turned on Bluetooth and connected to the car, and then launched .Spirit2. I heard static from the default frequency for a few seconds, then I saw Bluetooth drop from the car and my Bluetooth status bar notification disappear. A few seconds later, it was back on -- but the .Spirit2 audio was no longer coming through.

I think I repeated this one more time before I had to call it a night. I'll try more tomorrow. In the mean time, I've searched this thread and didn't find anything, so I wanted to put this information out there to see if this is a known issue.

My HTC One runs latest (within 3-4 days usually) CM11 nightlies most of the time and FM over BT always works fine for me. No particular special instructions needed, it just works.

After a ROM update though, you must run Spirit once and then reboot, for FM with BT on (paired and connected or not). To avoid this reboot dance after ROM update, I've been testing a "99-spirit.sh" backup/restore script that can go into /system/addon.d/ after remounting /system/ as read-write. I've put it at the end of this post.


Step #1 should be trying to get Spirit working OK with BT on, with no BT headset etc. connected. IE does it work OK with BT on, with audio going to speaker or wired headset ?

Specific devices, like car BT interfaces, could have their own quirks. I've only tested with 1 Sony MW-1 BT/A2DP headset.

Sometimes when I've had trouble I start Spirit, make sure non-BT audio works OK. THEN I connect and or power on the BT device, while it's playing. Generally it would transfer reasonably cleanly from non-BT to BT.

Email me if you don't also have Spirit1. It's good to try Spirit1 in digital audio mode (Menu-> Settings-> Audio-> Method = Digital Auto) if problems w/ Spirit2.



Experimental /system/addon.d/99-spirit.sh backup/restore script:

Code:
#!/sbin/sh
#
# /system/addon.d/99-spirit.sh (root:root 755)
# During an upgrade, this script backs up Spirit-related files,
# /system is formatted and reinstalled, then the files are restored.
#

. /tmp/backuptool.functions

NORM_SO=lib/libbt-hci.so
ORIG_SO=lib/libbt-hcio.so


case "$1" in
  backup)
    backup_file $S/"$NORM_SO"
  ;;
  restore)
    [ -f "$C/$S/$NORM_SO" ] && mv $S/"$NORM_SO" $S/"$ORIG_SO"
    [ -f "$C/$S/$NORM_SO" ] && restore_file $S/"$NORM_SO" ""
  ;;
  pre-backup)
    # Stub
  ;;
  post-backup)
    # Stub
  ;;
  pre-restore)
    # Stub
  ;;
  post-restore)
    # Stub
  ;;
esac
 

mikereidis

Inactive Recognized Developer
Jan 28, 2011
7,823
4,143
Ottawa/Gatineau, Canada
I ask again at dev of Mahdi-Rom if him can do something for fix the problem with your app, i hope him can do it, i reall miss Radio Fm on my G2 :(

Spirit2 work, but no sound :(
I think I understand that in the rom missing audio driver or something like that :confused:
but really there isnt nothing to do for fix or workaround this issue by myself? with some app or i dont know others? obviously i believe i need your help, if you can, im not dev. and i dont know how i can to do :(

I hope you can understand me, and you can help me, when you can and if you can :fingers-crossed::fingers-crossed::fingers-crossed::fingers-crossed:

:)

I think that Mahdi ROM recently changed from using CM kernel to a Qualcomm optimized "CAF" (Code Aurora Forum) kernel.

AFAICT, this CM/former Mahdi kernel is the only non-stock kernel that supports the LG G2 specific "FM Radio" ALSA control.

ALSA is the modern Linux/Android kernel driver API. The stock ALSA driver for G2 has over 550 controls (!)

These controls always include several for "INTERNAL_FM". But these are only for Qualcomm FM/BT/WiFi combo chips. LG G2 and HTC One M7 are similar in that they both use Qualcomm SOC and Qualcomm audio, but they went with Broadcom BM43xx FM/combo chips instead of Qualcomm.

HTC was "smart" and didn't add any custom controls. Spirit only has to set this one ALSA control that all Qualcomm chips of this generation support: "MultiMedia1 Mixer PRI_TX".

LG decided to add their own "FM Radio" custom ALSA control. So Spirit has to set that, as well as "MultiMedia1 Mixer TERT_MI2S_TX".

What I think has happened is that none of the G2 ROM or kernel devs care about or are aware of the FM customization to the ALSA driver. They are using the standard generic or optimized drivers without the FM control, and few or no people are complaining or requesting FM.

I also noted that ROMs with these kernels do not have a "snd_soc_msm_xxxxxx" file in /system/etc/, so the change needed may not be small and that's why I think devs may not be happy to accommodate FM.

There should be a kernel config file in the kernel source here: https://github.com/Mahdi-Rom/androi...1c0474dd55bad304d365439e95da/arch/arm/configs Some changes to the relevant xxx_defconfig file might be all that's needed, or at least a starting point. Qualcomm code also often supports FM_ENABLED or similar #define's that might need to be set somewhere.

If you or someone can find a G2 dev that's interested in helping resolve this, then we are halfway there.
 
  • Like
Reactions: tanoxxx

Trinition

Senior Member
Dec 16, 2010
215
27
Cincinnati, OH
Spirit2 Turns Bluetooth Off

After a ROM update though, you must run Spirit once and then reboot, for FM with BT on (paired and connected or not). To avoid this reboot dance after ROM update, I've been testing a "99-spirit.sh" backup/restore script that can go into /system/addon.d/ after remounting /system/ as read-write. I've put it at the end of this post.

I'm not familiar with how do add such scripts, but I can look into it.

Step #1 should be trying to get Spirit working OK with BT on, with no BT headset etc. connected. IE does it work OK with BT on, with audio going to speaker or wired headset ?

Well, yes and no. When I have Bluetooth on but not connected, the audio comes out through the speaker just fine. But... Bluetooth gets turned off. I don't know why, but it does. And when I attempt to turn it back on, it doesn't work. I can go into Bluetooth Settings and toggle the swtich from OFF to ON and it just snaps back to OFF. It won't turn on anymore... until I reboot.

Email me if you don't also have Spirit1. It's good to try Spirit1 in digital audio mode (Menu-> Settings-> Audio-> Method = Digital Auto) if problems w/ Spirit2.

I don't have it. I'll e-mail you shortly.
 

mikereidis

Inactive Recognized Developer
Jan 28, 2011
7,823
4,143
Ottawa/Gatineau, Canada
I'm not familiar with how do add such scripts, but I can look into it.


Well, yes and no. When I have Bluetooth on but not connected, the audio comes out through the speaker just fine. But... Bluetooth gets turned off. I don't know why, but it does. And when I attempt to turn it back on, it doesn't work. I can go into Bluetooth Settings and toggle the swtich from OFF to ON and it just snaps back to OFF. It won't turn on anymore... until I reboot.

I don't have it. I'll e-mail you shortly.

I have test releases of Spirit1 and 2 that automatically install the ROM update backup/restore script.

I don't want to recommend you lose all your config and data, but a Wipe sometimes cleans things like this up. BT is often fragile; I've seen that on several ROMs.

But the way Spirit accesses the FM/BT chip when BT is off can lead to problems. It's always bad to switch BT on or off when Spirit is running on a Broadcom chip device. BT 4.0 Low Energy stuff might mess things up; sometimes BT looks like it's off, but under the covers it's actually on to some extent.

Beyond that, I rarely use my phones as phones that I carry around, and use apps, calls, etc. throughout the day. So I don't see all the problems that real phone users may see. Sometimes I DO find a common problem, and wonder why nobody ever reported it (instead of just swearing at it and restarting, LOL.)

And sometimes a fresh flash might show me a problem I wouldn't see otherwise.

If you can back up your ROM, all settings and data, you could try a fresh install and wipe to see. Or checkout a new ROM, like the 4.4.3 GPE I just loaded on my M7. See next post.
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 64
    Spirit2 is the successor to Spirit1 Unlocked and is the "Best Darn FM app"* in existence ! :)

    I'm closing this thread again in favor of the general Spirit1/Spirit2 thread: http://forum.xda-developers.com/showthread.php?t=1059296&page=868#post57106533

    It's too confusing trying to figure out where to post what.

    I will update first 10 posts of this thread as documentation when I can.

    Spirit2 Beta releases on Play for customers, updated sign up info: http://forum.xda-developers.com/showpost.php?p=57079402&postcount=795

    Android ONE = Google FM Radio ?? !! http://forum.xda-developers.com/showpost.php?p=53677209&postcount=781

    Spirit2:
    Hi Mike, I am still enjoying Spirit 1, is there any reason to pay again for Spirit 2? : http://forum.xda-developers.com/showpost.php?p=52304934&postcount=647

    HTC One M8 Verizon ! :) http://forum.xda-developers.com/showthread.php?p=51904184

    Spirit2 is a real, tuned, over-the-air FM radio app for Android. It does not require Internet access.

    Requires AOSP !: If you don't know what AOSP means, Spirit2 is not for you. Spirit1 Unlocked works on numerous stock phones: http://forum.xda-developers.com/showthread.php?t=1059296

    *"Best darn FM app": Yes, it has some bugs, and some device support issues, and may lack some of the "polish" of many stock FM apps, but it's the most functional and even the current RC1 has more settings than stock apps.

    The ONLY FM app supporting ALL this: Equalizer, Effects, Recording, BT A2DP and Visualizer.

    Spirit2 also supports multiple "remote" displays and controls: Home and lock-screen widget, lock-screen, notification shade, BT AVRCP and future Android remotes. AVRCP puts RDS and station info on the display of compatible BT headsets, and controls Pause/Play and preset selection. Was pretty cool the first time I saw that working. ;)


    Install Spirit2 RC2, March 26 Google Play: https://play.google.com/store/apps/details?id=fm.a2d.s2

    Spirit2 Beta group. Latest releases for Play customers: https://play.google.com/apps/testing/fm.a2d.s2


    March 25 New Info:


    "Upgrades" from Spirit1:


    If you've been happily using Spirit1 Unlocked for at least 3-6 months, please consider Spirit2 as a second purchase, for a next generation FM app. Help me give Spirit2 the 3+ year lifespan that Spirit1 has had so far. My income is still at the lowest end of "tolerable". Support me and I can support you.

    The price is a bit higher than Spirit1 Unlocked. It will be dropped a bit on the 1st day of each month.

    At Release Candidate #1 all known major bugs have been addressed. Please understand: software always has bugs, new ROMs can require new code and improvements are ongoing.

    Thanks ! :)
    Mike.
    13
    Spirit2 "Official Support"*: ONLY these phones running "Compatible AOSP"** ROMs:

    • Samsung GS3 GT-I9300
    • Samsung GS2 GT-I9100
    • Samsung GS1 GT-I9000
    • Samsung Note2 GT-N7100
    • Samsung Note1 GT-N7000
    • HTC One (GPE requires BT off)
    • HTC OneXL LTE, OneS, Evo 4G LTE (2013 CM11 only. 2014 kernels broke FM)
    • LG G2 D802 International and Sprint LS980 only. (Some stock, CM11 and Mahdi ROMs only as of March, 2014)
    • Motorola Moto G
    *"Official Support" means I own the phone and I can properly support it.


    **"Compatible AOSP" ROMs includes as many AOSP ROMs as I can reasonably support, that have the FM and audio kernel drivers needed to enable FM. CM11 is the most popular and best supported, except for the incompatible 2014 kernels for HTC OneXL LTE, OneS, and Evo 4G LTE. LG G2 is only supportable on CM11 and Mahdi ROMs as of March, 2014.


    Unofficial Support:

    The only other devices with a chance of working fully are those with Qualcomm WCN3660 or newer compatible FM/BT/WiFi chips as well as Qualcomm WDC9310 or newer compatible audio chips. This includes most late 2012+ Sony devices starting with Xperia T. These may or may not work well, and are not officially supported. With sufficient demand I will consider buying a "Z" device and officially supporting some Sony's.


    Stock ROMs:

    Spirit2 also works reasonably well on many stock or stock derived ROMs when rooted. But there are often problems, such as FM over BT issues on Samsung stock ROMs. Most of my customers are on AOSP/CM ROMs.

    Stock FM apps are available on stock ROMs, and few stock ROM users support Spirit financially, so I focus on AOSP. The Death of access to stock, unrooted OEM proprietary FM APIs has sharpened that focus: http://forum.xda-developers.com/showthread.php?p=50954346


    Support for New Devices:

    Support for new devices will be considered IF all of these are true:

    • FM is possible. GS4, Note3 (except Sprint) and GS5 are not possible for anyone to ever support. See GS5: http://forum.xda-developers.com/showpost.php?p=50600906&postcount=7541
    • Digital FM Audio is possible, the Spirit way. Most higher end 2013+ phones are capable, as well as some lower end, such as Moto G.
    • Popular among AOSP ROM users. Galaxy S and 5 inch Note class flagships are the vast majority of Spirit2 and current Spirit1 Unlocked sales.
    • Higher end ; Inexpensive phones are great, but most apps are sold on high end devices.
    • I need to be convinced that the costs of purchasing this phone, PLUS the much greater costs of supporting it will result in at least a liveable wage. Just learning how to and flashing various ROMs can add up to hundreds of hours. Add fixing soft-bricks, learning the HW & SW, investigating, reverse-engineering, coding, and doing ongoing updates, fixes, workarounds and support and you get a glimpse of why Spirit2 support is limited to a handful of the most popular devices.
    • Ideally, the non-International North American variants support FM, at least in hardware. LG G2 and all Samsungs are a great disappointment here.

    Every day I get MANY Spirit1 Unlocked debug logs in my email from pirates. Most of them come from less expensive devices, especially Mediatek devices from Huawei, ZTE, and much lesser known companies.

    I have little interest in supporting phones that might earn me $100 if I got lucky, and would drown my email with even more pirate debug logs.
    10
    Usage:

    Power control:

    • Status: Center of shiny frequency dial power icon is blue if on or grey if off.
    • Toggle: Tap center of shiny frequency dial where blue (if on) or grey (if off) power icon is.
    • On: Tap Play button at lower right or in widget.
    • Off: Tap square Stop button at lower left, in widget or in notification shade.
    • Auto on: Start app to automatically turn on FM.
    • Auto off: Start another music app and FM will automatically turn off.
    Tuning:

    • Dial: Big shiny frequency dial displays and can be used to set frequency.
    • Blue Digital: Tap numbers to manually enter frequency.
    • Seek: Previous and Next buttons to left and right of Blue Digital display seek down or up to next strong station. Same for widget, notification shade, lock-screen and other remote controls, but ONLY when there are less than 2 presets programmed.
    • -/+: Left and right buttons below seek buttons tune down or up to next valid channel, depending on Band setting.
    • Presets: There are 16 presets at bottom. Press or long press a "+" to set or reset the current frequency as a preset. RDS names are now supported.
    • Preset -/+: When 2 or more presets are programmed, they can be navigated with the Previous and Next buttons for the widget, notification shade, lock-screen and other remote controls. With 0-1 presets, these are seek controls.
    Mute/Unmute:

    • Status: Pause/Play button at lower right, in widget or in notification shade shows expected result of tapping it. Eg shows Pause if currently playing.
    • Toggle: Tap Pause/Play button to pause or play audio.
    Volume:

    • Status/Change: Tap speaker button at top right or use hardware or headset media buttons to display and change Music stream volume.
    Record:

    • Status: Red button at top left is brighter when recording.
    • Toggle: Tap red button to change recording state. Files at /sdcard/Music/fm.
    Equalizer:

    • AOSP compatible equalizers, such as CM DSP Manager, can be accessed in ROM Audio settings, or with the Spirit2 on app "Menu" key (not the old style phone Menu keys). This key has 3 horizontal lines and is at low center between Stop and Pause/Play.
    Settings:

    • Some settings are accessible by swiping from right to left to access a window to the right of the main window.
    • UI Visual: To replace the frequency dial with a waveform and spectrum analysis visualizer.
    • Band: Use "USA" in North America or "EU+" everywhere else.
    • Tuner Stereo: Stereo 2 channel when checked or Mono when unchecked.
    • Tuner AF: Alternate Frequency switching enabled when checked.
    • Audio Stereo: Distinct from Tuner Stereo and can lower CPU load and recording size.
    • Audio Speaker: Experimental Speaker mode works on some phones but may have volume control issues.


    Notes:

    • Other settings: none at this time.
    • Debug log sending is experimental.
    • Remote display and controls: for lock-screen, notification shade, widget, wired headset media buttons and remote controls and info display via BT AVRCP.
    • Speaker output experimental. Workaround: remove wired headset plug enough to switch to speaker, but still inserted enough for a good antenna connection.
    6
    About "Digital Audio":

    History:

    Before 2013, most FM radio audio on Android phones was "mostly analog"*. FM audio bypassed the digital audio chain and was injected in the final stages, after the final D->A conversions.

    FM audio was a special path that did not follow the same rules as every other source of audio on Android. Hundreds if times I've heard "... but it works fine with music players etc." and I explained how FM is different. Fm audio usually can not be equalized or modified with effects. It usually can not be recorded, visualized, or routed to BT headsets.


    AOSP Difficulties:

    Besides lacking these digital audio features, "non-digital"** FM audio is difficult to do on AOSP ROMs. AOSP usually does not use the stock audio libraries that contain support for FM. This has been a never ending source of grief and work for me; I spend at least 50% of my development time on audio issues as a result.

    Basically, Spirit will use SU/root low level functions to set up the audio hardware for FM, via kernel device driver commands for ALSA or earlier APIs. But the ROM audio library has no idea that FM is running. This can often result in conflicts that break audio, especially during audio notifications. On some popular older devices, such as HTC Desire HD, I had to create a hack that resets the entire audio system when FM is turned off. And users just have to live with the fact that audio notifications break audio, at least until FM is turned off or the device is rebooted.

    There were many other problems, including a need to continuously loop a silent audio file, to convince the audio libraries that music was playing. Otherwise, volume control was lost, among other things.

    This was rarely a problem on CM7 ROMs that included a CM FM app, because the audio libraries supported FM. But most CM9 ICS and later ROMs dropped support for FM. I considered making code contributions to CM and other ROMs to fix this problem the proper way, in the audio libraries. But I concluded this would take all of my time, may create personal conflicts and might never cover the majority of ROMs anyway.


    *"Mostly" analog: Surprisingly, just about every FM chip does internal signal processing digitally, after the initial A->D conversions, Frustratingly, virtually every 2012- phone did not use digital outputs, where they existed, but converted the Digital left and right audio back to analog.

    "Non-digital"**: I do not use this term to strictly mean "Analog". I use it to mean a method to enable FM audio that stock OEM FM apps use, and that Spirit1 uses, when not using one of the "Digital..." Audio-> Method settings. At the chip level, the audio may be digital, as is the case when using Qualcomm FM/combo chips with Qualcomm WCD9310 or compatible audio chips.


    Spirit's Digital Audio Solution:

    A digital solution to most of these problems was envisioned in late 2012, and resulted in the 1st prototype alpha releases of Spirit2 in early 2013. Spirit2 was digital only and this proved to be a much easier way to do FM audio, with few problems. When it became clear how much more work was needed to complete Spirit2, and given that Spirit1 continued to sell well enough to live, digital audio was "back ported" to Spirit1.

    Here's how it works: Instead of just sending a few commands to the audio drivers, Digital audio mode sends different commands to enable digital, then continuously reads the ALSA PCM channel. All audio data read is then written to the Android Audiotrack API, the same as most streaming apps do. A streaming app reads from the network; but Spirit reads from the FM/audio chip.

    The main disadvantage of this digital audio method is higher CPU and battery consumption. OTOH, "non-digital" audio on most AOSP ROMs required a constantly looping silent audio file anyway, so the difference is minimized.

    Another digital disadvantage is that some devices can experience brief audio drop-outs. This does not affect Samsung devices. Full and partial workarounds include modifying CPU frequency or kernel scheduler. Tuning and investigative work is ongoing.

    There are also challenges for speaker mode. The current support is experimental and does not work on all devices. But the current code is much cleaner and much more robust than Spirit1 non-digital audio, which can have issues during phone call interruptions. Volume control can also be unusual over speaker. The reason for these problems is that Android is designed to switch to speaker only when the wired headset is unplugged. But FM is unique: the wired headset is used for the antenna. A workaround for motion-less devices: remove the wired headset plug just enough to switch to speaker, but not enough to lose the antenna affect.

    But the advantages of this form of digital audio are HUGE, IMO. They have allowed me to provide all the audio features people had been asking for: recording, equalization, effects, A2DP BT headset and visualizers.

    AND it allowed me to minimize the MANY FM specific audio problems with much smaller, better designed and better written code, with a minimum of special cases. The Spirit1 audio (and other) code is a huge mess and can never be re-written IMO.

    Audio dropouts on non-Samsung devices made me consider non-digital audio methods in Spirit2, despite the work and complications that would create. But a variety of fixes and re-tuning has improved audio, workarounds have been identified and work is ongoing.

    The advantages of digital only are too great IMO to "pollute" Spirit2 code with non-digital audio. I've even removed previous non-official support for stock Sony devices in order to concentrate on digital audio that is as flawless as possible.


    Drop-out Workarounds:

    Samsung devices only rarely have audio drop-outs. I've only seen this on the oldest, now "vintage" original Galaxy S GT-I9000, and only when recording, at the same time that the equalizer, effects and the visualizer are all running. The old single core CPU gets close enough to it's processing limit that very occasional ticks may be heard, but the recording is usually fine.

    LG G2 and Moto G are working pretty well now. The worst affected are the HTC One and the HTC OneXL/S/Evo 4G LTE, or other Qualcomm FM+audio devices. Further tuning and investigation is ongoing, but these things can minimize the problem:

    • Don't record.
    • Turn screen off.
    • Disable visualizers or any other app or service that might be using CPU resources.
    • Disable equalizer or other audio effects. Bass-boost and EQ alone don't seem too bad.
    • Raise CPU minimum and/or maximum frequency (Only if you understand the risks of CPU burnout.)
    • Change CPU scheduler: Performance risks CPU failure; Interactive or Pegasusq may be better.
    6
    Troubleshooting:

    Does not start:

    • SU/root missing is the most common problem. Ensure Spirit has permission enabled in the SuperUser or SuperSU app, or with the ROM Super* settings.
    • Omni & many other ROMs require manually flashing SuperSU. After flashing, run SuperSU and respond Yes when prompted to allow SU reflash after ROM updates.
    • If your device is not officially supported, it will likely not work. Except for devices with both recent Qualcomm FM and Qualcomm audio, phone architectures for FM are very different from each other.
    Stops playing or hangs:

    • Workaround: Force stop or reboot. Fixes are ongoing.
    Audio Stops at Homescreen:

    • Disable Google Now Launcher: Homescreen Long Press-> Settings-> Voice-> "OK Google" hotword detection-> Off.
    Audio Dropouts:

    Odd frequencies only:

    • Set Band to "EU+" after swiping from right to left to reveal right side settings. Default is "EU+" unless ROM identifies location as North America.
    Where are recordings ?:

    • See /sdcard/Music/fm for WAV files named with parseable start time. Compression to MP3 files will be considered in future. Maximum of 4 GB results in 5-10 hour maximum time, depending on sample rate (22-48 K depending on phone).
    Speaker does not work:

    • Experimental at present. Workaround: remove wired headset plug enough to switch to speaker, but still inserted enough for a good antenna connection.
    Speaker volume control broken:

    • Experimental at present. Turn Screen off or use on app volume.
    Phone call problems:

    • Avoid speaker mode
    • Avoid removing or inserting wired headset while FM or phone call is active.
    Other: