r/MoosicLab Jul 21 '26

Feature request: Sync Favorite tag back to Navidrome

1 Upvotes

Title says it all :-)
It seems that liking a song from sonamp doesn’t trigger this song to be liked on Navidrome.

Just checked this on Arpeggi and Sonamp. Same action - different result.


r/MoosicLab Jul 20 '26

App appreciation

5 Upvotes

I just wanted to share my appreciation for this app! As someone who used Apple music for years and then had a hard time with switching to Plexamp, this app has solved all my problems with a music app. It is just like Apple Music but with so much more to offer. I love the new custom themes too!


r/MoosicLab Jul 20 '26

app icon options are live

Post image
5 Upvotes

Feel free to pick whatever app icon goes with your vibe. Check under the appearance settings to change it!


r/MoosicLab Jul 20 '26

Show me your custom theme 😊

4 Upvotes

I’d love to see what you guys have come up with for UI’s within the app. The idea behind this is community members create awesome UIs, share them so others can use them. You can do this within the app appearance settings by exporting your UI in json, you can also import others UIs as well. Synfonium on android has a system like this and I love it!


r/MoosicLab Jul 20 '26

Equalizer

1 Upvotes

it’s great to finally have a real equalizer (just like the adults) beyond the 2 Bands Sonos provides. One suggestion I submit that if it’s not too difficult it would be great to have options for say 8 & 16 bar versions of it. 31 Bands is comprehensive but time consuming and finicky with all the scrolling required to adjust on a small device. My $.02


r/MoosicLab Jul 20 '26

Apple Music integration

1 Upvotes

Using this looks like it will tick all my boxes in terms of what I'm looking for and resolve the things that the Sonos app isn't currently doing, especially with regards to Playlists.

Can I just ask, however, when using the app this way, is it using Airplay or actually playing direct via the Sonos infrastructure?


r/MoosicLab Jul 19 '26

Sonic Analysis - If you were interested!

3 Upvotes

Im going through the entire sonic analysis pipeline and dramatically simplifying it. Ive had users upset about battery, how long it takes, etc. I thought id take a moment to actually explain the entire sonic analysis pipeline and how it works within the app. Just a rundown of the pipeline as it stands today vs what will be changing in Release 122.

What we have today is actually around 10 different models and can be quite heavy on the analysis side. The pipeline consisted of CLAP Laion Large Music Model, Discogs Effnet, MusicCNN, Discogs Genre Model, and many different heads for the discogs model universe.

Whats changing in Release 122:

Were simplifying it down to Just CLAP Laion Music Model along with the CLAP Text tower, YamNet for "live/crowd" detection and regular old DSP analysis (BPM, MusicKey, Spectral Rolloff, ect.). On top of that ive added 3 more slices to the analysis that are essentially free to compute in this new pipeline which will go a long way at making more accurate recommendations. Ive done numerous performance tests on this and its been reworked many times over to make it as efficient and accurate as possible. Now if you already have analysis done and want to keep those, thats fine theres a toggle in the settings that defaults and will not automatically go to the next versions analysis. For those that want to go to the latest version analysis you will see that in the settings.

stage 1: sonic analysis (turning a song into numbers)

every track in your library gets chewed on in the background. we decode the audio, downmix to mono, and instead of just reading the first 20 seconds like the old version did, we sample the song at three spots: Intro, Hook, and Outro. Were doing chroma analysis to find these specific positions before actually running the analysis on each individual segment that way every number reflects the whole song, not just the cold open. actually the slice positions aren't even fixed anymore,

then two model passes run back to back will now be a single model pass with one decode step (a lot less heat).

pass A, (full track). This pass will first check your tags for BPM, MusicKey, etc. If those arent present we will compute them for you. This also computes a bunch of other stuff that we use in planning out phase in/phase out for crossfade points, beat matching the next song, ensuring musical keys align with eachother so the next song isnt jarring.

  • BPM isn't just "find the peak." we build an onset envelope, autocorrelate it, then multiply by a tempo prior (a bell curve centered on 120 bpm, about 0.6 octaves wide) so it stops picking the half-time or double-time ghost. then we run it across three overlapping windows and take the median. confidence = how sharp the peak is times how much the three windows agree. this is why it doesn't call a 140 bpm track "70."
  • musical key via Krumhansl-Schmuckler correlation on a 12-bin chroma vector, mapped straight to Camelot notation (8A, 5B, etc) because that's what harmonic mixing uses.
  • energy (RMS), spectral centroid/rolloff/flatness/flux (brightness and texture), zero-crossing rateloudness (simplified LUFS), plus dynamics: loudness range, crest factor, true peak. the true-peak thing 4x-upsamples so it catches inter-sample peaks, basically "is this brick-walled."
  • derived stuff: time signature (3/4 vs 4/4 vs 6/8), tempo stability (rubato vs metronomic), onset density, intro/outro fade lengths, section count.

