Introducing: Simplify Media
Listen to Your Music, and Your Friends' Music, Wherever You Are
After a decade of converting every piece of music I've purchased into digital formats and (lately) buying digital music directly and skipping the CD step altogether, managing my music library has gotten to be a big chore. It's easy enough to organize my music library on a single computer, but it's been years since I had just a single computer. My music files are more or less together on my home file server, but then there's my wife's collection on her iMac. There's also the fact that I don't use my file server as an everyday desktop machine. My laptop is the machine you can usually find me behind while at home. The reason my music is on the fileserver is because of space, it has the room to keep it all together. The issue then is to make my large and growing audio collection available to all of the computers I use. At home this is easy thanks to a protocol called DAAP.
For years now there's been a way to share music across a local network. The technology is called "Digital Audio Access Protocol" or DAAP. This protocol is proprietary to Apple. They created it to allow their iTunes software to stream music to other iTunes clients around a home, office, or other local network. DAAP has been reverse engineered and implementations can be found in most open source media players to allow them to both connect and share to other DAAP clients.
One big limitation that DAAP has is that it doesn't work outside of a local network. Early versions of the protocol as implemented in iTunes did allow sharing across the Internet, but this functionality was removed in later versions. Other limitations have also crept in, such as the current limitation that only five clients may connect to your iTunes DAAP share within a 24-hour period. Moves like this, likely implemented due to pressure from the Record Labels, gives DAAP the dubious distinction of being one of the few protocols that has become less functional as new versions of it have been released.
Fortunately, open source implementations of DAAP have strayed from the path of the official version by retaining, wherever possible, features that have been taken out, and by implementing new features where possible while trying to keep compatibility with iTunes. One of these implementations is called SimplifyMedia.
Simplify Media has focused its attention on one of my most desired DAAP features: Internet sharing of my music. I want this feature primarily so that I don't have to maintain a copy of my music on every computer I own. I often work with music piping through headphones to drown out background chatter and help me focus on what I'm doing, but I don't necessarily feel like listening to the same thing every day, so as big a selection as possible is a good thing. With Simplify Media I can keep my music organized in one place and listen to it from anywhere.
Installing Simplify Media
The Simplify Media website has downloads for Windows, Mac OS X, the iPhone, and Ubuntu 8.04. There are complete instructions for each version to get you started. For the Ubuntu 8.04 version, you download a tar.gz file.
After untarring the file you will have a folder called "simplifymedia". Inside this folder is a program called "SimplifyMedia" and some other miscellaneous supporting files and a folder called "rhythmbox_Ubuntu_8_04". The simplifymedia folder can be placed anywhere. I put it in my /opt folder.
Before running "SimplifyMedia" for the first time, you need to install the Rhythmbox plugin. This is done by running the "install_rhythmbox_daap.sh" script that is in the "rhythmbox_Ubuntu_8_04" folder. This script copies the Simplify Media daap plugin to ~/.gnome2/rhythmbox/plugins/.
Once the plugin is installed, launch the SimplifyMedia program by either double clicking on it, or launch it from the command line with /opt/simplifymedia/SimplifyMedia . When launched for the first time, Simplify Media will start up a setup wizard that will prompt you to set up an account or login to an existing account.
Using Simplify Media
After signing up for a new account or logging in to an existing account the main window will appear. The main window has two tabs: Status and Messages. The Status tab shows all of the friends that are connected and which systems those friends have online. There's an invite button that you can use to connect to other Simplify Media users or to send an email invitation to friends that aren't yet running Simplify Media. Invitations work similarly to friend requests on Facebook and other social sites — both parties have to agree to the invitation before either one can see the other's music.
One nice feature is the built-in chat client that let's you chat with friends that are signed in to Simplify Media. The chat client is simple, but it works. To chat with a friend, you just click on their name and a little pop-up menu will appear with the options "Start Chat" and "Delete User". Click on "Start Chat" and the chat window will appear and you can begin chatting. Dedicated chat programs like Pidgin are better suited for regular chatting, but this feature is very handy in a pinch.
You're limited to connecting to 30 friends. This limitation was probably put in place to hold off any claims of large-scale copyright infringement. If the limit did not exist I could see people sending out hundreds of invitations and trying to connect to as many people as possible. The 30 friend limit is plenty large for me, it allows enough for me to connect to all of my family members and friends without worrying about running out.
The Options window lets you configure how Simplify Media works on each computer you have it running on. The Account tab lets you change your password. The Computer tab is where you specify the name that appears in the main window and in Rhythmbox. It is also where you specify language and logging preferences. The Sharing tab has one pair of radio boxes where you set whether the machine you are on is only a client (in other words: not sharing anything) or if it is both a client and server. If you tick the "My Music folder" radio button a box will appear that let's you specify the folder or folders that you want to share. When you add or remove a folder you need to restart the Simplify Media client so that it can reindex the music. Lastly, the "Delete Users" tab is just for that — removing users that are allowed to connect to you. Note that when you delete a user you also lose your ability to connect to them.
Now that Simplify Media is all configured and running, start RhythmBox and you will see your computer listed as <username>-<share name> (for example: myusername-laptop) in the "Shared" section of the sidebar. Any friends that you set up will also be listed if they have Simplify Media running and they have confirmed on their end that you are allowed to connect to their music.
Issues with Simplify Media
Simplify Media is not without issues, especially considering the beta nature of the project. Many of the issues are because of latency or other network problems outside of their control, but they can dampen the usefulness of Simplify Media.
First off, there is a delay before Rhythmbox starts playing shared music and between songs because of the way it handles streaming. When it comes time to play a song Rhythmbox will start fetching it from the remote server — not before — and it will wait until the streaming buffer is full to start playing the music. There are a couple ways to work around this, and you can use one or both. Both are located on the "Playback" tab of the Preferences window for Rhythmbox. The first is to lower the "Network Buffer Size". When slid all the way to the right, Rhythmbox will download a megabyte before starting to play. If your connection to the remote computer is solid, you can safely lower the buffer all the way to its lowest setting (32kB). The second is to enable the crossfading backend and then to set the crossfade duration to an appropriate level. In my testing when streaming to my Ubuntu laptop via a wireless connection, setting the crossfade to 8 seconds made for nearly gap-less playback between most songs, which for me was just about perfect. It didn't always work, depending on the songs. Experiment to find a setting that works for you.
Since the music is streaming over the network, skipping around in the file doesn't work well at best, and at worst it is a good way to get Rhythmbox to crash. The progress bar that tracks where you are at in a song sometimes doesn't reflect reality — it worked well for the most part but it tended to stop moving as it got closer to the end of a song — but the music kept playing so I didn't worry about it.
One thing that would be nice is if you were allowed you to create save-able playlists of shared media. You can drag the songs you want to hear into the Play Queue, but that's it for playlist support. You can toggle the display of the queue in the sidebar or as a playlist in the main pane with <ctrl>+k or through the View menu. You can fill your queue with music from different friends and computers.
Another issue is one that Simplify Media can't do much about and that is bandwidth. Streaming music takes bandwidth, there's no way around it. This makes it not as useful at overloaded public wifi access points where the connection slows to a trickle or is intermittent. In such cases the music will stutter or stop altogether.
The last issue I want to mention is also the biggest for me: Simplify Media can only stream mp3 files. My flac and ogg files are sadly missing along with other formats like Apple Lossless, m4a, and m4p (iTunes' DRM encumbered m4a audio files). I hope support for other formats gets rolled into future releases, but for now it is an mp3-only product.
There's no getting around it, being able to listen to the music I want to listen to, even when it is located on five different computers hundreds of miles apart is really cool, when it works. I can also check out the music friends and family members have on their computers, which can be a good way to discover new music. I have to be careful that I don't disrupt their internet connection, I don't want to annoy friends and family just so I can listen to their Enya collection.
I would like the ability to listen to my music on my phone and while the iPhone client is nice, I don't see myself getting one of those any time soon. The iPhone is too closed and proprietary for my tastes. More than likely my next phone will either be an OpenMoko FreeRunner or something running Google's Android platform, so I hope that the Simplify Media folks will release clients for those platforms. Actually, whichever of those two platforms gets a client first will probably help make up my mind on which one to get. hint, hint
As a final final thought, Simplify Media is a nice addition to Rhythmbox, which happens to be my primary music player on Linux, so I'm all set. However, many people prefer other music players such as Amarok or Banshee. For the sake of those out there who don't like Rhythmbox, I hope the developers have plugins for other Linux audio players on their to-do list.
Now if you'll excuse me, this awesome song that is sitting on my computer at work just started playing and I want to listen to the chorus without distractions.