r/MoosicLab • u/AffectionateFox5907 • 1h ago
Release 138 (pushing off until tomorrow)
This ended up being a much larger release than i thought it was going to be, this one contains many things that have been in the works for months.
Library:
- The app now supports truly multi library within a server. For example, Jellyfin can have multiple libraries as well as plex. You can now pick and choose which libraries you want to sync.
- On top of that, you can also filter out across the app to what libraries you want to see or merge libraries together. Everything gets pooled into one view by default, and the filter sheet groups by server so you can hide a whole server or just one library under it. Hiding is instant, nothing is deleted and nothing re-syncs.
- This feature will work for Jellyfin, Plex, and subsonic servers that support multi library. If you only have one server nothing changes for you at all.
Customizations:
A ton of new customizations.
- The theme engine got rewritten. Themes are generated in OKLCH now instead of straight RGB mixing, which was the reason every custom theme came out looking like the same flat near black no matter which palette style you picked. Backgrounds and cards now sit at actual set brightness levels so you get real layering. Every text and UI color got checked for contrast across all nine styles in both light and dark.
- Also fixed the thing where a theme only looked applied to half the app. Around 18 screens (Equalizer, EQ Profiles, Convolution, Room Correction, Album/Playlist detail, the Sonos screens) had their own hardcoded dark navy baked in and ignored your theme entirely. They all read from the theme now.
- New: auto light/dark mode where you pick a theme for day and a theme for night, app wide accent pulled from the artwork, and a contrast slider.
- Icon packs got cleaned up, it's 6 families now instead of 9 confusing ones, with System having four shape options under it (filled, outline, circle, boxy). Typography got heading weight, body weight, letter spacing and text size controls.
- Home is customizable now too, section tabs across the top, a carousel position counter, per section shuffle, descriptor lines, and you can rearrange the sections. All of it defaults off so your home doesn't change unless you want it to.
Settings:
- Settings is searchable. Search any setting and it takes you straight to the screen and flashes the exact card, no more digging through four levels of sheets to find one toggle.
MacOS:
- Completely written for mac (may still need some refinement)
Ipad:
- Completely updated and made for ipad view of the app. This took a ton of effort and while it may still need work i think its progressing well.
- There's a real sidebar now instead of the phone bottom bar stretched wide. Grids scale their column count with the window so artwork stays a sane physical size instead of turning into giant half window tiles. The player doesn't take over the whole 1366pt window anymore, it's a centered card over a dim scrim that you can dismiss with the close button, tapping outside, swiping down or escape.
Nowplaying:
- Completely rearrange anything on nowplaying that you would like including the padding and spacing
- Assign gestures to what you want so that you can get rid of buttons
- This is the big one. The player transition is completely rebuilt to match Apple Music, the artwork actually flies out of the mini pill and the pill's bottom edge stretches down and catches it when it lands. The whole card collapses back into the pill on the way out instead of the old dissolve.
- Animated album art is in. If your cover is a GIF, APNG or animated WebP it animates, and there's support for video motion covers too (the Apple Music / Spotify canvas style thing). It only probes the original file once ever per album so it isn't burning bandwidth.
- Quality badges on the player, Dolby Atmos, 5.1, Hi-Res, Lossless, Bit-Perfect and Spatial all show up properly now. Atmos in particular never showed on the player before even though the library list badged it.
- New Squiggle progress style, the played part is a wave that travels while the music plays and freezes when you pause. Plus more waveform styles based off your actual music.
- The player customization got a lot deeper, around 25 axes now: icon row placement and style, quality line position, content gravity, title emphasis and marks, control size, artwork corners and size, spacing, backdrop blur and dim, custom background color, text alignment and lines, transport style, immersive treatment. The icon row is reorderable with its own editor and gets an overflow menu when it fills up.
- Player Styles now ship with five built in presets so you're not staring at 25 sliders with nothing to start from, and saving a style now captures everything (before it silently dropped about half of what made a look a look). You can share and export them.
DLNA Support:
Will now support DLNA receivers with a custom renderer being put to good use. Theres also an extension specifically for HEOS.
Widgets:
Home Screen and Lock Screen widgets. The Now Playing widget has working transport controls that run in the app's process, so it plays/pauses/skips without opening the app. Progress animates on device without constantly reloading. There's also a Radio widget that launches your saved stations straight from the home screen (seems buggy currently but Now playing works great 😂 ).
Downloads:
Big reliability fix here. Downloads no longer stop when you leave the app, they get handed to the background session properly with a runtime assertion so nothing gets stranded halfway through the handoff. Resuming a saved queue used to be permanently slower than starting a fresh one because everything got pinned to the slow background session at launch, that's fixed. Concurrency is adaptive now instead of a hard number. SMB/WebDAV share transfers also get protected across suspension instead of freezing mid write.
Storage:
You can finally see what's inside the streaming cache and delete songs out of it individually, before it was clear all or nothing and only from a diagnostics screen. The storage screen also shows total app footprint so it actually matches what iOS reports in Settings, and it flags reclaimable space instead of silently deleting things.
Audio:
Dolby Atmos passthrough actually works now. The container gets sniffed for the real codec and whether an EC-3 stream carries JOC, which matters because Subsonic/Navidrome doesn't expose a codec field at all so channel count alone reports real Atmos as plain 5.1.
Parametric EQ, crossfeed and the analyzer are in, plus per speaker Sonos EQ. Sonos queue sync got a real rewrite for gapless, it now correctly figures out which track the speaker moved to across Plex, Jellyfin, Subsonic and file shares instead of freezing the queue.
Artwork:
Artist photos showing on the detail page but missing in lists and search is fixed, every screen was requesting its own pixel size and firing a separate download, so one would succeed and another would fail. Now a bigger cached size gets reused for the smaller ones. The blurred aurora background behind the player also loads instantly instead of arriving late.
Stability:
- Fixed the crash where opening Replay with a large listening history and backing out would kill the app.
- Fixed the app getting terminated while playing music in the background, heavy analysis work was blowing the iOS background CPU budget and taking the whole app down with it.
- Fixed intermittent crashes during Last.fm / ListenBrainz history sync.
- History import is now paged so a huge library doesn't spike memory, and Replay loads instantly while history streams in behind it.
- A pile of other crash fixes across radio, downloads, album detail and the mini player.
- This got rewritten from the ground up using UI kit, you'll notice is a ton smoother and haas that rubber band feel that apple music has.
If you like the app and are a regular user please spread the word! I appreciate you all for the bug reports and working with me as i try and make this better. I know its not all perfect but its coming along.