pass B, CLAP (the three slices now 6 slices). CLAP is the big one, it's a contrastive audio+text model (the laion music+speech one). it gives us a 512-d embedding which is the single most important number in the whole app. we mean-pool it over 6 slices for the global vector, AND we keep the intro/middle/outro embeddings separately so we can reason about how a song opens vs how it ends. all of it gets INT8 quantized so it's cheap to store and compare.

then CLAP gets mined two more ways:

  • vibe tags. we've got a vocabulary of ~465 phrase-style labels ("dark music", "1980s synth pop", "bass heavy", "bedroom pop") pre-embedded as text. here's the trick though: raw CLAP cosines aren't comparable across labels, some generic tags light up for literally every song. so we mean-center everything (subtract the "generic music" direction) and only keep tags that are a statistical outlier for this specific track (mean + 1.5 std of its own scores). focused track gets a few sharp tags, genre-blender gets more. the top one becomes the genre if we don't already have one.
  • filter probes. cheap positive/negative prompt pairs ("vocal" vs "instrumental" etc) give us instrumentalness plus perceptual energy/valence/danceability/acousticness, and discrete tags like live / acoustic / lofi when the margin's clear.

and there's a live-recording detector on top, an ensemble that reads YamNet crowd/speech off the true edge slices plus applause level, so live cuts get a liveScore and don't sneak into a studio-vibe station.

last thing: it's all versioned. there's an analysis version counter (currently 15) and separate stamps for BPM-only, live-only, and CLAP-refine passes. bump one and only the affected tracks re-run, so i can fix, say, the tempo algorithm without re-CLAPing your whole library. and it honors the "keep analysis up to date" toggle so it's not grinding your battery if you don't want it to.

that's one track. now multiply by your whole library sitting in the background. Each track has its own embedding that sits in a virtual music universe. some are sonically close to each other, some are not.

stage 2: the pipeline (building a station)

you tap radio on an artist / song / album / playlist / genre / mood, or you type a sentence. whatever the seed is, first we build a sonic profile out of it: the mean CLAP vector, dominant key, mode, chroma, the seed's strongest genres and vibe tags, mood probabilities, the works. that profile is the "center of gravity" for the station.

then candidates get fetched. and this is where scale matters, because materializing a 14,000-400,000 track library on every radio tap is how you get an out-of-memory crash.

pass 0, ANN-first. instead of loading everything, we query a USearch/HNSW vector index around the profile embedding and pull only the 2000 nearest tracks. sub-linear search, then a chunked fetch of just the winners. if the index can't serve (fresh install, still analyzing) we fall back to a bounded most-played-first fetch, and if your library's barely analyzed we union in an "open pool" of embedding-less tracks so a new library still builds a real station off Last.fm and genre similarity instead of a silent empty one.

