2012-07-04

Hackfest in the USA

I'm now in New York, trying to catch my breath after an intense week in Boston. I was happy to attend the aptly named "GNOME & Mono Festival of Love 2012" hackfest.

It was really nice to see some of the usual suspects, especially the Xamarin gang, and it was great to meet some new people. At long last, I was able to finally meet Alexander who has been co-maintaining Banshee with us in the past years.

All other attendees were quite busy, and I was able to get some stuff done, although not as much as I had hoped.

After looking a few Banshee bugs and merging a patch from our GSoC student Timo I then moved to GTK# 3, trying to process some parts of the code marked as FIXME. When I ran the gtk3 branch of Banshee, I then saw that something was horribly wrong: the track, album and artist lists were completely blank. After quite some time spent investigating this, it turns out this is a regression in GTK+ 3.4. You can see the bug I filed about this issue. If anyone wants to help and are more familiar with C than me, converting my test case to C would probably be helpful. Fixing the bug would be even better.

In the meantime, Andreia was making great progress on using the information provided by GObject introspection (GIR files) to generate C# bindings. While I was recompiling gtk+ again and again, we were able to discuss our general strategy, together with Alan McGovern. The idea is to keep the current approach for the gtk-sharp package (which includes glib, gdk, cairo, pango, gio, atk and gtk) as we're quite close to a preliminary 2.99 release. Andreia's work will be used at first for libraries which don't have any bindings yet. In the future, we'll probably switch gtk-sharp to use the GIR files, preserving API compatibility.

On the last day, I looked into using the GStreamer SDK with Banshee. My current plan is to use the native binaries provided by the SDK on Windows, to improve our current build process and hopefully provide a more reliable Banshee on Windows.

Getting stuff done is great, but I think what I love the most about hackfests is all the opportunities to help each other. I'm happy I was able to help Jared with some data structure issue with his Tomboy OSX port, answer various questions from our Google Summer of Code students, assist Stephen with build issues with F-Spot, and even fix a grammar mistake in a commit message written by an American...

And of course, I'd like to thank everyone who help me during this week ! I would also like to thank David for organizing this hackfest. If you want more details on what happened during the week, go read his posts.

And also, big thanks to to our sponsors !
For providing us with a great venue:

For sponsoring travel a board for attendees:


For providing us with goodies:

I really hope we'll be able to have other hackfests like that in the future !

2011-09-22

Banshee 2.2, something for everyone

Yesterday we released Banshee 2.2. It's the result of six months of hard work by 35 developers, 38 translators and countless bug reporters, tester, packagers, and just nice people.

Of course it comes with new features and enhancements :
  • eMusic store
  • support for the Nook
  • ability to preload default radio stations
  • several new Android device supported
  • a new "Smiley Face Curve" default equalizer
  • Lots more ! And bug fixes !
Check out the release notes for more details.

I'm particularly happy about the ability to preload default radio stations. In the 0.x series, Banshee used to ship with a set of default radio stations, but those were a pain to maintain, so that was dropped during the refactoring that lead to 1.0. This was of course not ideal either, so a bug about that was lingering for quite some time.

Then Martin Pitt came up with an idea, along with a patch : when Banshee first starts, just read any XSPF files from DATADIR/stations/ (usually /usr/share/banshee/stations) and import their content as radio stations.

As Martin mentions, this allows distros or admins to provide the default stations they want just by installing one or more files, and those stations can be locale or region specific. I think this is a nice solution, but maybe it's just because we don't have to do anything... ;)

This release is available in lots of shapes and sizes, all accessible through our download page :
This release also marks the first anniversary of our most beloved feature, the Amazon store integration. During that year, over $9000 USD have been contributed directly to the GNOME Foundation. And we have learned that apparently most people don't buy music in August.

With a new Banshee release comes a new version of our Community Extensions. It brings two new extensions (AlbumArtWriter and DuplicateSongDetector), along with several enhancements and bugfixes to existing extensions (more details here). The project on gitorious now brings together 23 extensions, and 28 people are listed as committers.

In fact, this extension business is working so well that there are people who are (kind of) extending extensions : we now have new visualizations for the OpenVP visualizer, combining existing visualizations

The new "Spectrum Rain" visualization


Before you ask, although it looks different than what you might be used to, this is really Banshee. Just go to "Now Playing" and click "Simplify".

I'd like to thank everybody who made all of this possible, and who make Banshee such a fun project to be involved with. If you want to join us, to help out or to get some help, just head over to our website.

2011-07-31

Ich bin ein Desktop Summit Berliner


Right after I finished my studies, I had the opportunity to live in Berlin for 16 months. I worked in the French embassy, as part of my civil national service, and I really enjoyed my time there.

