I’d like to extend Volumio so as to deal with playlists in a particular way.
Before I start investing time I’d like to get some more experienced opinions on:
- feasibility (whether what I’d like to achieve is even possible)
- the extent to which I might be re-inventing the wheel
- pointers and ideas you may have on how to solve this and what to look out for
- general feedback and whether or not this would be appreciated.
This reflects my current understanding of how Volumio handles playlists and also hints at what I’d like to to enhance:
- Volumio uses its own proprietary format for playlists (no M3U or PLS support)
- All playlists are stored in one designated location [Browse > Playlists], so there is no way to structurally organize them. This lack of organizational/structural facilities isn’t limited to playlists however. This is a general limitation.
- Playlists have their own name, but can’t have their own images
More details on what I’d like to improve:
In our household, each member manages their own collection of music. Jane has access to everyone’s music via [Browse > Albums] or [Browse > Artists], but Jane can also go to [Browse > Music Library > USB > Audio > Jane], where she can browse only the subset of albums that are hers. However, since Volumio’s playlists aren’t integrated into the filesystem, this doesn’t work for playlists. For playlists, Jane is forced to share a single “bucket” with everyone else, with no way to filter out everything that isn’t “hers”. That’s one thing I’d like to improve.
Second, I question whether it makes sense to deal with playlists and albums in such a disconnected way. Playlists and albums are physically different concepts. That’s true. Albums are defined via the metadata embedded within audio files whereas playlists are defined externally in separate files and have nothing to do with metadata. Logically however, there is no difference between the two. Both are named collections of audio tracks. Logically, playlists are just compilation albums that are put together by users rather than production companies. For a music player and its front-end UI, I think it makes more sense to focus on the logical concepts rather than physical differences of how information is stored. I have no idea if this is technically feasible with the current architecture. I’m recording this primarily so as to be clear on what I would consider ideal and what I’m striving towards. Basically, the ability for albums and playlists to appear as if they are the same things or at least similar.
Lastly, while I don’t think Volumio must support PLS or M3U files directly, I do think Volumio must at least be able to import/export those formats.
First thoughts about a potential solution
My first thought is to create a new mdp database plugin that is based on the simple plugin that already exists.
Anytime this modified plugin encounters a directory that contains only one M3u or PLS file (and possibly image files) it would import it as if it originated from audio-file metadata. I’m hoping this would be entirely transparent to Volumio, e.g. if Volumio queried mdp for that directory, mdp would return the list of tracks specified by the playlist. Because the playlist resides in a directory it could also have its own album art. To these playlist based “albums” the modified database plugin would assign:
album = [the playlist filename]
album-artist = [first entry used in Settings > My Music > Music Library Settings | Compilation Metadata fields]
All the other information would be extracted from the audio file’s metadata just as it would be for any other album.
I think that would address all my requirements, but I haven’t put a whole lot of thought into this yet, nor have I invested any time to determine whether or not it is even technically feasible. Depending on what others think and where this conversation leads I might be willing to give it a shot.
What do you folks think?