openSUSE 11.4 and Banshee: Amazon MP3

Great news! openSUSE 11.4 was just released, and it’s loaded with goodies! I am of course most excited about the inclusion of Banshee 1.9.3 with full Amazon MP3 store support included out of the box.

Banshee Amazon MP3 support in openSUSE 11.4
Within seconds after the 11.4 installation, I had made my first Amazon MP3 purchase.

In openSUSE, 100% (not 25%) of referral revenue generated by Banshee’s Amazon MP3 support goes directly to the GNOME Foundation. 100%. What are you waiting for? Install openSUSE 11.4 and start buying music – an easy way to help Free Software!

You can even help GNOME by shopping with Amazon through your usual browser. No excuses!

openSUSE 11.4 is out!

Changing Roles

About 6 years ago I started working for Novell to develop Banshee into much of what it has become today. I’m quite fond its evolution, but perhaps more proud of its community. As is likely obvious, I have not been too technically involved with Banshee over the past year. The last major thing I developed to production was the Amazon MP3 store integration and downloader, which was over the summer of 2010 (and is currently bringing in a respectable amount of revenue to the GNOME foundation!); yet Banshee has kept on growing – at a fantastic and exciting rate. This is all thanks to the numerous people actively and passionately involved in the project.

Over the last two years I found my duties leaning much more towards the Linux distribution side of things at Novell – specifically engineering of SUSE MeeGo this year, and SUSE Moblin the year before. My hands were in pretty much every aspect of the projects, and I found myself working closely with so many great people, many with whom I had not previously worked. This includes talent from both Novell and Intel.

Out of the MeeGo project arose an opportunity for Banshee as well. Working closely with the team at Intel, it became the default and integrated media player not just for our SUSE version, but also for Intel’s reference version of MeeGo for netbooks.

Recently I found myself faced with an opportunity to work with a new set of talented people on something fresh. Today was my last day at Novell, and next week I will be starting at Rdio, where I expect to take Banshee into yet another new direction. I’m excited about the possibilities ahead, but will save my thoughts for another time.

I’ve been a happy Rdio user for quite some time, and have been very inspired by its fresh and unique take on a few aspects of media playback and management. And while there’s much I’d like to do in Banshee that Rdio is already doing, there’s perhaps even more I’d like to see Rdio doing that Banshee does. It will be an exciting time to come, and I’m eager to jump in.

I intend to continue to be involved in Banshee as an application and community. I am looking forward to again spending more time in the project. Similarly, you won’t find me leaving the GNOME and openSUSE communities I’ve grown quite fond of over the years. Apologies for that!

As I write this I am headed to FOSDEM, and I am very much looking forward to seeing so many great people again, and I look forward to the times in the future where we will continue to meet, preferably over copious amounts of beer!

Miguel calls this the new "abock lolcat."
The only problem is that it’s a dog! But this is fine with me…

Announcing Banshee 1.7.3

The Banshee logo We’re very proud to announce the release of Banshee 1.7.3, which brings some much anticipated WebKit goodness: the Amazon MP3 Store and the Miro Podcast Directory integration. Amazon MP3 downloading is fully supported, separate from the integrated store itself. There are also a handful of other smaller new features and enhancements, and a good deal of bug fixing as well.

Download Now

Amazon MP3 Store

This new extension provides a source from which users can browse, search, preview, purchase, and download music from the Amazon MP3 store in all countries where it is offered: United States, United Kingdom, France, Germany, Austria, Switzerland, and Japan.

Amazon MP3 Store in Banshee
Watch the Banshee Amazon MP3 Store Screencast!

Music that is purchased through the new integrated Amazon MP3 store will automatically begin downloading and importing into the Banshee music library.

When previewing music on the Amazon MP3 store in Banshee, the previews will play through Banshee, showing up in the header, and not through Flash.

Amazon MP3 Downloader

The support for Amazon MP3 is not limited just to the store. If you decide to purchase music through your regular web browser, Amazon MP3 will provide a .amz file, a sort of playlist that indicates how the MP3s can be downloaded.