That was more than 10 years ago, and I never had the chance to go back to this wonderful city. That's why I'm particularly happy with the location for the Desktop Summit this year. After all this time, I'm really looking forward to re-discovering the city, and getting the answers for the following questions :
  • Are parts of the Berlin Wall's death trip still visible, or have they all been conquered now by new buildings ?
  • Can you still see bullet impacts on the building of the Museum Island ?
  • Do people still make barbecues in the Tiergarten, right in front of Schloss Bellevue, the official residence of the President of Germany ?
  • Can you still find bars that are only open one day a week, located in a cave and only accessible through a building site ?
I should land in Berlin on the 4th August, and I'm staying until the 14th, so that should give me enough time for those inquiries and more. Of course, I'm also looking forward to the conference itself, and I'll be happy to see everyone there.

If I'm not too lazy, I'll set up an ad-hoc BoF about Banshee and our porting effort to GTK+ 3. Watch this space for updates !

Let's finish with a little bit of trivia : Kennedy said his famous "Ich bin ein Berliner" in a speech in front of the Rathaus Schöneberg, which was the temporary city hall of West Berlin, because the "proper" city hall was on the other side of the Wall.

See you there !

2011-04-27

A new Banshee bundle of joy

The release of Banshee 2.0 is already a few weeks behind us, so after a non-negligible delay I'm happy to announce the availability of the Banshee 2.0 bundle for Linux :
Download the file corresponding to your system, uncompress it and run it !
Those files are now compressed with bzip2, so use "tar xjf ..." if you're the command-line type.
You might notice that the files are now hosted on ftp.gnome.org, making this thing look much more serious (and DropBox doesn't seem to be popular these days...).

But that's not the only thing that changed, I've improved several aspects of the bundle :
  • GStreamer integration
    We now use the system-installed GStreamer plugins, from the usual locations (/usr/lib/gstreamer-0.10 and /usr/local/lib/gstreamer-0.10). That's why there is now a 64 bit version of the bundle : a 32 bit bundle would run fine on a 64 bit system, but won't be able to load the 64 bit plugin binaries. This means that you should now be able to listen all your music, as long as the proper codecs are available on your system.
  • Theming
    We also try to use the current GTK theme, if there's one available. If there isn't, we use the theme included in the bundle. You can tell the bundle to ignore the current theme by passing the --use-bundled-theme parameter when starting the bundle. We currently only support themes that use the Murrine or Clearlooks engines. If your favorite theme requires another engine, just drop me a line and I'll try to add it.
  • Font handling should be better, as the default configuration files for fontconfig are now included.
  • Navigating to the HTTPS pages on the Amazon store should work, thanks to having the right gio module in the bundle.
  • Various packages have been updated to their latest stable versions, including taglib-sharp, sqlite and libsoup.
  • And of course there's all the goodness that is Banshee 2.0 !
A small gotcha to keep in mind : if you have ever run a previous version of the bundle on your 64 bit system, you'll have to delete the following file : ~/.config-glick/banshee-1/gstreamer-registry.bin
All the changes for the bockbuild build/bundling system are available on my GitHub branch, and maybe soon on the main repository, and you can read more about the way the bundle is built in my previous post.

So go ahead, try it ! You won't break your system !
But if it doesn't work, please file bugs in Bugzilla. Just make sure to mention you're using the Linux bundle, indicate which distro you're using and include any log output.

Update : Modified last paragraph to direct bug reports to Bugzilla.

2011-03-07

Banshee Bundle on Linux : One file to run on them all

As you might know, Banshee is available for Mac OS X, as a single file, which is a self-contained bundle of the Banshee binaries, along with all the dependencies. You just have to download it somewhere on your system, and run it.
Back in late 2009, when working on the tools to create this OS X bundle, Aaron already had the idea to create a similar thing for Linux, calling it "an interesting hack".
I'm happy to report that it was indeed an interesting hack, and you can enjoy the result by clicking on this link : banshee-1.9.4.run.tgz (49 MB)
Download the file, uncompress it with your favorite tool and you'll get a banshee-1.9.4.run executable. Just run it !



What do I get in that big file ?

The bundle contains almost everything you need to run Banshee, except maybe an operating system : GLib 2.28.1, GTK+ 2.24.1, SQLite 3.7.5, WebKit 1.2.5, GStreamer 0.10.32, Mono 2.10.1, GTK# 2.12, etc. What is missing though are MP3 codecs, but you should be able to play ogg file and other formats.
So you should be able to run that file on pretty much any Linux system, provided it has an X server and supports fuse (more on that later).

How does it work ?

This bundle is built using two great tools :
  • Bockbuild by Aaron, which is a light-weight build/packaging/bundling system for OS X, Linux, and Windows and is used to produce the Banshee OS X bundle.
  • Glick by Alexander Larsson, which is set of tools to easily create application bundles, using a nice trick with /proc/self and file descriptors.
So that big file is just a regular 32-bit i386 ELF executable, with a small bootstrap code and an ext2 filesystem image in one of its data section. When you launch that executable, the bootstrap code will mount the filesystem image in a temporary directory and do it's trick so that /proc/self/fd/1023 point to the root of that filesystem. It will then run the "start" script that sets up a nice environement and launches Banshee from that filesystem.

I've tried to do everything so that there's no interference with any thing on the system, in particular with an existing Banshee installation : configuration files are stored under $HOME/.config-glick/ and Banshee uses its XML configuration backend instead of the usual GConf. But of course standard disclaimers apply !

I had to modify and slightly extend both Bockbuild and Glick, so you will find my changes in the following branches on GitHub :
That last branch also contains a README.linux-bundle file with what I hope are clear instructions on how to create a bundle with these tools.

Why ?

The idea here is not to replace the packages you get through your Linux distribution (we love our packagers !), but to cover the use cases that aren't covered yet :
  • Allow users to quickly and easily try out a new version of Banshee, without having to wait for the packages to be available for their distro.
  • Provide an easy to test experimental features, instead of asking people to compile from a git branch.
  • Run Banshee with the latest versions of its dependencies, without any risk of compromising system stability.
  • Provide a custom UI theme (aka skin), using GTK theming.
  • [Insert your idea here]

What's next ?

There are a few things missing and some things that could probably be improved :
  • The bundle doesn't contain any hardware backends, so you won't be able to see your media player in Banshee. It should be possible to make that work by adding the missing build dependency, and let everything work its magic at runtime.
  • Although the bundle contains Mono 2.10.1, the new SGen garbage collector is not enabled yet. I just wanted to play it extra-safe for now.
  • I've seen some weirdness with fonts on some systems, maybe we could just add a nice font in the bundle.
It would be really great if somebody with artistic talent could come up with a nice and elegant UI theme for Banshee. Right now the bundle contains the Shiki-Brave GTK theme, but I'd be happy to add others to the mix !
I'm also looking forward to hear about your experiences running Banshee from this bundle, good or bad. Bonus points for running on the craziest Linux systems out there !

2010-11-03

Hello Planet GNOME !

I'm happy and honored to be included on Planet GNOME, in such great company !

For those who are interested in my previous posts, a quick recap (read it with your best Jack Bauer voice) :

Previously on this blog
Enough with the old stuff, let's show some progress here ! I found some music to go along with the video I made for the Banshee 1.8, and I finally went multimedia.


Of course, you have all recognized "Forgotten Heroes", a song from "Nightmares By Design" by Severed Fifth.

If want to be a Banshee hero, join us, and you will not be forgotten !

2010-10-05

Banshee 1.8.0, a few highlights

Last week we released Banshee version 1.8.0. A lot of new features and enhancements were added since the 1.6 release six months ago. So I'm not going to list them all, I'll just point out some of my favorites.

Amazon MP3 store

Browse, search, preview, purchase, and download music without leaving your media player. I can now enjoy music I never had a chance to get my hands on before !

Detailed screencast by Aaron

The part I like the most about it is that it uses the Amazon affiliate program, and all the money goes to the GNOME Foundation. Since this was put in place in August, every month brings a new record in revenue !

OpenVP visualizations

With every major Banshee release also comes a new version of the Banshee Community Extensions.
I'm really happy that it now includes the new OpenVP extension by Chris Howie. OpenVP is a platform for developing music visualizations, and the extension adds various music visualizations in the "Now Playing" source. You can now be mesmerized by your Banshee !

OSX is back

We haven't provided updated OSX packages for quite a while, so Tarmo Milva, an Apple-fanatic and a friend, could not stand this anymore. Or maybe he just got frustrated and tired of me rambling on about the awesomeness of Banshee...
Using the bockbuild build system (created by, you guessed it, Mr. Aaron Bockover), and with a bit of patience, he managed to build Banshee on his Mac, and created a shiny bundle for easy installation. He was kind enough to share it, so you can get it from our download page, and send your thanks this way.
This is still a beta-quality preview, several features are missing and it's not as stable as our Linux releases. Any OSX-related help is welcome, especially since Tarmo is often busy running marathons...

And more !

OK, I lied, I'm going to list more new stuff anyway :
  • Major update of the hardware integration, and improved Apple device support
  • Miro podcast directory
  • Topic-based user help
  • Metadata  fix-up extension
  • MPRIS v2 support
  • ...

Pretty moving pictures

Like I did a while back to celebrate the previous major release, I made another video using the excellent version control visualization tool called Gource. This one shows the activity between 1.6.0 and 1.8.0. You will notice it starts before the release of 1.6.0 with low activity, that's the stuff that was happening on separate feature branches and that got merged in later on.


If you want to be a part of the next movie, it's easy : translatewrite documentation, write code !

2010-07-10

Going to GUADEC - My answers to the 5 questions

Who are you and what do you do ?

I'm Bertrand Lorentz, a French guy exiled in Luxembourg. I'm working as a project manager at the Court of Justice of the EU, and I'm hacking on the great Banshee media player during my free time.

How did you get into GNOME ?

My first GNOME-related contribution was an alarm-clock extension for Banshee, back in 2006. In 2008 I got gradually more involved in Banshee itself : triaging bugs, writing small patches, managing and reviewing patches, etc. I'm now proud to be a member of the GNOME foundation.

Why are you coming to GUADEC ?

I'm going to GUADEC for the same reasons I went to GCDS last year : meet nice people, see interesting talks, and have an all-around good time.
I'm particularly looking forward to meeting Gabriel for the first time after all those online interactions, and also Alex Launi, our Google Summer of Code student.

In 1 sentence, describe what your most favorite recent GNOME project has been.

In the past months, I've been really happy to see the way the F-Spot project is going : an articulated vision, lots of positive energy and enthusiasm.
Of course, the fact that Ruben has started picking up some of my commits to Banshee and applying them  to F-Spot might have something to do with this positive opinion. Doing the work once and getting the credit twice ? Count me in !

Will this be your first time visiting the Netherlands ?

Yes, although it's not that far from where I live, I never had the opportunity to visit the Netherlands. So that will be one item off my list of "EU countries I've never been to"

So, I'm attending GUADEC and I hope I'll see you there !

2010-04-02

Celebrating Banshee 1.6

As you probably know, we released Banshee 1.6 a few days ago. You can read all about it in the release notes, and in Gabriel's blog.

After a long development cycle that culminated in this major release, you naturally take some time to look back and reflect on how things are going. Gabriel already did that and has some beautiful evidence to show.

In this spirit, and to celebrate all the contributions we received during this cycle, here's a short video, made using the Gource visualization tool. Look at all these people adding features, fixing bugs, translating, etc.



Banshee git history from Bertrand Lorentz on Vimeo.

It shows the source code repository activity since it was switched to git in April 2009, which corresponds to somewhere between the 1.4.3 and the 1.5.0 releases. Using the history before that time would be much less interesting, as it would show the committers, and not the real authors of the contribution.
Also, the files only appear as they are modified, so don't be fooled : the Banshee source tree wasn't that small in April 2009 !

As I left out the textual information, for maximum eye-candy-ness, you can play a little game to test your Banshee knowledge : Are you able to identify parts of the directory structure (spotting po/ should be easy) ? Can you recognize people just by their contribution pattern ?

If you enjoyed this video, I really recommend you install and run Gource in interactive mode : just go into your Banshee git checkout and run "gource". You can see all the information, skip to a specific date, zoom in, track an author, etc.

If you want to join the fun and be in the next video, it's easy : http://banshee-project.org/contribute/

2010-02-04

A Mirage made of music

Mirage 0.6 is now available, bringing interesting new features and bug fixes.

Mirage is an extension for Banshee, the media player you all know and love. It analyzes all the songs in your music library and is then able to evaluate the similarity between any particular songs, just by looking at the acoustic signal.

Mirage was originally created by Dominik Schnitzer as a part of his master thesis (Mirage - High-Performance Music Similarity Computation and Automatic Playlist Generation, pdf). I won't even try to pretend that I understand half of what is going on during the acoustic analysis and the similarity calculations, but I can tell you that there are matrices and Fourier transforms, amongst others.

Analyzing a song shouldn't take more than a few seconds, but of course if you have a music library with several thousand tracks, those seconds can add up to become quite a while. The good thing is that you can stop the analysis at any time, restart later, and Mirage only analyzes tracks that were not already processed.

When the analysis is finished, you can then select one or several tracks, drag-n-drop them to the "Playlist Generator" source and Mirage will automatically create a playlist of similar songs. The playlist will be refreshed automatically and will adapt itself as you listen to the songs or skip them.

This release introduces a new and experimental "duplicate search" feature : go to "Tools > Mirage Playlist Generator" and select "Duplicate Search". Mirage will then go through your whole music library and if any two tracks are very similar to each other, they will be added to a "Mirage Duplicates" playlist.

So go ahead and try it !