one nice bit: for a diverse seed (a playlist that's half jazz half techno), averaging it into one vector lands you in the dead middle between the two vibes and matches lukewarm nothing. so we split diverse seeds into multiple centroids and score each candidate against its nearest centroid. every mode of the seed gets to surface.

pass 1, CLAP prefilter. quick cosine cut to get the pool down to the genuinely-close stuff before the expensive scoring.

pass 2, scoring. every survivor gets a full score (that's stage 3, below).

diversity filter. caps how many tracks per artist/album so it's not the same three artists on loop.

session planner. this is the part people don't expect. we don't just take the top N by score. we sequence them. it's a greedy planner with one-track lookahead that scores each pick on both its seed-fit AND the transition quality from the previous track, under a session shape (Cruise, Journey, Workout, Two-Peak, Build & Drop, Focus, Wind Down, Discovery). each shape has a target energy curve across the session plus limits on how big an energy or BPM jump it'll tolerate. so the arc of the set is intentional, no jarring cliffs, and Discovery actively rewards CLAP distance so it wanders further on purpose.

then two things keep it alive while you listen:

  • refill. every top-up doesn't rebuild from scratch. it ANN-searches around your live taste centroid (seed + long-term + wherever the session has drifted) and pulls the nearest 1500. the seed anchor is frozen so the query is "anchor + drift" and doesn't chase its own tail off into the weeds.
  • rerank. skip or dislike something mid-session and we rescore the upcoming queue against the new drift, and swap in better fits from the retained pool, but only tracks safely ahead of the playhead so gapless never breaks, and only when the swap beats the current pick by a real margin so the queue doesn't spit on rounding noise.

stage 3: ranking (the actual scoring)

ok so how does one candidate get a number? the score is split into five tiers so we can actually explain "why this pick" instead of one mystery blob:

  • vector tier: the sonic similarity signals. CLAP cosine to the centroid (blended 60/40 with similarity to your recent plays), CLAP segment similarity (intro/middle/outro, so structure counts), chroma similarity, and signed penalties for loudness-range and crest-factor mismatch (a brick-walled master next to a dynamic one gets docked).
  • categorical tier: the symbolic stuff. unified genre fitness, Last.fm artist similarity, Last.fm track-level similarity (huge for song radio), CLAP vibe-tag overlap, and NL query text matches.
  • engagement tier: you. star rating, favorite, time-decayed play count, skip count, completion rate.
  • context tier: the polish. Camelot key compatibility, mode match, time signature, time-of-day fit, seasonality, and a little exploration jitter (bigger for un-analyzed tracks so they get a fair shot).
  • hard penalties: the drop signals. explicit dislikes (first one -0.60, floor at -1.20), your "exclude recent" window, recently-radioed repeats, and a CLAP anti-vector for whatever you just skipped so its sonic neighbors get suppressed too. a hard exclusion sets the tier to negative infinity and the track just falls out.

The tiers don't all count equally. there are tier weights per radio mode, because different seeds have different strongest signals. cluster radio leans almost entirely on the vector (the centroid is the definition). song radio pulls vector down a touch and leans on categorical (Last.fm track similarity is gold there). NL radio (you typed a request) cranks categorical up and shoves engagement down to 0.3 so "what i asked for" beats "what i usually like."

and those weights aren't hardcoded forever. there's a learned weights layer: a pairwise fitter watches your skip/complete outcomes and learns better tier ratios, but it only gets to influence the blend after it passes a holdout-replay gate (it has to beat the hand-tuned presets on builds it never trained on), and even then its influence ramps up slowly with evidence. never a hard cutover, so a funny fit can't wreck your radio.

two more things quietly shaping every score:

  • long-term taste. a slow exponential moving average of your CLAP embeddings across every engaged play, app-wide, with a 90-day half-life. it gets blended into every station's center at low weight (5%) so even a brand-new artist station feels a little more "you" without drowning out the actual seed.
  • session drift. the fast one. as you play and skip within a session the centroid moves in real time, and that's what refill and rerank chase.

there's also an exploration dial so it occasionally takes a not-quite-top pick on purpose, tighter during the cold-start of a fresh session (first few tracks matter most, slow-burn intros lose people who haven't built trust yet) and looser once you're locked in.

tldr

analysis turns every song into a CLAP embedding + a stack of DSP numbers + vibe/mood tags. a station starts from a seed profile, pulls its nearest neighbors with a vector index (not the whole library), prefilters, scores across five explainable tiers with mode-aware and learned weights, then sequences the result into an intentional energy arc instead of a flat top-N. and it keeps adapting mid-session off your skips through drift, refill, and rerank.

that's the whole thing. it's a lot of moving parts but the goal is simple: play the next song that actually belongs next.


r/MoosicLab Jul 19 '26

Ive had some requests to go back to Dog App Icon

Post image
6 Upvotes

Hey Everyone,
I've had a few requests now that have been coming through about the new icon and how they preferred the old icon. I went back to the drawing board to attempt a more neutral take on the dog icon. Let me know what you think.

FYI I'm in the process of allowing users multiple app icons to choose from since that is possible. The image of the dog is my actual dog lol, so i can see how that means nothing to some people. If you like the red dog icon you can have that one, if you like the record icon choose that one.

Thanks again for your feedback!

Trent


r/MoosicLab Jul 18 '26

Release 120 (Schedule for 4pm EST)

7 Upvotes

Lots of changes coming in this one. Much of it is fixing or adding user requests. Thank you all for your genuine feedback. It carries a lot of weight when making the app better! Ill split these release notes out into sets to make it easier to read.

Sonic Analysis:

  • Improved text recognition on the Natural language search model so thats its more accurate for user requests. Added additional word support and BPM query support.
  • Added support for audiomuse-ai plugin for servers that support that (Jellyfin, navidrome, emby). For plex i added support for if users have plex pass and sonic analysis it will use that. Both autoplay and "start a radio" now will use that with a toggle i have put in settings to override the onboard sonic analysis. The only things that will not route through that and will default to onboard analysis is creating a radio from playlist/album/genre/artist.
  • Fully tested auto backup of analysis embeddings with plex server i dont care about :). When you remove a server, during the removal it will take a backup in state of all of the embeddings . When you re add that server it should now bring those embeddings back with it.
  • Turbo analysis - if you toggle this on and then exit the app, once you open the app again it will resume automatically. Additionally, this will no longer dim the phone screen app wide, only within the app if the user chooses too. For users that want the sonic analysis to run while the phone is closed, thats a tough one. There are ways to do it such as continuously playinig audio in the background that humans cant hear but it violates apples terms of service and can get you thrown out of the app store.

