Hello everyone,

Over the past few years, I’ve tried various music player solutions, but none of them met my specific needs. So, I decided to create my own music player with the following key features:

  • Access to my entire music library remotely
  • A directory structure view, rather than just Album/Artist/Genre views
  • Transcoding while streaming to minimize mobile data usage
  • Syncing parts of my library for offline usage

My previous attempts at finding a solution involved manually copying files from my server to my phone and playing them with a local player, or using Polaris with a manually transcoded version of my library. However, these methods were cumbersome, especially when I wanted to add new music.

I require a directory listing for several reasons:

  • My library is too large to be manageable with a flat Artist/Album listing
  • Some of my music is too niche to be properly indexed by current databases
  • Many of my albums and songs have inconsistent metadata, with artist names spelled differently each time
  • I’ve grown accustomed to my specific folder structure, which makes it easier for me to find specific songs

My friend and I have been using the app for the past two weeks, and I’ve addressed the most obvious UI issues and performance problems. The app seems to work well on both desktop and mobile devices.

There are still some features in the pipeline, such as displaying song metadata (e.g., embedded covers, ID3v2 title tags), filtering files by name, and possibly even video support. However, getting transcoding to work smoothly for video will be a significant challenge.

I’d appreciate any feedback on bugs you encounter, simple missing features (keeping in mind that I aim to maintain a low complexity for ease of maintenance), and code improvement suggestions, especially if you’re familiar with SolidJS, as this is my first major project using the framework.

P.S: This was also my first project actively using LLMs for coding, big shoutout to DeepSeek-V3-0324 for generally understanding what I want and giving concise solutions, even when it doesn’t always work, and big anti-shoutout to Gemini-2.5-pro, who insists on copy pasting my whole files in the output for even single line changes and always tries to rewrite every line of code in my repo even after explicitly instructing it not to.

  • Ferawyn@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    8 hours ago

    Interesting idea, but I feel anyone who wants this already has the tools available.
    Personally, I use Syncthing to synchronize a Media folder across my desktops, phones and tablets.
    Media/Music contains my active music collection, mostly ogg conversions of the source flac files. I use .m3u/.m3u8 files as good old playlists, saved to the Media/Music root folder with relative paths. This allows players like AIMP on windows to play/edit those playlists, and players like GoneMAD on Android to play them without any kind of active internet connection.
    There’s also Media/Audiobooks, Media/Comics, Media/Movies, etc… Yes, they’re subsets of the full collections on my NAS, but I’ve never seen that as a disadvantage.

    • tripflag@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 hours ago

      off topic, but out of curiosity - why ogg (presumably vorbis) in favor of opus? maybe old devices or players, or just haven’t made the change yet?

      opus is also a xiph project, and is almost entirely transparent at “128kbps” (it’s a misnomer for the q4 of vorbis), so it uses way less space for the same quality. I warmly recommend giving it a try if you haven’t already.

  • tuckerm@feddit.online
    link
    fedilink
    English
    arrow-up
    4
    ·
    18 hours ago

    I love the way this looks! Is that some kind of UI library, or did you design it that way?

    I have my music collection in Funkwhale now, which relies on metadata for organizing the library. But I want to check this out anyway – maybe I’ll create a few folders for specific listening cases.

  • solrize@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    12
    ·
    23 hours ago

    Can’t understand why this is interesting, as phones now have a lot of storage space, even the ones that don’t have SD card slots. Just store the music that interests you directly on the phone.

    • weeblay@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      9
      arrow-down
      1
      ·
      22 hours ago

      This ain’t fitting on a phone chief

      Really though, I did use Vanilla Music on my android for playback and copied over just the stuff I generally listen to, though even that in flac was already ~50gb, which already requires me to upgrade to 128gb storage just to have some space left for photos and a game or two, and whenever I add something on my server, I need to add it to my phone as well, which definitely got annoying over time, and actually stopped me from getting some new albums because of this (stupid, I know, but still)

      I’m fully aware for most people this is not really relevant, and in that case there are many alternatives that should work much better for you!

      • solrize@lemmy.world
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        5
        ·
        21 hours ago

        50GB of flac = maybe 20GB of Vorbis amirite? Is that 450GB of flac in your screen shot? It would fit on a 256gb phone even without an SD card. A 512GB card is quite affordable these days. Just make sure to buy a phone with a slot, and think of it as next level degoogling ;).

        Yeah I know there’s lots of music in the world but who wants to listen to all of it on a moment’s notice anyway?

        • taters@piefed.social
          link
          fedilink
          English
          arrow-up
          3
          ·
          17 hours ago

          I enjoy it when people go to absurd lengths to not spend money. There’s so much room for creativity within what we tools we already have available to us.

          I also think that it’s important to try new things and see what we can learn from it. Trying and failing is all a part of learning. And we need more ideas and knowledge out there if the idea of open source is to spread and gain popularity.

          If a project is not interesting or important to me, that doesn’t mean that someone else can’t benefit from it. I think if one person finds a project useful or interesting then that’s worth sharing alone. And if only one other person wants to contribute their time to that project, then that’s still pretty awesome.

    • hangonasecond@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      22 hours ago

      Why not? People are generally always online these days and there is a lot of music out there, plenty to fill a phone many times over. Granted you might only have a few hours worth of tracks at any time but there is obviously at least one person (OP) who doesn’t.

      Not to mention the way they manage their library sounds incredibly desktop oriented. This removes the need to plugin the phone.

      And then like Plex/jellyfin, or audiobookshelf, sounds like this let’s you have a shared library across devices or people, even better!

  • dan@upvote.au
    link
    fedilink
    English
    arrow-up
    7
    arrow-down
    7
    ·
    edit-2
    1 day ago

    Have you tried Plexamp? It supports all the features in your list. You need a Plex Pass for most of its features though.

    I’m not mentioning it to suggest your project is bad or to discourage you; I’m mentioning it since it might give you some inspiration for features to implement in your one :)

      • dan@upvote.au
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        16 hours ago

        It was missing a bunch of features last time I tried it - no crossfades, no automatic playlists (for things like liked songs, decades, etc), no artist radio (play an artist plus similar artists), no way to play sonically similar songs (based on server-side analysis), no loudness leveling, no Android Auto. Maybe it’s improved now - I’ll have to give it another shot.

        Unfortunately I’m not sure I know enough about audio processing and similarity analysis to be able to implement those features myself.

    • weeblay@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      15
      ·
      1 day ago

      Plexamp seems to be closed source and also paid? In that case that’s definitely not an option for me, but at least nice to know that something like this actually exists.

      I’ll try to look at the screenshots to glean something useful to copy, but I’m already doing that with other projects anyway.

      Thanks for the mention though! I did hear about Plex but not Plexamp yet

      • dan@upvote.au
        link
        fedilink
        English
        arrow-up
        8
        arrow-down
        2
        ·
        1 day ago

        Yeah, unfortunately it’s closed-source. It’s a good app though! If you build something similar that’s fully open source, with an Android app and Android Auto support, then I’d definitely be interested in trying it.