Hacker News new | ask | show | jobs
by albertzeyer 628 days ago
I did not test this yet, but Dynamic "Mix" Feature and Audio Analysis and Recommendations, those are features I always wanted to have for a local music player. Amarok had some simple variant of this. Spotify of course has as well, but not really for local music.

That was the main reason I started my own music player project (https://github.com/albertz/music-player). But it never really got to the point to have a more advanced variant of this features. The best it could do is randomly play through directories, but at least prefer liked songs. I implemented the core playing engine in C++ and the remaining logic in Python, as I thought that would give me most flexibility. Unfortunately I haven't found the time to work on it since a while.

2 comments

Hi, I'm the developer of Rune. Honestly, I was a bit surprised to see my software mentioned on HN at this time. I had planned to introduce it once it had fewer bugs, improved performance, and cleaner source code.

Nevertheless, Rune might offer the features you're looking for. It not only provides recommendations based on individual tracks but also on criteria like "songs you've liked," "all music from a specific directory," or "all tracks from a particular album." Additionally, it can categorize recommended tracks into nine sub-lists based on acoustic features, helping you find the perfect arrangement.

Thanks to its separation of front-end and back-end, Rune can be used independently of a GUI. You can also use Rune's CLI to create M3U playlists. While these features haven't been fully refined due to my limited resources, I believe Rune has the potential to meet your expectations in the future.

Here are the document of the query syntax: https://github.com/Losses/rune/blob/master/documents/mix_que...

I hope that once Rune reaches a production-ready state, you'll remember it. I'll be looking forward to that day.

Why not use something like mpd and program an external playlist builder? That way, you focus only on what matters to you.

Reading your last commit, it seems like we had the similar idea of wanting more intelligent shuffle. Which is why I made a player that simply ingests plaintext playlists and then https://git.sr.ht/~q3cpma/mus/tree/75478f90269dca1b69e0d763d... to achieve what I wanted (though I'll probably modify it to avoid queuing albums sharing a primary genres; who wants 3 black metal LPs in a row?).

MPD was too restricted in functionality. It doesn't really provide such infinite play list concept. So I felt that I would fight with the limitations of the mpd API more than I really get something out of it.

Here are some comparisons to MPD: https://github.com/albertz/music-player/blob/master/Compare_...

Btw, my music player can even act as a MPD backend.

Writing the backend part was anyway the simpler part. And that covered quite a lot of things: https://github.com/albertz/music-player/blob/master/WhatIsAM...

The GUI turned out to be the trickier part. I wanted to design everything around this infinite play list concept, and that in a cross-platform way, but I didn't really finished that.