Reply to comment

My search for the perfect music player

If you want to skip to the point of this blog, just go get Amarok which is an excellent music player for Linux.

I've been dreaming up my ideal music player lately. I use a lot of different computers on a daily basis. At home I use Linux, Windows, and (recently) OS X. At work I use Windows. Winamp 5 has been my favorite player for a while. Unfortunately it is Windows only and when I'm at home I prefer to leave my Windows machine powered down unless I have a real need for it (for example, running Visual Studio .Net). So when I got my Mac Mini I started using iTunes to play music. It works, but isn't quite the same as Winamp 5. I'm so used to have the Winamp-style playlist, which is more of a "scratch" playlist that you arrange for listening right now, but disappears after you're done with it. Winamp has iTunes-style playlist as well when they are necessary. iTunes added the "Party Shuffle" feature which is cool, and could function a little like Winamp's playlist, but not quite. I could go on about how iTunes is lacking compared to Winamp 5, but it doesn't matter. I don't want to run Windows at home anymore just to listen to music.

So then came the dreaming up of what I want in a music player. I want something which uses centralized storage. So all the music is stored on a single server, and metadata is stored in a database on the server. Clients communicate with the server and retrieve music in one of the following ways: 1) Stream the music, 2) Download a track at a time, 3) Replicate all or most of the collection locally. In all cases the clients are also communicating with the server to interact with the metadata database. So every time a song is played the server is told and this information is stored in the database (for recently played lists, etc). Any time a song's rating is changed on one of the clients, it is changed in the centralized location. I want the ability to save playlists and these are stored on the server for all clients to access. I want to be ability to burn a CD on any of the clients.

There are also some other possible details. For example, clients should be able to have their own local storage for music. If the files already exist on the server, it should know this and use the same metadata, even if the directory structure is different. If a file doesn't exist on the server, it should be possible to upload the file to the server. Metadata about what songs have been played can be used to generate statistics. This metadata may be used for personal statistics as well as the possibility of connecting to a server on the internet and sharing metadata. There should be a "Party Shuffle" functionality that may or may not work off of the metadata. And whole host of other possibilities.

So I had this imaginary music software in my head. I hoped someone out there had similar ideas and created something that I can use for these purposes or maybe an open source project I could add to to get this functionality. I didn't find a whole lot in my first search. I started looking at what libraries I could use to create such a beast. Oh did I mention I want it to be multi-platform? Or at least have clients on at least 2 of the 3 OS's (Windows being one of them). Having an open API for communicating with the server would be ideal. In any case, this project would be a huge undertaking. I'd like to see it happen some day, but its definitely a long-term kind of thing, not something I could write in a few months in my free time.

Today I was curious about the state of Linux music players. Last time I tried out Linux music players, the only two music players that had library features was Rhythmbox and JuK. They worked ok, but were too much in iTunes-clone category and not enough Winamp. So today I did a search for "Winamp 5 clone" and discovered two apps. Madman, which is only a music library but is pluggable with different music players. And Amarok which may just be THE music player. It has excellent music libary functionality, a database-stored collection storage, automatic album cover downloading, lyrics download (haven't tried it yet), iPod synchronization, numerous playlist features, CD ripping and burning via K3B. It even has full support for Audioscrobbler, which is a free online service which uses your listening statistics to match you with other people with similar music tastes and generate personalized recommendations. I'm currently using Amarok, and it is giving me pretty accurate suggestions about music that I have in my collection based on the song that I'm currently playing.

I'm pretty sure this is going to be my music player for a while (at least for home). It's not quite the player I had envisioned, but is pretty close. I'll probably start looking at the source code and see what possibilities it has. In any case, it is an amazing player and is as good as if not better than Winamp and it runs on Linux. I can't complain.

Reply

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <b> <dd> <dl> <dt> <i> <li> <ol> <u> <ul> <pre> <strong>
  • Lines and paragraphs break automatically.
  • You may post PHP code. You should include <?php ?> tags.
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
3 + 10 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.