Banshee now associates itself with these .amz files and will download and import the MP3s referenced in them.

Banshee Amazon MP3 support

The Amazon MP3 Store and Downloader extensions are entirely separate. This allows you to pick your preferred user experience for purchasing music through Amazon MP3. The Amazon MP3 Store extension can be disabled if desired and the downloader will still work with an external web browser.

Other ways to download .amz files include opening manually with your operating system’s file manager, the Import Media dialog available through the Media → Import menu, or the command line client distributed with Banshee: $ bamz foo.amz. Bamz will download the .amz contents in the current directory, and will not import the MP3s into the Banshee library automatically.

For more information on the Amazon MP3 integration in Banshee 1.7.3, read my previous blog posts on the two separate extensions:

Miro Podcast Directory

Miro Guide Screenshot

Building on the same new WebKit integration in Banshee 1.7.3 as the Amazon MP3 Store, a new Miro Podcast Directory extension has been implemented. The source integrates with, allowing users to discover, stream, and subscribe to podcasts in a way never before possible in Banshee.

Much more work for tighter integration with the Miro Podcast Directory will come in future releases.

Bulk Metadata Fixup Extension

A new tool is available from the Tools → Fix Music Metadata menu item that allows for bulk metadata fixing. This feature proposes to merge artists and albums that vary only by case, & vs and, etc.

Other Enhancements

  • Visual separators were added in the source view between categories of sources: special (Now Playing, Play Queue), local media, and online services.
  • Item counts in the status bar are now culturally formatted (e.g. in en_US show 1,000 instead of 1000).
  • Improved downloading and visual refreshing of new cover art.
  • Visual tweaks to the grid view album artwork hover effect.
  • Developers:new Banshee.WebBrowser API for creating embedded WebKit web browsers and sources. Currently used by the new Amazon MP3 store, Miro Guide, and the Wikipedia context pane.
  • Developers:new Hyena.Downloader API for performing downloads and easy HTTP operations: HttpFileDownloader, HttpStringDownloader, etc.
  • Distributors:the webkit-sharp dependency was dropped, and instead we now take a dependency directly on libwebkit 1.2.2+ for the new Banshee.WebBrowser API.

Eclipse & Android SDK on openSUSE

I woke up at 6 this morning with the urge to investigate writing an Android application. I have been a mostly satisfied user of Android ever since the G1 was first launched. I even switched to T-Mobile to get one from AT&T. The sales person at the time was confused as to why I would switch carriers to get that phone.

Fast forward to this fine morning where I’ll make my first attempt at putting my own pixels on my Android device, now a Nexus One.

Unfortunately, Eclipse in openSUSE seems to be a bit out of date. However, the Android ADT Eclipse Plugin is known to not work on 3.6 anyway, so for now I am just sticking with Eclipse 3.4. Additionally, there does seem to be a packaging issue as well that you’ll need to resolve.

  • sudo zypper in eclipse java-1_6_0-sun-devel
  • sudo chgrp -Rc users /usr/share/eclipse
  • sudo chmod -Rc g+w /usr/share/eclipse

Note that I explicitly select the Sun Java devel package because Eclipse is allegedly faster using this Java implementation. If you prefer not to taint your system with proprietary software, the default-selected java-1_6_0-openjdk-devel should work just fine. The permissions fixing against /usr/share/eclipse is to make sure that Eclipse software updates work properly.

Start Eclipse, and go to Help → Software Updates and then select the Available Software tab and finally Add Site. Add the two following sites:


When both sites show up (are no longer “Pending”), check the top-level check box for the Android site to select all Android plugins, then click Install and walk through the installation wizard.

With the installation complete, quit and restart Eclipse. Go to Window → Preferences and choose the Android section. Here you need to set up your SDK. I’m assuming you’ve already installed it.

Now you can go to Window → Android SDK and AVD Manager. Select Available Packages and install the SDKs, documentation, and samples packages that interest you. I’m sticking to the 1.6 SDK I guess for now, since not many people seem to have the 2.2 goodness yet. After you install an SDK, you can then create a virtual device that targets it.

