Volumio on Android slow and laggy

I just bough the Volumio Android app.

From my PC, scrolling through ‘Browse > Albums’ or’ Browse > Music Library’ is quite snappy. On my OnePlus 3T Android smartphone, scrolling through the list of albums is slow and laggy to the point of it being unusable for large music collections.

Since scrolling is fine on my PC, this is likely unrelated to the Raspberry Pi3 but rather an issue with the Android app. Does the Android app perform this poorly for others as well? Is there anything we can do to improve it?

Did hou tried sound@home App?
Is also free :wink:

Hey digx. I would love to try it out. After launching the app it asked me (I assume though not 100% sure as the wording was unclear), whether Volumio is accessibly by LAN or by WiFi (probably should be asking whether it’s accessible by Ethernet or Wifi, as it’s all a LAN). I answered LAN. That appears to have screwed something up, as I can’t access Volumio at all anymore. Will probably have to reinstall the Volumio image this evening.

:frowning:

Volumio is running on a RPi3. WiFi was turned off. Onboard NIC received IP over DHCP. The DHCP server was configured to always lease out the same IP address to the RPi3.

Any idea what went wrong? I’d give it another try if you do.

Hi a5cent,
thanks for info.
Yes LAN word is commonly used also for Ethernet in Italy :slight_smile:.
Strange is not working.
what is latest screen and message you saw on the phone?
just try to reboot the Volumio and access with the app.

Otherwise try with long press on the room and configure it manually.

let me know :wink:

Maybe the problem is here:

The DHCP server was configured to always lease out the same IP address to the RPi3.

Since App doesn’t know about router config but only about volumio config.
So App changed ip to fixed IP. different from previous. so maybe now is conflicting with router config.

I hope is clear :slight_smile:

Hi a5cent,
I also fixed this possible issue user can have having setup Router as you did.
If you give me your Gmail address you use on your android phone I can insert you as beta tester and let you try this fix.

Please don’t hesitate to let me know if you want to try this fix and also feel free to write me at digx@hotmail.it

Have a nice evening!

Hello digx

I sent you an e-mail

Hi Sorry for the late reply .
What might be the cause is the big amount of albumarts. I would suggest that you wait a bit until they are fully downloaded (after that it will get much smoother). Another option is reducing the web albumart size. Please let me know how it goes

And indeed, sound@home is just an excellent app!

Hi Michelangelo,

I was thinking that maybe it would be a good idea if Volumio automatically could reduce the size of the albumart it shows. I noticed that currently it shows the actual files as present in the music library. As I had some covers that were several MB large the album view slowed down considerably, even in a browser. I have now resized the biggest offenders, which helped, but with thousands of albums this still is a bit of a problem. As an example, currently the web page size of my album view (as measured using save page in Firefox) 127 MB, and before I resized a lot of covers it was over 200 MB. Especially on a browser or the app on a cellphone this is a lot.
A solution might be that Volumio (on the server, not the mobile app) would resize all albumart that is larger than a certain size before saving it to its cache. For example, on my pc, with a full HD screen, in album view the covers shown are smaller than 300x300. If all covers in the cache were to be resized to jpgs with a maximum of 300x300 I think the size of my album view page would be a quarter of what it is currently. Maybe this could be an option in the My Music settings (“cached album art maximum size”). People that only use their cellphones to control Volumio can set it to an even smaller size, whereas people with HiDPI computer screens might want more than 300x300.
This way the performance of the album view will be greatly improved (and people would not need to go through all of their albums to find covers that are too big because Volumio has problems with them).

What do you think?

Hey @Michelangelo

I’ve had the app running for quite some time now. I’ve scrolled through the entire collection four or five times. At least visually it doesn’t look like anything is still being downloaded (which didn’t take long). Scrolling still stutters and lags.

I guess that leaves image size as the culprit. I have about 1000 album art images between 600x600 and 1024x1024 in resolution. I don’t understand why that should be a problem though. Larger images will delay initial loading of the view, sure, but after initial scaling, positioning and rendering, scrolling should theoretically be smooth, i.e. the list shouldn’t perform any differently no matter what size the original source imagery was.

The sum size of all album art is around 131MB. Android reports that the Volumio app consumes 158MB. I’m taking that as a sign that all album imagery is loaded into RAM. Scrolling performance is very poor despite that, which seems puzzling. Could it be that the app is repeatedly doing something that just isn’t necessary (repeatedly resizing imagery, freeing and reallocating memory, repeated inefficient traversals of a large data structure, or similar)?

Whatever the problem is, resizing album art isn’t an option for me, as other applications/displays require the higher resolution imagery.

Is the Android app also on Github so I could take a look?

