Network TV needs more Walker, Texas Ranger [1]

I can’t believe it’s been over a month since my last post. So here’s a long one to document some of the latest Banshee happenings.

Banshee Core

  • Updated plugin architecture, complete with a plugin management and configuration dialog.
  • Sources have been beefed up, have been abstracted from the view, and are available to plugins now.
  • Playlists were rewritten, are much faster, and what a shock: reordering works properly now.

Plugin Manager Dialog

Banshee 0.10.3 will ship with the first four official plugins, outlined below. If you are interested in writing plugins, I have written some early documentation as a guide.

DAAP

Banshee has full DAAP client support now, and is implemented entirely as a plugin. DAAP shares will show up as sources, and activating them will initiate a connection (and prompt for a login if necessary). Songs in the share will populate the view, and can be played like any other song, much like any other DAAP client/player.

Playing a song over DAAP works with any media engine however, including GStreamer 0.8, GStreamer 0.10, Helix/RealPlayer, and VLC. I managed this by creating a “proxy” HTTP server that listens for requests and streams a song from a DAAP database over HTTP. I also added a very light weight web-based interface that lets you browse shares and download songs over a web browser… probably not that useful, but cute nonetheless.

Also, if you have the right decoder in GStreamer, you can actually burn a CD directly from a DAAP share. The song is streamed from the DAAP server, proxied over HTTP to GStreamer, and transcoded on the fly.

I should have server support in HEAD today or tomorrow. And lastly, a big thanks to snorp for his awesome work on daap-sharp.

DAAP Login Dialog

It’s a little hard to show a screenshot of a DAAP client…

Automated Cover Art Fetching and Metadata Supplementing

This has been a highly requested feature, and is now implemented as a plugin. If enabled, the plugin will scan your library and search for cover art and supplementary metadata using MusicBrainz. When new tracks are added to the library, they are added to the processing queue for scanning.

The plugin has three modes:

  • Fetch covers only: this mode is the fastest as it will only perform one lookup per album. However, it does not attempt to correct or supplement metadata
  • Fetch covers and fill in missing metadata: This will fetch covers on a track-by-track basis, so it is much slower than the first method, but it will also fill in missing fields (for instance, you are missing track names, counts, etc.)
  • Fetch covers and overwrite existing metadata: Same as the previous, but it will overwrite all fields with metadata returned from the server. While this is excellent most of the time, there is a chance that the server will return an inaccurate result, which can totally screw up your tracks.

The default mode is to fetch only cover art.

Audioscrobbler

A big thanks to toshok, who a few weeks ago wrote basic Audioscrobbler support, which was abstracted enough to finally make me bite the bullet and add proper plugin support. The timing was perfect as I had already been reorganizing much of the codebase. After a light refactor on the plugin entry point and some cooking of a basic account/configuration dialog, we have Audioscrobbler support! Also a big thanks to Ruben Vermeersch, who submitted a nice queue saving/restoring patch, so it works in offline (or broken server) mode too.

Audioscrobbler Account Dialog

File System Monitoring

A few months ago, Doğacan Güney wrote file system monitoring for Banshee, which adds new songs to the library that are added to the music directory and removes songs from the library that are removed from the file system. I have refactored this code a bit to take advantage of new library features in the core, and work with the new plugin system. It tries to use Inotify first, and then falls back on FAM.

Other non-plugin stuff

About a month ago I added some gedit-esq notification for Audio CD metadata searching. It reports the status of the lookup, whether or not a lookup was possible or failed, or if you are offline (as reported by NetworkManager, if available). If the lookup failed, timed out, etc, there is an option to manually refresh. However, it will automatically refresh if NetworkManager reports a connection is available.

No CD results found

Finally, I added a nice “tooltip” to the tray icon. I’ll probably be flamed for it though. Say what you will, I find it incredibly useful.

Tray Tooltip

If you want more candy, view the scratch pad of recent screenshots.

So that’s the update for now… I will make the 0.10.3 release by the end of this week. Oh yeah, EXCELLENT news about FC5+Mono!

[1] Quote from Brad. It also needs to be available with the almighty lever.

