Continue improving my personal project, bard. Bard is a music manager for your music. It stores all information about your music collection in a Postgresql database .
The current release can be used from a terminal and has the following working features:
- Add music files to the collection, parsing metadata tags, audio features and audio fingerprints.
- Store all the parsed and calculated data in a postgresql database.
- Set song ratings.
- Play music (using mpv) selecting what to play or in shuffle mode (
- List/Play (select) music by genre. List music genres in the collection.
- Compare songs or full directories to find out if two directories include the same songs, which one has better quality or to find duplicated songs in general, based on the audio, and not on tags.
- Import metadata from musicbrainz for songs in the collection (to the database).
During this hackweek, I'd like to work on at least some of the following features which are in my TODO list:
- Playlist support. This translates on the following subtasks:
- Store user's playlists in the database.
- Handle search results as temporary playlists.
- Support for playlists to which songs are added dynamically (for "infinite" random music playing)
- Improve the bard's web interface. Currently, bard has a developer-proof of concept-web interface with very basic user authentication, basic search support and browsing capabilities to browse on artists/release groups/releases/tracks within a release and play single songs. I want to add support for better search support (to search for a title or artists and return results which are similar too, for example so a search for
La Noyée). Also it would be nice to make the web interface nicer looking and once playlists are implemented in the core, make use of them with a nice drag&drop gesture in the web interface.
- I did some tests some time ago with essentia in order to analyze music files to extract audio features and it works quite well so I'd like to integrate it into bard. This would allow to store in the database information like if a song is instrumental or has a male/female lead voice, get probabilities for a song to be happy or sad, relaxed or party-like, electronic or acoustic, etc. I already started some time ago to package essentia for openSUSE, so this shouldn't take too long.
- Add sonos support. For this, I'd need to refactor the player support in Bard (which currently just relies on executing mpv with the required parameters) and make bard actually be able to control what's being played. This depends on the core playlist support
This project is one of its kind!