Creating true mix CDs in Banshee

I’ve been wanting to implement a “CD Creator” source in Banshee for almost a year now, and just a few weeks ago I finally started to do so. However, upon starting with the new source I realized that we needed some lower-level functionality in Banshee to encapsulate optical/CD hardware.

In a number of places in Banshee I use HAL directly to get disc information. The old/current CD burning layer uses libnautilus-burn directly (and some HAL). While this worked fine, there was a lot of duplication and it’s not very portable (think, ah, Windows).

There are now a number of new interfaces in the Banshee.Cdrom namespace: IDriveFactory, IDrive, IRecorder. Most of this is modeled after the libnautilus-burn API, and I have so far a full Banshee.Cdom.Nautilus implementation that uses libnautilus-burn. Without saying too much, it all boils down to easy-to-handle optical disc functionality that should be very portable.

So without much more boring jibba-jabba, the new CD burning functionality works like this: the CD burning source allows you to create CDs with full control over the ordering of the tracks, and supports tracks coming from multiple sources. The old method only burned a selection. Quick selection burning is still supported however.

CD Burning

Each CD burning source allows for selecting the format of the disc (Audio, MP3, Data) and the drive. In other words, settings are bound to the source, not globally (like the previous method). This means that the CD Burning preferences page is completely gone. The options are also now very simplified.

Disc Options Disc Options

If you have only one drive, no drive combo is shown. If you plug a drive in, a drive selection combo will appear automagically. When you insert or change media in the bound drive, usage information will update accordingly. If you insert a blank CD, a CD burning source is created for you… just drag tracks to it and go.

Some of the UI and behavior is still under debate and may change, but I’m open to ideas. If you’re using HEAD, update your checkout and give the new functionality a test drive. This is a really big change, but a lot of the existing code was reused when it comes to verifying, preparing, and actually burning the CD. Nevertheless, there may be new bugs, so file away.

13 Replies to “Creating true mix CDs in Banshee”

  1. Wow, what theme/gtk-engine/whatever are you using in those screenshots? Where can I get it :-)?

  2. Very cool! I can’t wait to see this in the main release :)

    One thing I requested on the ML, but didn’t receive any answers or comments about was being able to create directory structures on data/mp3 cds. My idea was that you could create a disk from multiple playlists (ie: ‘rock’ and ‘roll’) and that would translate into /rock and /roll on the CD. That way people with (eg) car mp3 players could select their playlist to play.

    As my car player can do random full disk or random in folder, I could burn a mix of several playlists and select the one most suited to my mood while in the car.

    Unfortunately there doesn’t seem a “nice” way to export the list of files in a playlist to something like nautilus-cd creator (or a plain text file with full source file paths or something) to allow me to use the playlists I’ve created in banshee to do this “by hand”.

  3. Arcterex: I will probably add directory support for MP3/Data CDs at some point now that CD creation is abstracted out into a view. However, when I finish porting MP3/Data support to this new CD burning layer, I will use a user-configurable pattern to create default the default directory structure.

  4. Sweet. Banshee is finally growing up to become my end all be all music app. Just a few feature requests for CD burning though. A checkbox or preference to automatically normalize the CD would be great. Replay gain might be useful here but I’ve never had much luck with replay gain. Also gotta be able to specify the gap length between tracks. Vital if two back to back live songs are on there. Finally I really like CD burning apps that allow you to quickly and easily do a crossfade on two selected songs.

  5. “I will use a user-configurable pattern to create default the default directory structure.”

    Will this also be used for usb mass storage devices? My media player device currently “works” with banshee but it is not really usful, because i don’t need the files in the device’s root…

    The new burning stuff looks awseome… hope I will get it running soon, right now it crashes on my at startup :(

  6. The new burning feature looks really great!

    But my most missing feature: A queue where i can add songs to interrupt the default order of playing tracks (like the “party mode” in rhythmbox).

    Great work! Banshee is really a great piece of software!

  7. Awesome! I can definately see myself using this feature.

    Just a quick question, when do you plan on releasing Banshee 0.11? I’m so excited that I can finally stop using CastPodder, and am really looking forward to this release. Internet Radio looks like a nice feature too.

  8. RFE:

    Please make sure that this can transcode MP3s for burning on the CD. My biggest annoyance with Linux is downloading a low-bitrate MP3 and then not easily being able to burn an audio CD of it. I end up copying to a windows box and burning from there as WiMP handles it easily!

  9. Hey Aaron,
    Many thanks for the wonderfully useful Banshee. I just have one gripe though. While everyone I see on the web seems to be able to write MP3 CDs using banshee, I do not get th MP3 option when I want to write a CD. I only get one option – to write Audio CD. Is there
    any specific plugin that I have to install in order to enable writing MP3 CDs. I am on Ubuntu Feisty. Would be grateful for any advice.

  10. I have the same issue, no mp3 cd burning option. In a version of suse I used, it showed up, but disappeared after an update. I haven’t seen the option outside of that one time and screen shots on the net. I have all my music in the vorbis format and very few mp3s. The cd player in my truck will play mp3 cds, so it would be nice if I could burn an mp3 cd from banshee instead of the search, copy, convert, burn, clean up method that I currently have to use.

Comments are closed.