Just a discussion of which settings have the most affect on battery life, and perhaps how to best optimize power savings. I’ve got (I believe) most of the power hungry settings turned off, but Symfonium still seems to go through a fair amount of battery while playing music on my device (will discuss the specifics of my device as well, as it may not even have much to do with Symfonium, necessarily).
The settings I’ve noticed to take a fair amount of battery, or are labeled as such…
- Automatic caching of music files (both manually set up rules, and set under the media provider settings): this one is fairly obvious, download potentially large files and saving them to the SD card is obviously going to use CPU and battery.
- Automatic caching of images (set under the media provider settings): this runs after a sync, and seems to trigger he Android OS media scanner after a sync, which uses CPU and battery.
- Internal decoder: seems to increase Symfonium’s CPU usage by 25-40% in my experience. I’m not sure there’s a huge difference between enabling the offload feature and not enabling the offload feature. The current decode settings I’m using are offload enabled, high res disabled (my device still plays high-res content just fine).
- Fetch additional metadata (under media provider settings): I have this enabled, as I like having artist bios and such. Doesn’t seem to add to the battery usage after the initial sync of your library. On the first sync, it will run for a while, downloading all the metadata, but after that when you’ve added content to your library it is very quick and doesn’t run very long at all after the sync is complete.
- Crossfades, EQ, DSP engine: these options are obviously going to take CPU processing, I don’t use them, nor do I have any interest in them… I have all this turned off.
- Now playing screen, analyze and display waveform as progress bar: going to take CPU cycles to display. I like the look of the waveform, I have this enabled. When now playing screen is displayed and the screen is on, each new track will take some CPU to calculate and display. This is not done while the screen is off, and shouldn’t have a massive impact while you’re actually listening to music.
- Remove empty artists and genres (database settings): I have this disabled, I don’t typically remove things from my library and keep things fairly organized… I can’t imagine this would do much for me even if it was enabled, but one would think that it would save some CPU cycles to non analyze the database in the first place. Not sure how much impact it would have on battery life anyway.
- Large pages? (database settings): I have this enabled, I like album art to load quickly while I scroll. It says that it uses more RAM, which sure go for it, loading more data into memory may use more CPU, but also loading smaller amounts of data into memory more often will also use CPU… probably not much impact on battery life.
- Usage statistics: probably uses a small amount of battery in order to generate whatever logs it does and send them off… useful to the developer tho.
Now, to my device. I use an iBasso DX180, which is a somewhat fancy pants “audiophile” media player designed for use with higher end headphones. It has a setting for “line out” or “headphones out.” When I’m listening to my headphones (HifiMan Arya) via the 4.4mm balanced jack with a balanced cable (roughly doubles the current they take over a single ended connection), I notice that the device gets pretty warm and battery goes somewhat quick (7-10% battery per album typically). I do think that at least a portion of this is due to the headphone amp hardware and the headphones themselves using more power, because when I’m in the car and have the device set to “line out” while connected to the aux jack in my car, it does not get nearly as warm and sips battery life. I do also have wifi turned off in the car and play entirely from offline cache, meaning that the heat and power usage could also be from the wifi implementation of this device. However, when listening to music Symfonium does use 50-90% CPU (nearly all of 1 of 8 cores… running on the high power cores of the BIG-little arch) as reported by top
(rooted device), Jellyfin, on the other hand uses about 5% when playing the same flac files… so my device specifics aside, that’s a massive difference.
So yeah, just wanted to start a discussion on what can be done to save some battery. If anyone has noticed any other settings than affect battery life, feel free to share.
I’ll also attach a debug log that was taken while playing an album with the settings I have set. It downloads the album into offline cache automatically, caches some images, and seems to do some library analysis… but I don’t see anything out of the ordinary or unexpected going on. I’m not sure what causes the significant CPU usage during playback tbh, but it does seem to do a lot more than just play the music.