Banshee 1.0 Alpha 3

Two weeks to the day after the fantastic Alpha 2 release, I’m pleased to announce our third and most spectacular release, quickly leading up to the final Banshee 1.0.

The Banshee logo

Introducing Hardware Support

I landed my new hardware layer in Banshee’s core just a few days after the Alpha 2 release. This layer allows us to interact with hardware in a platform agnostic manner. Currently we’ve only implemented a HAL backend, but this separation layer should make it relatively easy to implement Windows and OS X hardware support. We’re only focused on supporting the kinds of hardware that we’ll need to handle in Banshee of course – this layer is by no means a general solution to platform agnostic hardware support.

So what kinds of hardware do we support?

Audio CD Playback and Ripping

Alpha 3 builds on the new hardware layer by adding full audio CD playback and ripping. We are now using Scott’s new managed MusicBrainz library which uses the new XML protocol from MusicBrainz.

Because of this, we can now store a slew of extra metadata in the database and directly in the ripped files as read from MusicBrainz, including the full album release date, the track artist and album artist tags, and all of the associated MusicBrainz IDs, along with the standard metadata we’ve always stored.

The next release will introduce some additional features for nice audio CD support.

USB Mass Storage Support

Gabriel also implemented support for syncing USB Mass Storage Digital Audio Players. This is the first media player device class that we’ve implemented for 1.0, but we are working on MTP/PlaysForSure support in parallel. MTP support is currently not as complete as USB Mass Storage, but we expect to have both completed for the next release. If you have a USB Mass Storage device though, you should be mostly set with this release. We’ll add iPod support back after we finish MTP.

Experimental Shuffle UI

Scott created a mockup of a new UI for enabling shuffle playback modes. I’ve never seen anything quite like it, but it grew on my very quickly and the metaphor makes sense. However, we’re a little concerned about the general discoverability of the feature. We’ve decided to keep it in for a few releases to gather some feedback. However, if you’re reading this, you’re probably tainted on providing good discoverability feedback since I’m about to tell you what it is and how to access it — but of course all feedback is welcome!

New Shuffle Mode UI

The basic idea is that the next action implies acting upon the model via some rule – the shuffle mode. Shuffle can either be “off” or “by song” (and soon “by album” and “by artist”, among others). So Scott decided to group the shuffle mode UI with the next button. I guess the good thing for the discoverability issue is that the UI is exactly the same that is used in web browsers, particularly Firefox with the grouping of Next with a History menu.

Last night, Gabriel and Scott apparently pulled all-nighters and managed to fix a large handful of bugs — one of which included implementing smarter shuffle logic. Now Banshee will never play songs you’ve already heard on shuffle or songs you’ve skipped.

Performance Improvements and Bug Fixes

While fixing some DPI issues with the way we were using Pango and Cairo, I saw some areas that needed some performance work. I managed to make text rendering in our managed list view about 160% faster. You can actually feel the difference. Awesome. Oh, and yes, the view now respects your system DPI settings, and even properly adjusts to DPI changes while Banshee is running.

On the whole, we managed to close 46 bugs since the Alpha 2 release. Not bad for two weeks of work, on top of implementing a slew of large new features!

I also spent some much needed time cleaning up and organizing the libbanshee C code, which is where our GStreamer layer is implemented. In the process a few bugs were fixed and the code is now much easier to maintain.

Podcasting and DAAP

Alex Hixon has been working on porting the DAAP client feature to the new code base, and Mike Urbanski checked in his new Podcast code. These features are both still under heavy development, so we’ve turned them off by default in the build. I’ll discuss them both in more detail when we release with the features turned on – hopefully in just a couple short weeks. A big thanks to both Alex and Mike for their hard work in these areas.

Other Banshee Things

  • I realized a few weeks ago that I never announced to the world Planet Banshee, which has technically been around for about a year now. It’s just a planet site like all the others to aggregate the blogs of Banshee contributors. Follow along if you’re interested. We’re also looking for more people to add. If you’re contributing in the Banshee world, let me know if you want your blog added.

  • Will Farrington beat everyone to blogging about this Alpha 3 release, so check what he has to say – a great post.

  • LugRadio USA – Tomorrow I’m headed out to San Francisco to give a talk about all of this great new Banshee stuff on Saturday, among um, other things. If you are not planning on attending, it’s not too late to travel! Do everything you can to make it there. Regardless of any expense incurred, it’s sure to be a blast, and the event itself is only $10.

Digg It!

