Fork me on GitHub

what is it?

Subsonic is a streaming media server, providing instant access to your personal library.
MusicCabinet is written to enhance the experience for users with large music collections.

By using the knowledge gathered at Last.fm, the following features are added to your server:

create automatic playlists

  • pick an artist, and get a playlist of popular songs by related artists.
  • pick one or more genres (pop, 90s, piano...), and get a playlist of matching songs.

browse by theme

  • pick an artist, and display your other artists that are most closely related.
  • pick a genre, and browse through your matching artists.

think artists and albums, not files

  • completely tag-based browsing, with file-based fallback alternative.
  • add artist images, top tracks, biographies, and genre descriptions.

find new music

  • integrated, personal recommendations from last.fm.
  • tips on missing albums, by artists that you like.
  • pick an artist, and get recommendations of closely related artists that are missing in your library.
  • pick a genre, and get recommendations of popular, matching artists that are missing in your library.
Latest release: version 0.7.24c, built March 25, 2013.

artist radio

When browsing one of your artists in Subsonic, press the 'Play artist radio' button to generate a playlists of popular songs by related artists. Artist radio

genre cloud

MusicCabinet calculates a 'genre cloud' based on all your music. Each genre has it's own page. Genre cloud

genre page

Each genre in the genre cloud has it's own page. It displays your top artists for that genre, and allows you to quickly generate a playlist of matching songs. Genre page

genre filter

For quick access, you can filter your artist list in the left column by genre. alt-country female vocalists

radio

You can combine multiple genres to create your own radio playlists. Radio

related artists

For each artist in your library, you can browse the related artists also found in your library. Related artists

quick search

Quickly access your music by the searchable recently added, recently played, most played and starred items. Recently added Recently played Starred

installation

java

The installation requires Java 7, from java.com. Uninstalling Java 6 first of all is a good idea to avoid confusion.

postgresql

The installation also requires PostgreSQL 9.1 or above, from postgresql.org.
  • You'll be asked to create a database user. Stick to the default name, "postgres".
  • You'll be asked to choose a port number. Stick to the default value, "5432".
  • Linux users might have to run
    sudo apt-get install postgresql-contrib
    or equiv. Windows and Mac users are fine with the default installation.

subsonic+musiccabinet

After finishing the steps above:
  1. If you're already running Subsonic: stop your service, backup your settings. (Just in case.)
  2. Run the Windows installer, use the stand-alone version or the Tomcat war.
  3. Some features (like statistics and starring) require a last.fm account to work.
    It's free and anonymous to setup, if you don't have one already.

Start and log in to Subsonic as usual (normally via localhost:4040) and click the big "Configure MusicCabinet" header link. It should be pretty self-explanatory from there.

Please note that the initial import of data from last.fm will take a while, roughly 30 minutes per 10.000 tracks. You can follow the progress meanwhile, but MusicCabinet features won't work until it's finished.

technical details

The development of MusicCabinet started when Subsonic 4.6 had recently been released. A lot of the inner workings of that code have since been replaced: in particular a new media scanner, a new way of storing library meta data, and a new way of presenting artists and albums. The interface resembles default Subsonic, but most of it is written from scratch for improved efficiency. A few interesting ideas from Subsonic 4.7 have been incorporated, together with updating the interface that is used by external apps to the latest official version.

Artist radio, genre browsing, top tracks and related artists are also exposed to your apps, together with tag-based browsing. Just make sure to update cached views in your apps when switching to MusicCabinet.

The MusicCabinet installers come with everything needed to replace your current server. There's no need to install Subsonic if you don't have it running already. But if you happen to use it, your configuration and user settings will be picked up and transferred into MusicCabinet on installation.

Please note that for security reasons, MusicCabinet stores passwords of users as salted hash sums instead of clear-text as Subsonic does. Your settings directory (C:\Subsonic on Windows) will be updated with no option of going back unless you make your own backup. Also export eventual Subsonic 4.7 playlists to .m3u format before installation for compatibility.

source code

The source code is available at github.com. There are building instructions if you'd like to build your own .war files, rather than downloading pre-built binaries.

Feedback, forks and bug reports are most welcome. Preferrably using the issue tracker at Github.

version history

  • 0.7.24: Genre browsing based on local tag information.
  • 0.7.23: REST interface for apps updated to 1.8.0 (same as Subsonic 4.7).
  • 0.7.22: Sync starred tracks with loved tracks on last.fm, biography language option.
  • 0.7.21: Three new interface themes: Sigelsonic, darksub and RolleShark.
  • 0.7.20: Podcast support.
  • 0.7.19: Extended stats for all users, song length filter for radio.
  • 0.7.18: App update: better artwork support, star handling, and video support
  • 0.7.17: Advanced search interface.
  • 0.7.16: Smarter choice of top tracks, non-indexed media folders, VA albums in left column, full artist biography and discography.
  • 0.7.15: MusicBrainz integration: search for missing albums in your collection.
  • 0.7.14: Display top genres on artist page, interface for updating genres per artist.
  • 0.7.13: Use embedded lyrics/custom search URL instead of old lyrics supplier. Custom share URL, alphabetical album sorting option.
  • 0.7.12: Add composer to web interface, and top tracks to apps. Link to full compilation albums from artist view.
  • 0.7.11: MusicCabinet features now available in apps: genre browsing, genre radio, artist radio, related artists.
  • 0.7.10: Last.fm group radio.
  • 0.7.9: Substring searching, iTunes style.
  • 0.7.8: Personal last.fm artist recommendations.
  • 0.7.7: Genre recommendations.
  • 0.7.6: Tag merge. Related artists sampler playlist.
  • 0.7.5: File tree view / partial library scanning.
  • 0.7.4: Simplified genre browsing / genre artist radio.
  • 0.7.3: Improved handling of Various Artists / Compilation albums when browsing/searching.
  • 0.7.2: Include tracks from compilation albums in artist view.
  • 0.7.1: Initial release of version 0.7, written to outperform Subsonic 4.7. Tagged based browsing, improved page loading, lower resource usage, faster media scanner, and many other features.
  • 0.5.*: Last.fm integration for Subsonic 4.6.