Oh Right, Rubedo

Wow, it’s been a long time since I’ve worked on or spoken about Rubedo. Actually, I recently gave a microtalk at RubyConf’s RejectConf on Rubedo, and that sparked a bit of interest from the crowd. I took a day today and brought together a bunch of ideas and fixes that have gathered over the past 10 months since the last release, and made another one. Download it off of Rubyforge.

Rubedo is a radio app, written in Ruby and Camping, that streams over Icecast with a web admin frontend. It’s designed for offices, maybe IRC rooms, any kind of community. Tell it a directory full of music to sit on top of, and it will feed them to your Icecast server. Searching and queueing up songs is easy, and there’s no concept of users or security. Mock your friends and coworkers for their terrible music, and freely remove their choices from the queue. You can also download the song that’s currently playing, though this can be disabled if it make you nervous.

You’ll need to install your own Icecast server, SQLite3, and most importantly, libshout/libogg/libvorbis. You can probably only do this on Linux/BSD, but I almost got it working on OS X when I tried in the summer, and I haven’t tried Leopard yet.

Rubedo 1.2 is really the only version of Rubedo I’m comfortable with you downloading. Stability is greatly improved from 1.1, and it has a ton of new features, including:

  • OGG support
  • An in-browser Flash player (MP3s only)
  • Prettier stylingz in placez
  • Ability to remove songs from the queue
  • Better searching (searches filename and directories)

For a full list, read the Changelog. I should mention that OGG support is necessarily troublesome, because Icecast streams can only be one format at a time. You can queue up MP3s and OGGs next to each other, but the switch will likely cause your client to hiccup along with the stream, and force listeners to reconnect. OGGs are colored green on the frontend to help you manage this. Of course, if your collection is entirely OGGs or entirely MP3s, you’re all set.

We use it here at thoughtbot to play our music for each other, and ridicule those who don’t share our tastes. It’s social, and for the next release, 1.3, I’d like to add a bevy of features to make it more so. What I want to know is, does this kind of an app look fun or useful to anybody outside of thoughtbot? Is it too heavy, with too many dependencies? Does it lack in features? Or is it actually pretty sweet?

Happy continuing holidays!

Sharpen your programming skills by completing coding exercises that are reviewed by other developers at Upcase today.