Good luck!

Mono 2.6 + MonoDevelop 2.2 on openSUSE 11.2

Fantastic news — Mono 2.6 and MonoDevelop 2.2 are out! Be sure to read the detailed Mono 2.6 release notes.

If you are running openSUSE 11.2, it’s quite simple to safely update your entire Mono stack and stay up to date with any 2.6 updates:

  • zypper ar -f -n Mono repo-mono
  • zypper mr -p 10 repo-mono
  • zypper refresh
  • zypper dup -r repo-mono

Those instructions will change the Mono distribution from openSUSE to the upstream Mono repositories.

I highly recommend installing MonoDevelop 2.2 (zypper in monodevelop), though if you already had it installed, the above will update you to the 2.2 release.

MonoDevelop 2.2 Integrated Debugger
Integrated Mono 2.6 soft debugger in MonoDevelop 2.2

A huge congratulations and thank you to the Mono team for another exceptional major Mono milestone!

UPDATE: apparently there is a problem on the x86_64 build in the openSUSE Build Service. This appears to be an OBS bug, but for this reason, it’s recommended that you use the repositories at

openSUSE 11.1 on Linode ala zypper dup

I’ve been a Linode user for around four years now, and have always run Debian, until today. Last year Linode added openSUSE 11.0 as one of the distributions available to install, and I tried it very soon after it was available. Unfortunately it could barely boot (UML related issues I assume), and without any time to poke around, I switched back to my Debian image.

This weekend I decided to try again, even though the openSUSE version from Linode is still 11.0. I figured, “I’ve never actually done a [so called] dist-upgrade in openSUSE, so maybe I should try.” I was quite impressed.

It took all of about 30 minutes to fully migrate my Debian Linode to openSUSE 11.1 – with fully working/migrated lighttpd, mysql, and git-daemon.

  • Deploy an openSUSE 11.0 distribution in your Linode, boot it.
  • Log in as root (via SSH, not LISH)
  • Nuke the 11.0 repository list: /etc/zypp/repos.d
  • Add the 11.1 base repository: zypper ar -f openSUSE-11.1
  • Update the update stack: zypper in zypper
  • Refresh the repo (probably not actually necessary, will be done automatically by the next step): zypper refresh
  • Update to openSUSE 11.1: zypper dup

At this point you will have fully migrated from openSUSE 11.0 to openSUSE 11.1, something that historically has been very difficult with SUSE. zypper is awesome! Now reboot the machine as a sanity check, and configure for updates.

  • Add the update repository: zypper ar -f openSUSE-11.1-Updates
  • Patch the 11.1 install to be fully up-to-date: zypper up

Reboot again as another sanity check. At this point you have the latest patched and stable openSUSE 11.1 on your Linode. The openSUSE base install is fairly stripped down by Linode, so I recommend installing and setting up the firewall (SuSEfirewall2), sudo, iputils, lighttpd, mysql, git-daemon, etc.

Additionally, you can easily update to the latest stable Mono release by subscribing to the official Mono OBS repository:

  • zypper ar -f Mono
  • zypper in mono-core mono-data mono-data-sqlite mono-web

So finally I am still a happy Linode user, but now with my favorite and most familiar distribution, openSUSE! I’m looking forward to playing with ASP.NET MVC on Mono 2.4. Any good MVC blog engines out there?

Droid Fonts for openSUSE

openSUSE Logo

Just a quick note that I have packaged the Droid fonts from Android for openSUSE. I’ve submitted the package to Factory so we should have them in 11.2. Droid fonts are freely available from Ascender.

Install ’em now!

Stefano Forenza has some more details on getting the most out of these delicious free fonts. Kudos!

Update: I incorrectly attributed Stefano’s post to Neil J Patel, who actually pointed out Stefano’s post on Twitter. Twitter is king! So thanks to both Stefano, and Neil for spreading the link :-)

Banshee 1.2.1 out in the wild!