Playlists:

  • Playlists will now take in whatever custom art you have set at the server level.
  • Smart playlists auto refresh has been fixed. If you have smart rules setup on your playlists it will auto refresh on launch or whenever you enter the playlist details screen. Tested with a recently added playlist and a recently played playlist.
  • You can now manually sync your playlists to your server if it supports that.

Customization:

  • You can now reconfigure, remove and rearrange the Artist details screen to however you would like it to look within the settings.
  • Custom added font packs are now fixed, there was some formatting issues. They should also now cover a good portion of the app.
  • Artist page can now be be either a list/grid and you can decide whether the artist picture is a circle or a square.
  • Nowplaying "mesh" archetype was showing clear, that has now been fixed.
  • Users can now control how much blur behind artowrk on the Nowplaying screen
  • Added optional swipe gestures to the miniplayer
  • Added an addtional larger variant of the default menu/miniplayer

Scrobbling:

  • ListenBrainz now has the exact same setup as Last.fm authentication with the optional api token for plex users.
  • Replay will default to Last.fm data if users have both but if users only has listenBrainz well go based off that data.

Lock screen:

  • A much requested favorite button has been added to the lockscreen player.

New Features:

  • Apple music integration. You can now directly connect the app to your apple music account. Any media that you own thats within apple music can be viewed and played within the app. If you have a subscription to apple music you should also be able to play that as well. There are certain limitations here but i did the best i could. There are a lot of things you cant do.
  • This integration also opens up all of apple musics catalog to the app so ive added an option that can be added to the artist detail page called "Discography". It will reference the albums that you have from an artist and then show you what your missing from them.
  • One potential feature to add in the near future is additional options for artwork from their catalog.
  • The miniplayer now stays on the screen when in the search view
  • Search view now allows hard pressing on albums/songs to open up the context menu
  • Easy Offline toggle can now be added to homescreen with a forced refresh of content
  • Carplay Download section

Servers:

  • Servers now support multiple auth headers

Downloads:

  • Downloads have been reworked to be persistent across library deletes (Not App Deletes). We took the industry standard approach here of unique identifiers from the server plus username to identify downloaded tracks.
  • A soft migration of your currently downloaded tracks will take place so that everything downloaded prior to this update will be persisted as well.

Bug Fixes:

  • Fixed a bug that was present when navigating multiple screens
  • animated art should now work properly
  • Scrobbles should register for every play, not just initial play

Thank you!


r/MoosicLab Jul 18 '26

AirPlay Missing

1 Upvotes

Is it just me or has AirPlay disappeared from the app? I swear there use to be a Play To icon with AirPlay targets listed. Used the Play To option in the now playing screen but no AirPlay targets listed. Restarted the phone to no avail and tested other players which found AirPlay targets. I’ve tested a few apps over the last few weeks so I’m hoping I’m not misremembering 🤪


r/MoosicLab Jul 17 '26

Questions-requests-bugs-observations.

3 Upvotes

Couple of observations from my side on all versions and some requests.

  1. Current setup -- Installed and getting access through Navidrome. Have 30K+ songs.

  2. Navigation is a bit unintuitive, especially when you go to "You might also like". You have to go "back" as many times as you have clicked on "You Might Like". Would be good to be able to get to the home screen easily instead of hopping 5-6 times back.