So what are other people’s experience with this? I’m still wondering whether this app generally stutters and is laggy, or whether for some reason the performance problems are on my device only.

I can gladly make a video to demonstrate this if people wan’t to see what I’m talking about.

Just take a short look at the reviews in the Play Store…

@rolo

That would seem to be the easiest way, but the reviews are all over the place. That’s what’s confusing. I’m wondering if scrolling performance may actually be decent for some people, while being a complete joke and basically unusable for others (like me)? Michaelangelo suggested scrolling performance is only expected to be an issue while artwork is downloading (I assume that is why he mentioned file size) , so I’m giving him the benefit of the doubt and assuming he doesn’t know how bad this can be for some even after all artwork is downloaded.

Right now I feel scammed, as I paid for this app which has performance issues so severe it is unacceptable even as a free app. Since I can’t get my money back, I’d like to get this fixed. I’d gladly offer my time to help too.

I’ve given up on this. I consider the app unusable. The browser does a better job, so I’m back to that.

Hi, we observed performances issues especially when hi-res albumarts are shown in large lists.

Could you please share more info about your setup (the video will help as well) ?

We are currently working to optimize the Android app, (currently we use crosswalk as integrated browser, maybe you could suggest some alternatives for it), so I think\hope it will become more reactive in the near future.

As for the app cost, please remember that you’re getting Volumio for free, in which we put ton of time and money, the app is a way for us to get funds for the project. However, if you want a refund, there is no problem, please PM me about it

Hey Michelangelo

Sorry for not getting back to you earlier. I’ve been really busy the last few months so I put this on the back burner, also because I’ve somewhat given up on this app as I consider it unusable.

I’ve linked to the video below. Focus on how the movement of the touch point corresponds (or doesn’t correspond) to scrolling behavior. Scrolling looks quite choppy in this video, but it still looks quite a bit better than in person. When interacting with the device yourself it’s also far more directly noticeable how divorced scrolling movement is from finger movement.

https://1drv.ms/v/s!ApKI6Jh3a0dUjpcDawdyqEQVsnpfbg

Some additional information:

[] Volumio 2.310 is running on a RPi3
[
] All music and album art is stored locally (USB Stick) on the RPi3
[] This test was run using a reduced content set with only 1500 albums
[
] All album art was resized to a resolution of 300x300 (which, outside of initial load time, made no noticeable difference for me)
[] The video depicts performance as experienced on a high-end’ish Android device (OnePlus 3T)
[
] If I use the smartphone’s Chrome or Firefox browsers, and point it directly at Volumio on the RPi3, it’s just as stuttery/laggy. If I resize a web browser on the desktop, which gives me the same UI layout as on the smartphone, I see no lag or stuttering at all. That suggests this is browser independent and has nothing to do with crosswalk, yet is still somehow smartphone related.

Is this typical for everyone, or am only I seeing this?

Thanks for your detailed report.
The root of the problem here is that your mobile browser is struggling to render and move a huge list. How many albums do you have?

We’ve worked a lot on optimizing browser-side performances, unfortunately we cannot overcome the limitation of huge lists. To solve that we need to add pagination, which at this point is really difficult to do.
The lag you are experiencing are due exactly to this even when you change tab. If you notice, it happens when you go to browse tab. The browser takes 7 seconds to render the list, after it finishes it lets you go to playback tab.

There are a couple more optimizations we can make, I will keep you posted.

Hey Michelangelo

I own around 3000 albums. This test was performed with half of them.

I have no idea how the WebUI currently works, but based on your description of the problem, it doesn’t sound like your current solution needs more optimizing (I’m completely confident that you’ve already done a great job of that). It sounds to me like you need a different solution.

Since you have no control over the number of entries Volumio’s WebUI must display, we need a solution that can deal with arbitrarily long lists. If that’s not what your solution is designed to do, then optimizing it further won’t solve anything. It just swipes the problem under the rug. Even if you manage to optimize things to the point where it becomes acceptable for, say, me (with X entries), the very next day someone will come along who wants/needs to display more (X+1).

Pagination is one approach that actually solves the problem (as opposed to just deferring it), but I agree it’s not elegant. Have you considered DOM virtualization?

Since you are already using Sockets.io, and can know ahead of time exactly how long a list will be, it seems like you’ve already got the perfect setup for such an approach.

I’m sure you know what I’m talking about, but if not, search terms like “virtual repeat” or “virtual scroll” will lead you to more material on the topic. What’s your opinion on this?

Bump…

@Michealangelo, would really appreciate hearing your opinion on this.

Cheers

Sent from my ONEPLUS A3003 using Tapatalk

That’s a really interesting approach. Thanks for the tip!
We are using vanilla javascript for the list rendering, do you know if there some library for it that we can include?
Are you willing to help on that?