The Banshee logo

Well Internets, it’s been two weeks since the last Banshee release – one packed with an impressive array of features and fixes. And so it is with immense pleasure that we present today a follow up release with many notable fixes, some love and polish, and lots of translation updates!

This release is mostly a maintenance update with 25 fixed bugs, lots of updated translations, and a few small enhancements that we’re sure will please:

  • Drag and drop albums or artists from the browser
  • New import source to aid in importing videos from your camera
  • Show cover art in Now Playing
  • Pressing play will play the first track selected if nothing is loaded
  • Pressing o on a track selection behaves the same as pressing enter
  • Include never-played tracks when querying against last played (e.g. played>"2 days ago")
  • Prefer cover art named cover/folder/front.jpg over other image files

Read the release notes for the full scoop, and download it now!

Packages are of course already available for openSUSE 11.0 and 10.3, and the other distributions will follow shortly, including Foresight, Ubuntu, Fedora, Debian, and Mandriva!

We’ll blog soon about what’s to come next, but expect another point release within the next couple of weeks. A super big thanks to all those who have contributed: translators, patchers, bug hunters, reviewers, testers, and enthusiastic users alike!

Enjoy! For now…

My Planet Needs Me

Digg It!

Banshee: and the second alpha rolls along

After just under two weeks of hard work, I hereby present Banshee 1.0 Alpha 2!

The Banshee logo

We’re going to be cranking out the releases leading up to the final 1.0 release every one to two weeks, so get used to this!

A Public Screening

You might be wondering what we can accomplish in two weeks? How about full video management and playback?

Banshee 1.0 Alpha 2: All about the video
Banshee 1.0 Alpha 2: all about the video

While the feature is very new, it’s rather complete and solid. We expect to add more goodies on top of this, and I’m sure much bug fixing and tweaking will follow, but I’m quite excited to have finally landed this. We were able to very easily add the video library management by leveraging the power of our new underlying data model.

We will be adding a slick new video collection view in the future to allow you to browse and view your video collection with thumbnails and previews.

Other notable improvements

A number of other smaller features and bug fixes landed in Alpha 2, including:

  • Play Count, Skip Count, Last Played, and Last Skipped columns are updated
  • Improved column handling in the new list view
  • The Bookmarks extension was ported to the new core
  • i18n works again
  • Improved support for dark GTK themes

For more details on the video support and other changes since Alpha 1, read the release notes. Also don’t forget to read about the previous release which has lots of new juicy feature overviews if this is your first time reading about the Banshee 1.0 alpha releases.


Digg It!

Banshee 1.0 Alpha 1

It is my immense pleasure to announce the first preview release of the next generation of Banshee. This Banshee 1.0 Alpha 1 release is a culmination of so much work by so many awesome contributors.

The Banshee logo

Now, first things first. This is going to be a long post, so let me link to the crucial bits first for the lazy enthusiasts out there:


Before I dive into the details of the release I would like to highlight few people in particular who have really spent a lot of their own time molding Banshee recently.

  • Scott Peterson – Scott has been a code and ideas machine. He’s committed huge amounts of work to many areas of the new codebase, all while going to school full time as a drama major at NYU, and working on a number of other related projects we’ll eventually sweep up into Banshee.

  • Alexander Hixon – Alex sort of came out of nowhere a couple of months ago and started hacking on the new Banshee by reviving the old Equalizer patch. Alex is also responsible for making Audio Scrobbling work again.

  • Will Farrington – Will has been hanging out in our community for a while, but a couple of months ago he started submitting patches and getting familiar with the codebase. He’s new to C# and some of the technical concepts around GTK/GNOME/Mono, but he’s been learning quickly and making valued contributions.

  • Gabriel Burt – Having Gabriel on the Desktop Team at Novell working on Banshee with me has been fantastic. We’ve made so much progress in so little time. From to our new database and Xesam/Query layers, Gabriel is at the heart of it all.

A Short History