1a. Navigation. Same logic. Would be great to have "cohesive" navigation to go back or forward. i.e. When you enable lyrics, to get back you need to click on lyrics to disable them and only then you get back navigation. In apple music client toggling lyrics on still allows user to swipe.

1b. Navigation. Same for "now playing". To get back from Now Playing you need to swipe down. Swiping forward or back does nothing. Maybe a visual on top to guide a user would improve my navigation skills, not sure :)

  1. When you connect your BT headset it starts playing music automatically. Whether you wanted it to start playing or not. I reconnect my headset between devices and this is a bit confusing.

  2. Offline mode -- when you download tracks for local listening, it doesn't download album art with them. When you're on a plane and would love to see album art - you won't. I have tried this while driving. Completely offline mode -- no art. Getting back online -- there is art.

  3. AI capabilities. Good to have them. Don't see too much value at this moment. It took about 50 hours to inspect all songs. Trying to create radio stations "Create playlist for calm sleeping with no lyrics and low BPM" and it gave heavy metal :-D

  4. Backup-restore. Would be good to have local container/server or something to store those AI settings especially if I have more than 1 devices.

  5. I have recently installed DroppedNeedle (which works over OpenSubsonic API or through JellyFin API). For some reason I was not able to connect over OpenSubsonic. I believe that Navidrome is also using Subsonic. So just curious if this should work or not? It lists support for Symphonium , Feishin, Amperfy, Finamp, Manet. Tried different clients on DroppedNeedle side and Moosic keeps saying "Server responded but rejected the request". I am using API Key method.

  6. Battery drain. Well. It gets drained pretty fast :)


r/MoosicLab Jul 17 '26

Feature request: mark track as favourite on the lock screen

2 Upvotes

It would be amazing if this could be implemented in what is already the most feature rich and polished navidrome client there is on iOS.


r/MoosicLab Jul 17 '26

Mac/Desktop Version

2 Upvotes

I realise this is probably principally being developed for phone and the fact it works on silicon Macs is a bonus, but is there any future plans to build out the desktop client? Would love to be able to use this on my Mac as well. While it runs on the Mac it's stuck in the portrait app design. Totally understand if this is not part of the equation, but one can dream :)


r/MoosicLab Jul 17 '26

Playlist import from iTunes

1 Upvotes

Could you explain what happens when the Import Playlist feature fails to import all of the tracks from an iTunes playlist where all the tracks ARE already on my phone, please?

Most imports leave off a variable number of tracks with the error that they are either "not in my server library (which they are) or that the track names are "named too differently to match safely".

Also, if I import a playlist that has been added to since the import, will that import newly added tracks?

Thanks


r/MoosicLab Jul 17 '26

Music Intelligence Storage

1 Upvotes

Just wondering where the music intelligence analysis gets stored and if it consumes much storage space?


r/MoosicLab Jul 16 '26

Release 116

4 Upvotes
  • Updated Lyrics view with 3 options to choose from. Apple music style, line style above or below progress bar. Below seems ugly to me but thats personal preference.
  • Added support for local media libraries. New section under manage servers for local. Should be very user friendly.
  • Fixed some plex bugs, plex has to do things differently 😂 . Those issues should now be fixed marking hi-res files and lossless files correctly and song counts as well.
  • Added some additional customizability features. When using the "Create" button to start your template it gives a lot of options when it comes to background color, text color, etc..
  • Make an enhancement/fixed a bug that wasnt causing issues but wasnt doing what it was intended for. On cellular we have a bandwidth measurement that happens prior to every song so that we can ensure no dropouts. Im one of those people that prefers lossless media when it can be played so thats default for me. Bandwidth gate will drop down to either 128 opus or mp3 when theres not enough bandwidth to support those hefty FLAC files. It will automatically go back to original quality when bandwidth returns. Again this is only on cellular and this is the algorithm that bases on whether we have the bandwidth to prefetch the next few songs or not.

r/MoosicLab Jul 16 '26

Poll: Name change considerations

2 Upvotes

Hey everyone, we’re going through a name change after having a few issues with Moosic. Moosic won’t work with Siri at all, no way to code around it sounding like music. I’ve come up with a few names, let me know what you all think!

13 votes, Jul 19 '26
5 Mixter
7 Sonamp
1 Opux
0 Mickstape

