Option to use the server-side implementation for creating instant-mix playlists

Thanks, next release will add support for AudioMuse Jellyfin plugin as Sonic source for smart flows.

This will most probably trigger some support from users on Github.

4 Likes

Great! Please also drop a message here when released!

Also would be great if you can add a link to audiomuse-ai GitHub repo somewhere (even because I suppose that user need to know that they had to install it server side).

Really really thanks for this.

It’s released in the beta version: Version 13.3.0 Beta 1
I’ll give it a try right away!

Edit: Hmm, I’m not on the beta channel anymore xD

Thanks for implementing this. Unfortunately seems like I can’t test it right now as joining beta after the release means I have to wait for the next update to get it. Looking forward to it

It might take a few minutes up to an hour to join the beta on Play Store. Just be patient. No update is needed :slight_smile:

Oh yeah, got it now. It used to install the beta version before if you reinstall the app after joining the programme, maybe play store changed how it works.

Also, tested the sonic based stuff and everything works perfectly. Thanks a lot @Tolriq and @neptunehub

1 Like

@Tolriq could a feature to create filter rules for the now playling list be added? For example filtering out a string like ā€œgame sizeā€, to exclude shorter versions of same tracks from getting added when using sonic analysis stuff that returns similar songs?

I agree with @Chandandharana that multiple similar versions of tracks are an issue, in my case it’s ā€œ[track]ā€ and ā€œ[track] (Extended Version)ā€, for example.
But I’m not sure if user-defined filters are the best way to handle this. Does Plex filter out such ā€œpseudo-duplicatesā€, or have Plex users reported similar issues?
If Plex filters them out then I guess we could try to find an algorithm for AudioMuse that does something similar. @neptunehub is currently working on detecting actual duplicates (which theoretically should be rare, but are more frequent in reality due to user library management issues), so maybe we could extend this to detect possible variations of a track.
Remixes might be another aspect to consider, but I guess those are usually sonically distinct enough to not cause problems.

I think Plex remove them, and with normalized distance we could probably detect them on client side.

There’s plan to eventually add something to filter but it’s a pain as each smart flow could eventually needs different rules or easy switching each time and it’s an UX nightmare.

Would be best if Audio muse handled that simple too similar filtering.

PS: I don’t really use those features as I’m 99% of the time an album listener.

Duplicates are quite common if you for example have the album version as well as various compilations, EPs etc. that feature partially overlapping tracks, even in perfectly organized libraries. Then there are also different releases which feature different bonus tracks (Expanded Edition has 5 new songs on CD 2, Deluxe Edition features live recordings on the 2nd disc while CD 1 of both versions is identical).

How strict is the filtering? I’m thinking about jam bands like Grateful Dead, Snarky Puppy, Phish etc. where you can end up with over 100 unique but very similar live versions of the same songs if you collect the live recordings (I have 82 versions of ā€œShofukanā€ by Snarky Puppy for example).

Yeah, I know there are valid examples of duplicate tracks. I’m just saying it’s even more of an issue in practice because sometimes the exact same track is duplicated.

@Tolriq AudioMuse should already expose distances for the /similar_tracks endpoint, is that what you’d need? Those are normalized, but relative to the initial track. For the /find_path endpoint it might make sense to include the distance between two successive tracks, and I guess we could also add that distance to the response for /similar_tracks.
One thing I noticed while trying out this feature is that for the ā€œTransition Maestroā€ smart flow you seem to be using the plain /find_path endpoint (which returns a path of 25 tracks by default), and then you sample the returned tracks to obtain the maximum amount of tracks configured in maestro settings. But the /find_path endpoint actually accepts a max_steps query parameter that you could use directly!

I request more to apply filter like bad rated or marked as skip from mixes and other stuff.

1 Like

I just added it and is :devel right now.

Basically it have a threshold on the distance, where if below of a specific value it is marked as a duplicate and deleted. This in parallel to the already existing filter about exact same Artist and Title.

Just testing today it was able to find the same song with different Artist name::

│ [INFO]-[26-08-2025 16-34-07]-Filtering song (DISTANCE FILTER): ā€˜Come deve andare’ by ā€˜Max Pezzali’ due to direct distance of 0.0000 from ā€˜Come deve andare’ by ā€˜883’ (Threshold: 0.01). │

Basically was an Italian singer that first sign in the group 883 and then start signing alone with his name Max Pezzali and I had the title duplicated under two totally different Artist name.

This filter work on both the InstantMix (so similar song) and the path between two song.

now I’m just doing some testing about the correct threshold (that anyway is configurable by ENV variable) with the help of @Chaphasilor

Does it also mark same songs but of different lengths as duplicate? Like the ā€œgame sizeā€ or ā€œextended releasesā€ mentioned above.

@Chandandharana that depends on how close they are. Duration isn’t considered at all.

You could open an issue on GitHub (GitHub - NeptuneHub/AudioMuse-AI: AudioMuse AI: Leverages Librosa for sonic analysis and AI-powered clustering to create smart, tempo and mood-based playlists within Jellyfin and Navidrome API) and add a list of tracks that you wouldn’t want to hear in succession, along with their distance. To calculate the distance you can for example use the ā€œPlaylist from Similar Songā€ page in AudioMuse for one of the tracks and then find the other track and its distance in the list.
Such a list could help us pick a good threshold for the filter :slight_smile:

1 Like

Could the mbz recording ids help here? If the same song is carried across various comps and soundtracks, it keeps the same id each time. However, each demo, live, etc version has it’s own id.

From my research (but if I’m wrong please help) the id of a song for MusicBrainze is made with the Chromaprint algorithm:
AcoustID - Wikipedia .

Basically it ā€œanalyze the songā€ and hen match with other song. Because two audio can’t be always exact the same (maybe different version, different recording and so on) they calculate the distance.

What I’m doing is exactly the same. I reppresent the song with a 200 dimesnion embbeding vector and then I calculate the distance. If under some threshold I say ā€œis the sameā€.

Calculate the MusicBrainzId on top will only be and additional analysis on all the song, and I think we can simply get by understanding the correct distnace.

Using MusicBrainz/AcousticBrainz ID could be interesting if they would like to host in their database our vector information, but for now I didn’t received any responses in this direction (I wrote them here: AcousticBrainz: Making a hard decision to end the project - #22 by Neptunehub - AcousticBrainz - MetaBrainz Community Discourse and I also opened a tickeet in their Jira).

Do not mix AcousticBrainz and MusicBrainzId. The later are well known uuid that many tools use to references things.

See https://musicbrainz.org

Very interested in this feature. I installed the docker version of Audiomuse-AI on my N100 Mini PC. It’s analysing my 74000 FLAC files as we speak. Will take a few weeks I guess before it completes them all. Let’s see how this works once it finished analysing….

1 Like

Nice, feel free to share a feedback when finished!

Also if you like, from version 0.6.6-beta there is the possible integration with a centralized database where you can share your analysis data and get advantages of the analysis of other user. The idea initial idea is a fast analysis and in future (when more songs will be on the database) give song suggestions based on sonic analysis for music that you don’t have, to discover new music.