ciderapp / Cider-2

Primary public repository for Cider 2.x
https://cider.sh
135 stars 2 forks source link

Switching to Immersive mode freezes app on very large playlist #379

Closed mikelambrellis closed 5 months ago

mikelambrellis commented 10 months ago

Preflight Checklist

What operating system are you using?

Linux

Build Details

Built on 22/09/2023, 08:27:31 | Quasar v2.12.6 | Electron ceed39250d5f76c5bb7b5bc02978882ddd73c7b1

Operating System Version

Linux mikes-pop-os 6.4.6-76060406-generic #202307241739~1694621917~22.04~ac5e1a8 SMP PREEMPT_DYNAMIC Wed S x86_64 x86_64 x86_64 GNU/Linux

Describe the Bug

I select a very large playlist and hit shuffle so that it starts playing. When I select the Immersive mode (bottom right button), the window freezes (controls are unresponsive though the song keeps playing). After some time, the song stops and the windows goes solid white. Can only recover by quitting and restarting.

Summary: Immersive mode freezes the app on very large playlists (works fine with small playlists).

Steps to Reproduce

  1. I launch Cider. I select my "Heavy" playlist (https://music.apple.com/au/playlist/heavy/pl.f8380cb01d8244ecb42cc63e8af666a0). It's very large (less a playlist and more of a collection).
  2. I hit "Shuffle" and after a small pause it begins playing. All good so far.
  3. I hit the "Immersive" diagonal arrows 'button' in the bottom right corner. On smaller playlists, this works correctly, showing the artwork and player controls on the left and the list of queued songs on the right. However, with this playlist, the behaviour is as follows: Playing song keeps playing. The "Immersive" button is highlighted (grey background). However the rest of the display does not change. Though the song is still playing, the display is unresponsive. The song progress bar is not moving and the time left is not changing. Player controls (and all other controls) are unresponsive. After maybe 30s+ the entire window goes solid white and the song stops playing. My only options at this point are to force terminate, or to select Quit from the menu-bar applet (though the other controls on the applet - Play/Pause, Next, Previous - are unresponsive).

Anything else?

This is the playlist I am loading. It's a public Apple Music playlist. https://music.apple.com/au/playlist/heavy/pl.f8380cb01d8244ecb42cc63e8af666a0

Connect Device ID

No response

Build timestamp

No response

cryptofyre commented 10 months ago

Interesting issue, we'll investigate it.

mikelambrellis commented 8 months ago

Hi there. Any update on this? Is there a beta release I can test? The itch.io pages says last release was 99 days ago. No pressure but if you'd like me to try something, let me know.

theironraiden commented 8 months ago

I have a very similar problem, reported on this thread https://github.com/ciderapp/Cider-2/issues/303. If I play any playlist with a large number of files (or my library which has about 10000 songs) and access the queue (or switch to immersive mode, which defaults to queue view), the player freezes. This was reported more than 3 months ago. Try for yourself if opening the queue (not just switching to immersive mode) freezes the player.

mikelambrellis commented 8 months ago

Yes. Mine does that too. I've also found (because I use tiling) that when the app window is "portrait" (height>width), then the queue does not automatically display and immersive mode works. When the app window is "landscape" (width>height) then putting it in immersive mode seems to want to auto-display the queue and then I get the freeze. So it definitely is a problem with the queue for very large playlists, not the immersive mode.

mikelambrellis commented 7 months ago

Hi @cryptofyre - any news on this defect?

cryptofyre commented 7 months ago

Could you provide the playlist link and I'll take a look in the morning to see if the issue is present in v2.3.0, thanks!

cryptofyre commented 7 months ago

Scratch that, just scrolled up. I'll see if the problem still exists in the morning.

cryptofyre commented 7 months ago

Good god, 14 thousand songs. I can't even open this in a web browser, the iOS app, macOS app, or anything this is an accomplishment far beyond the scope of anything I've personally seen.

theironraiden commented 7 months ago

Good god, 14 thousand songs. I can't even open this in a web browser, the iOS app, macOS app, or anything this is an accomplishment far beyond the scope of anything I've personally seen.

A 10k+ songs library is pretty normal for anyone who actually likes music and has had time to curate a large list of albums and artists (In my case, I'm older than 40, so imagine all the stuff I have collected). This is Especially true if they like hard rock and metal, like this case, where you have a large pool of artists all the way from the 70s and 80s.

Anyway, I digress, I can open and play both my library and Mike's playlist without a hitch on Cider 1. Yeah, it takes a while to fully display all 14k songs, but you can play it, suffle it and see the queue without even a hint of performance drop (Much less crashing like cider2). My guess is it might have to do with Cider1 not actually SHOWING the WHOLE queue, but only the next 50 songs.

mikelambrellis commented 7 months ago

Bingo. I reckon ironraiden is correct about the cause. This gels with the behaviour.

mikelambrellis commented 7 months ago

And just pointing out that huge playlists are common to people that drive their daily listening mainly by "shuffle".

kirundist commented 5 months ago

I'm having a similar problem — when shuffling a large playlist, if I try to reorder the song queue or add a new song to the queue, it freezes the app for roughly 3 minutes. Unable to click any buttons or close/move/minimise the window; music continues to play for about a minute then cuts off until the app catches up. Currently having this issue on a playlist with just under 5000 tracks.

coredev-uk commented 5 months ago

This issue has been closed to consolidate the issue tracker for Cider 2.3.1 and later issues. If you believe this issue is still relevant, please open a new issue.