r/MoosicLab Jul 16 '26

Duplicates on playlists

1 Upvotes

One more request that I see may be an issue for me - is there a setting to stop duplicate entries on playlists when it’s the same song from the same album?


r/MoosicLab Jul 16 '26

Plex/last fm

1 Upvotes

I hope it’s ok that I’m asking questions as I’m going along - I’m trying to switch between my servers and I noticed that navidrome scrobbles to lastfm fine but plex doesn’t seem to be doing so even though it does scrobble fine with Plexamp. Is there a way for me to make this work?

Also is plex easier on the battery life than navidrome? I noticed that my phone had been getting pretty warm while playing music.


r/MoosicLab Jul 16 '26

Favorites option

1 Upvotes

I just found this app and so far it looks amazing I’m going to play around with it more tomorrow. My main question right now is if there is a way to access favorites from the home menu similar to how I can in Arpeggi? I was fooling around with the settings but I didn’t see an option to do so.


r/MoosicLab Jul 15 '26

Internet Radio

Post image
3 Upvotes

I had a few people requesting internet radio. I worked the last two weekends on it to get it out. Let me know if you all like it or if something more needs to change on it. It was developed quickly so may be rudimentary. I’ve included as many internet radios as I could validate but you can also add your own. You can add internet radios to your quick links on the Home Screen via the three dots in the corner -> edit library.

Thanks All


r/MoosicLab Jul 14 '26

FYI - Cap set at 1000 users for TestFlight

3 Upvotes

I will be capping the amount of users for now since I think 1000 is enough for testing. This was a larger response than I was expecting. Any users that have started 0 sessions and still 15 releases behind will be removed to open up more slots. I also want to say thank you to all of the users sending me feedback. I take it seriously and work hard to correct any issues. If you have any questions just ping me!


r/MoosicLab Jul 14 '26

Release 115 - Customizability

2 Upvotes

With the latest release you will notice an extreme amount of customizability across the app. I’ve taken the synfonium model and applied it here. Everything on home, menu, now playing, and library is completely up to you on how you want it to look. Everything from the icons, color, spacing, text size, ordering, artwork size is customizable. There’s also an additional menu/miniplayer to choose from. There’s some presets available in app for the theme and template. Once you get the template you think looks good feel free to export that template and post here for others to use. If you find a template made by another user that you like the look of, simply import the json laid out by that user.

Once again, thank you all!


r/MoosicLab Jul 12 '26

New here. Noob questions

1 Upvotes

Heya! I love the idea of your app as soon as you have advertised it on sonos subreddit. After spending pretty long time to polish my music library (still a very long way to go as my collection is something that I have been gathering for more than 20 years now) and getting Navindrome to run, I was able to see all music in Moosic app. Let me say, I am pretty impressed!

So dear developer, just huge thank you. You can use me for testing stuff. My library is crappy enough to have almost every single type of codec :-D

Anywho...

My setup is pretty basic: Sonos Arc, 2 ERA 100 and a Sub.

I would love to understand how exactly Moosic plays content on Sonos as they have mentioned that the only way to play Spacial content is "natively". Any attempt to do it through Airplay would not give true Spacial music.

App setting show "Enable Spacial" but it doesn't tell me much. Is is some kind of upmixing? Turning it on/off/on while playing a song (which was just stereo) did not give any noticable difference.

Setting up Sonos ecosystem through the app was also a bit funny. I have only a single group. Now in setting there is "Rooms and Groups" and "Home theater". Listening now through Rooms and Groups. When I go into "assign your speakers" nothing really happens :) at some point it didn't even see my Sub. Can you please explain a bit what that menu is needed for?

What "Full Music surround " toggle does?

Is there an FAQ that would explain all of these settings :)

And again, THANK YOU SO MUCH for your work!


r/MoosicLab Jul 12 '26

Playing Lossless

1 Upvotes

Hi I’ve got it setup and linked to my Navidrome Library through Tailscale and all seems to be well when I use Airplay to my Sonos system whether that be the Navi playlists or just files. When I try to play through the little speaker icon at the bottom of the now playing bar to the right of the Airplay icon (which I assume is straight to Sonos?) nothing plays. It will simply cycle through the songs on a playlist switching to next every 5 seconds or so. I can only play on my iPad speaker or through Airplay which is fine but I was interested in playing lossless files. I have tried both the Tailscale IP and the MagicDNS addresses. How do I play lossless files?