November 10, 2009

Banshee: Like Frankenstein! It rips!

Categories: FreeBSD, Mono.

A while ago (I mean when it landed in the FreeBSD ports tree), Banshee reacted when a music CD-ROM was in a CD-Drive: it crashed. Well, not so cool in fact, you had to double-check it was empty before launching the player...

More recently, I was happy to find out that it was not the case anymore: Banshee was simply unable to detect the CD-ROM anymore. Still not so cool: you were still unable to listen to an audio CD, not mentioning ripping it.

For some reason I cannot really figure out (I have spent quite some time in fixing Banshee for FreeBSD and giving it some love), I took a look at this problem.

Obviously, the first rusty part of the chain of tools involved with audio CD was MusicBrainz and more precisely musicbrainz-sharp (a client library for .NET / Mono). FreeBSD having it's own ioctls for managing CD drives, and musicbrainz-sharp having 3 concrete classes for managing such devices called DiscLinux, DiscWin32 and DiscWin32NT, a piece was definitively missing. With a great deal of inspiration, it was called DiscFreeBSD and provides bindings for almost everything referenced in sys/cdio.h. When instanced, this class reads the CD in the drive and computes an ID used to fetch information about the audio CD from the Internet.

Unfortunately, I could not test the library on a system one which it is supposed to work (read GNU/Linux) so I asked a friend of mine, Baptiste (Yes! It works!) [edit: 2009-11-10:12:04 he just told me he has a a-bit-better website where he is playing now...], to tell me how it goes and to help me make the library behave the same on GNU/Linux and FreeBSD. We quickly had some good results:

Banshee listing an audio CD tracks
Yay! Tracks from Sopor Aeternus' album Les fleurs du Mal are being listed!

Unfortunately, it was not possible to listen to the CD nor rip it... Not so cool once more.

And here takes place the magic of GStreamer!

cd /usr/ports/audio/gstreamer-plugins-cdparanoia && make install

Now, Banshee can play and RIP audio CDs with a single mouse clic!

Banshee playing an audio CD
Playing Cinema Strange's The Astonished Eyes Of Evening...

Banshee ripping an audio CD
And ripping it (progress in the bottom left corner)...

All this will be soon in your ports tree!

For those who can't wait, patches for musicbrainz-shap are in the project's trac: Add support for FreeBSD in MusicBrainzSharp.

No Comments Yet

Comments RSS feed | Leave a Reply…