This is the first release that shows off the hard work we’ve done on rewriting the core of Banshee. There were a number of critical flaws in previous releases due primarily to the fact that writing custom data models for the GtkTreeView was not possible until very recently in Gtk#.

We took some much needed time to redesign the database layer of Banshee to be able to deliver powerful model/query/cache level features and provide a framework to build on for years to come.

I decided to ditch the GtkTreeView and it has paid off. On top of this model sits a slick new list view rendered using Cairo. We control 100% of the drawing, so we can take this thing anywhere we want in the future – things you can only dream of with the GtkTreeView. You’ll already notice some nice GUI “bling” when using the view – try reordering columns.

With all of these core architecture changes, what we have now is a truly flexible framework for developing our prized Banshee. Here’s a somewhat dated diagram of how the different components all fit together.

That said, we still have a ton of work to do. This release does not have feature parity with previous releases. We’ve still got some more core changes to make (namely, finishing the new hardware layer) and a number of plugin features to port to the new core. See the release notes for details on what features are not yet available in this release.

Screenshot. Just one.

Banshee 1.0 Alpha 1

New Features

Just a quick overview of new features. You should really read the release notes after this.

  • Artist/Album Browser – Yes. Finally. Probably the most requested feature over the past three years has been the ability to filter a source by Artist and Album selections. The album view features glorious cover art previews, of course.

  • Listen with Peace of Mind – Now that Banshee is built on a solid data model, we can drive playback independent of what source you have in view. This means you can play a song in one source and switch to another source without having the playback switch to the new source once the song you started playing finishes. Playback continues from whatever source you start playing from.

  • The Play Queue – Really this is just a small UI layer on top of the dedicated source playback mentioned in the previous bullet. But it’s pretty nice. If the queue is populated, it forces itself to always be the dedicated playback source. Once an item plays from the queue, it is removed. When the queue is empty, playback resumes from your library.

  • Integration – is everywhere in Banshee, and we’re not done by a long shot. The radio extension will change the way you listen to music. Try it now.

  • Software Equalizer – At least it’s entertaining to play with, though it’s hard for me to be a real fan of software eq. I’m told though that it can help a lot when you’re stuck with a less than ideal sound system.


The new Banshee has loads of impressive performance improvements that really should be the subject of a separate detailed writing. With that in mind, I’ll just touch on each point.

  • Faster Startup – For me, on average it takes 1.5 seconds to fully “boot” Banshee. The key here is that startup time is no longer a function of the size of your collection. While there are still many things to optimize (just connecting to DBus appears to take about 1/5 of a second), this time is impressive compared to previous Banshee releases (startup time was proportional to the size of your library).

    For curious users, starting Banshee from the command line with the --debug argument will print a summary of exactly how the startup time breaks down. This will help us pinpoint services to improve later, leading to even faster start up.

  • Decreased Memory Footprint – Again, regardless of the size of your collection, Banshee should have a relatively constant memory footprint that is much reduced from what you might be used to with previous Banshee releases. I’ll talk numbers in a separate post.

Try it now!

One huge thing to note about this release, and all releases to follow – it can be installed and used in parallel with previous Banshee releases. This means you can try the new stuff out without ditching the old! So there should be nothing stopping you from trying it!

Your existing Banshee library will first be copied and then migrated to the new database format. While it is not backwards compatible, the new releases will not mutate any data used by previous Banshee releases.

It’s safe to package, install, and use side-by-side with previous releases. I will be submitting the new release to openSUSE 11 tomorrow and we may ship with both package sets, depending on when we actually can make the final 1.0 feature parity release. I say this to emphasize it’s safe to use… now.

More to come

We’ve got so much more planned. Remember, this is just the first alpha release leading up to the 1.0 release. What will that be? As soon as we reach feature parity with our current stable series – that’s when – and it’s not too far off either. In the mean time we’ll also be adding new features, so stay tuned, and try the releases.

UPDATE: I forgot to mention some resources on the Banshee Wiki that might be useful for those who want to dive in and try this preview release from source tarball or trunk. Quite important, these links!

Digg It