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 !

2010-01-26

The country next door

I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting
I'm going to FOSDEM, and I'll be in Brussels for the whole week-end. I'm really looking forward to see again some of the people I've met in Gran Canaria, and to meet new faces.

I just have to decide if I'll be going by car or by train. One thing's for sure : I won't be driving after the Beer Event !

2009-12-22

Ubuntu One on Gentoo

And now for something completely different ! (ie not banshee related)

For years now, I've been running Gentoo Linux on my desktop machine, and I'm mostly happy with it. Earlier this year, I had the opportunity to get my hands on a cheap used laptop : an Apple iBook G4. First thing I did with it was a clean install of Ubuntu.

Since then, I've been looking for a way to easily synchronize files between my desktop and laptop. Obvious alternatives like Dropbox wouldn't work, because they don't provide PowerPC binaries for Linux.

So when Ubuntu One came out, it seemed like a perfect fit. I just had to get it running on Gentoo !

This being all about sharing, I also wrote some ebuilds, so that others might also enjoy it.

Installation instructions

My ebuilds are grouped in an overlay, which translated from Gentoo-speak to Ubuntu-speak would be something like a PPA.

First you have to install the layman tool, to help manage your overlays :
  emerge layman

Then you can add my overlay :
  layman -f --overlays http://gitorious.org/gentoo-ubuntu-one/gentoo-ubuntu-one/blobs/raw/master/gentoo-ubuntu-one.xml --add gentoo-ubuntu-one

This will also fetch the content of the overlay. If you want to update the overlay later, just run "layman -s gentoo-ubuntu-one".

You then have to edit your /etc/make.conf, so that this new overlay can be found. Just add this line at the bottom :
  source /usr/local/portage/layman/make.conf

What's left now is just to actually install the Ubuntu One client :
  emerge ubuntuone-client

This should install all necessary dependencies. You probably have to restart nautilus for the Ubuntu One integration to be visible.

To start it, just go to Applications > Internet and click "Ubuntu One". This will open a page in you web browser, where you'll have to sign in and add your computer to your Ubuntu One account.

Caveat emptor

  • The packages for Evolution contacts synchronization are not included, because I don't need that feature and it looks like it the dependencies could be tricky.
  • The Ubuntu One applet has a tendency to take 100% of my CPU. After killing it, synchronization still works. Further investigation is needed on that front.
  • These are my first serious attempt at writing ebuilds, so they might be broken in various ways. I'd be happy to hear about your experience anyway !

2009-12-14

Bustling Banshee Bunch - Web Edition

Incurable Introduction

A long time ago, I was keeping track of patches that were submitted for Banshee through bugzilla and needed some attention. Once or twice per month, I then sent a list of those patches to the banshee mailing list. Those posts were called "Pending Patches Periodical" or PPP. For example, you can have a look at the first issue in the archives.
I thought I'd try to revive this, but in a new format, leveraging this new-fangled "web-log" technology thingy. I'm also going for an expanded scope, hence the new name, but keeping with the ridiculous alliteration-based theme.
I'd be happy to hear what you think about all of this !

Anyone who wants to help by testing and providing feedback is welcome to do so !
Be careful, this is for those who are not afraid of building Banshee from source and understand the risks associated with running bleeding-edge software.

Bouncy Branches

The branches listed here are available in the official git repository. They are in development, but are considered ready for some wider testing. Feedback is welcome on the associated bug or through a new bug in bugzilla.
  • gapless : no unwanted silence between tracks, thanks to the GStreamer playbin2 element (bug 440952)
  • grid : new layout for the ListView, displaying the covert art for albums, see the screenshot
  • watcher : automatically import new files and update your library (bug 385965)

Fancy Figures

Pending Patches

Bug 576666 - YouTube Extension
Really nice feature, patch looks good. (by Kevin Duffus)

Bug 487203 - DAAP password authentication problems when accessing a DAAP server
Only use default codes for password protected servers. Already some positive feedback. (by Félix Velasco)

Bug 520516 - Cover/Album art filenames not robust, fail for non-ASCII, parenthesis, etc
A first rough patch, some work left : simplification of file naming, migration of existing files and clean-up. (by me)

Bug 602589 - Unable to build on openSUSE 11.0
A partial patch that should fix the build on openSUSE 11.1, someone needs to confirm this. (by me)

Bug 428849 - clickable Album and Artist next to play controls
Has already seen a lot of iterations and improvements, would be nice if somebody could check that it still applies and works with the latest git master. (by Sandy Armstrong)

Endless Epilogue

There are of course a lot of other patches that could be mentioned, so you're welcome to point those out, using our usual communication channels (mailing-list or IRC).

2009-10-25

Fireworks of code

Everybody knows that a picture is worth a thousand words. I guess a similar statement is also true : a video is worth a thousand numbers.

So I played around with code_swarm and generated a nice video :


Banshee code swarm from Bertrand Lorentz on Vimeo.

Click on the link above to see the video in its original size on Vimeo.

If someone knows some freely available music that would make a good soundtrack for that video, please point me to it. I'd be happy to try to make a music video !

I think that's enough messing around with source code history. I should go back to actually producing some code...