16 Replies to “Banshee 1.0 Alpha 3”

  1. For MTP on Linux, I’d recommend using the new gphoto2 gvfs backend. It supports both read/write and can be accessed through standard gio API’s. The main reason for doing this is that all IO happens out of process and more than one application can access the device (e.g. the Nautilus, Banshee and F-Spot) at the same time which I guess is somewhat preferable as them fancy MTP devices can store both photos, videos, music, contacts and whatever.

    (Oh, and I’m also planning to expose the battery level of the device (somehow) for the GVFS that lands in 2.24)

  2. Yall have done a great job with Banshee!

    Yall really need to start releasing Banshee for Windows. ITunes sucks. But I am forced to use Windows for work most of the time. I would much rather be using Banshee and telling friends about it than using ITunes…

  3. Banshee crew,

    I used to be a sworn rhythmbox supporter, but out of curiosity tried out the alpha 1 release when it was released. I’ve found that all my previous issues with Banshee have been resolved, and that you’ve either already introduced or are quickly working on all my “desired” features. I think I’m a permanent Banshee convert now!

    Keep up the fantastic work!

  4. @David – interesting that you say so. We actually switched from gphoto2 to libmtp due to just way too many problems with gphoto2’s MTP support. We’ve had much better success with libmtp, but I’m quite curious about these new happenings with GIO and gphoto2. Though the issues we had were with MTP itself most of the times – not sure what GIO support would give us there. We’ll definitely look into it.

    @Iggy – Banshee actually runs well on Windows at this point, but there are a few small pieces missing, and we haven’t yet set up an environment to properly produce release builds with an installer. We expect to have all those pieces in place by the final 1.0 release! I’m excited about it, and can’t wait to see Banshee on Windows – hopefully it will be a compelling story to help Windows -> Linux migration.

    @nyall – That’s excellent news :) We keep trying, so keep following along. Join our community and help drive the development of Banshee!

  5. The new shuffle UI is awesome, Aaron! I’m using it for a few days now and guess what, it actually made me /use/ the shuffle mode at all. It looks great: a discreet change in the main UI but at the same time very discoverable. And I really like the fact that it changes the forward icon to a shuffle icon, because before there was no way of telling shuffle was active by looking at the top half of the screen.

    In all, this is a damn fine release!

    Sure there are some missing ends but I don’t currently miss anything. Video Podcasting will surely be nice ;)

    The only thing I’m remotely concerned about is memory usage/leaks, specifically bugs 526911 and 523646. Each of those can potentially grow the banshee process to hundreds of megs of RAM, which is bad especially because of the bad publicity mono had in the past because of this.

    Anyway: /great/ release, thanks a lot! Banshee makes listening to music fun again :D

  6. The shuffle thing is pretty neat. However, the by artist/song/album is really just a shortcut to shuffle with search by matching artist/album. It seems to me the interface should respect this: i.e using the shuffle by album should turn shuffle on and then search by album.

    The problem if you don’t do this is what happens if you have shuffle by album or artist turned on, and then you search for a different album or artist? The resulting next song is not obvious; should banshee carry on shuffling the artist you originally set it to (and disregard the search), or should it now shuffle with the new album, and if so what if the search was by artist and the shuffle by album. Or should banshee abandon the shuffle and revert back to simple linear play mode?

    I think that the shuffle by,,. is an interesting idea, but it should be incorporated carefully.

    Good work on Banshee, its a fantastic piece of software!

  7. Hey Aaron, how about a build for the PPA debian repository? It still holds a random SVN build.

  8. Love the shuffle and the constant fine-tuning of the Banshee UI: more functionality with every release, yet a delightful simple user interface with well thought out widgets. There’s nothing that comes close to it!

  9. The new Banshee is awesome, but I really miss the Internet Radio extension. I use it every day, so I have to use the old Banshee at the moment.

    But nevertheless, keep up the good work!

  10. Here is my idea for shuffle:
    Add individual icons for every shuffle mode (“off” would be gray, “by artist” would be normal, “by song” would be normal and feature a single note as a smaller icon, “by album” would be normal and feature a cd-sleeve or multiple notes). This way, I could always see if shuffle is enabled and which mode exactly – just by looking at the icon.

    But the rest just looks perfect. Oh man I really love you guys.

  11. aaron, great work as usually. I am very impressed with the development rate, and to help out, here is a small suggestion I would like to make.

    I like to hover the cursor over the banshee icon in the notification area and use the mouse wheel to scroll for the next or previous song. Now, when I do that I get two notification bubbles, the one that displays the track info and the one that popup when I change the song (with the button “skip this item”); they overlap.

    I think there is no need for the bubble (with the button “skip this item”) if you’re using the scroll-wheel to skip songs. thanks

  12. If button is drawn in notification in an ugly way – it’s notification daemon’s theme issue.

    overlaping buttons will go away in opensuse, if you change the theme from bubble to standard (in gconf-editor under /apps/notification-daemon).

  13. A truly fine release, and the shuffle innovation is a great idea!

    I must say, that as a rhythmbox fan, banshee is becoming a very tempting alternative!

    But, there is still one thing holding me back: Banshee’s handling of compilation albums.

    In Rhythmbox I can select an compilation album in the album browser and it will play it’s music and fetch its coverart just fine.

    Banshee however, thinks it’s a good idea to split every album by artist, thus creating a lot of single track albums in album browser, and ruining any chance of finding a cover.

    If you’d fix this, I would propably be hooked on Banshee!

  14. Will there be a way to disable all the video playback features/options. I really like Banshee for being a great music player – now it’s becoming something more than that – which is not necessarily a bad thing – but I’m also concerned w/ memory footprint.

Comments are closed.