17 Replies to “Network TV needs more Walker, Texas Ranger [1]”

  1. Nice work! Banshee is looking very good, congrats. Small rant: I still miss a graphical equalizer. ;)

  2. Excellent stuff. However… the cover image data on musicbrainz.org uses the Amazon Web Services stuff, and it seems that you are only allowed to cache these “Amazon Properties” up to 24 hours, some up to 1 month (cover images apparently fall under the 24 hour rule).

    See http://www.amazon.com/gp/browse.html/104-1972107-9827959?_encoding=UTF8&node=3440661&no=15879911&me=A36L942TSJ2AJA

    Please check yourself, I’m not 100% sure about this. And of course IANAL.

  3. Thanks for all the hard work providing a decent music player for GNOME, I’m trying to kick the amaroK habit.

    My big complaint with Banshee at the moment is that it is really impossible to manage all of your music when you are like me and have approx 6000 songs in your playlist the interface for Banshee really gets somewhat useless. This humongous list and a search bar really isn’t enough.
    amaroK and iTunes has gotten it partially right, at least it makes it somewhat possible to handle.

    I also have a little question, what does the banshee project think of rhythmbox? Aren’t you in many ways duplicating work, and is the main reason the never ending Mono controversy?

    Anyway, thanks and keep up the good work :)

  4. I’m wondering the same thing as ESA. The stuff you are doing with Banshee looks absolutely fantastic, but I wish it were clearer what the big differences are between Rhythmbox, Muine, and Banshee. I would hate to have a situation like with the KDE text editors.

    Perhaps you could write a post explaining the differences in focus and features.

  5. Muine seems like it’s trying to be a different type of music player (is it even activily developed?) while rythmbox and banshee are clearly aimed at the same space. Right now I use rythmbox but banshee appears to be getting developed so much quicker, I’m sure partly due to mono. So I think I’ll be swithing next Linux upgrade.

    Banshee really looks sweet, great work!

  6. I’ve really enjoyed watching Banshee grow-up from it’s humble beginnings as sonance (I still like that name better… heh). Personally I actively play with both Rhythmbox and Banshee… but Banshee will almost certainly win the race for me. I’m a big fan of mono.

  7. Thanks for the comments everyone… too bad word press doesn’t allow “replies” (or maybe there’s a plugin and I just don’t care enough).

    To Colin: I was loosely aware of that, but we’ll figure something out.

    To ESA and Phil: This question is asked all too often, and I’ve been meaning to post about it. As for “Mono controversy,” I absolutely hate that term. That horse has been beaten. You’re either supportive, or you’re not. It’s not going away, so deal with it (or don’t, but I’m tired of hearing about it). There’s no controversy, just twisted perception. (Apologies if that comes across brusque, it just touches a worn out nerve).

    At the heart of the project, of course there is “duplication.” There are some common goals, and some not-so-common goals. But the only actual common “link” is GStreamer.

    Muine is cute, but has been pretty dead for quite a few months. I think latexer is starting to take over maintainership, at least for behind-the-UI stuff. I hope the project does pick up; it was a shame that it pretty much stalled.

    As for the 6000 song issue: yes, there is a performance limit that needs to be overcome. The solution is a custom tree model that maps to the data stores, which is impossible to implement in Gtk# at the moment. A solution will be found however. I will probably end up doing it in C.

    To Jeff: *AWESOME* I hope I can make it out to the mountains soon for a nice ASU party.

    And to joe: chucknorrisfacts.com made my night. That was great. I was going to buy the t-shirt, but it sucks.

  8. Thanks a lot for this great application.
    Is it planned to have a artist/album browser ala iTunes/Rhythbox ? that’s the only reason why I use Rhythmbox over Banshee right now … I simply can’t manage my songs with only the flat list and the search box. Performance is not a problem here (~3000 songs).

  9. There is a patch for a very nice browser mode flying around, dunno why aaron is not committing it :/ please get it into 0.10.3, banshee would *greatly* benefit from it!

  10. Abock I love you ;)
    My dad watch every evening walker texas ranger, and now I must see he also here, it’s a nightmare…I’m just kidding :)

    I’ve the same request of YAN, I think one of the best way to find something in a big library is the genre/artist/album browser…if you add this…when can I buy your poster ;)

    Mhm…I will try another time banshee+iPod when possible, one of the most beautiful thing I lost with banshee is the cover on iPod…I hope this will be added soon ;)

    PS: You and banshee rock! Sorry for the feature requests :D

  11. OOhhh… :-) That’s some fancy good looking stuff. I’m looking forward to it, and I like the tool tip thing. Will it automatically pop-up when the song changes?

Comments are closed.