XMMS mp3cue v0.9

by Brian Victor Fernandes

mp3cue v0.94 released. Click here.

Introduction

XMMS mp3cue is a plugin that allows you to use XMMS to conveniently navigate through large (or small) audio files. mp3cue can store information related to smaller tracks at specified locations within a single audio file and allows you to select and play any of them conveniently.

XMMS mp3cue is a plugin for XMMS (X Multimedia System), which runs on Linux. The original mp3cue plugin was conceived by John Dee, written for Winamp. I have written XMMS mp3cue from scratch; it is not a port. However, I did get the idea from John and have tried to maintain as much compatibility between the two as possible, so that you, (yes, YOU) can switch between the two players without any hassles. Many detailed (and perhaps boring for John) MSN conversations went to this worthy cause ...
Having said that, XMMS mp3cue is not complete as yet. But it does provide the primary functionality, as stated above.


The Problem

If you wanted to rip / encode a mix CD or if you downloaded a large song, you basically had 2 options.

In order for you to be able to identify and seek to any particular song within the mix, you would have to encode each song as a separate MP3 file. So what's the problem ? Well, if you are listening to the music using XMMS, you'd probably get a pause between the MP3's, as XMMS switches between them. Playlist ordering can also be an issue.

Alternatively, we can rip the entire CD as a single MP3, but then how do get to a particular track within the mix ? Not only would you have to remember the location of the track, but the slider too is hardly precise enough for large files. Needless to say, you don't retain any information about the individual tracks, and you'd probably have to manage this information outside XMMS.


The Solution ... and how to Use it

The solution is this plugin. (you were expecting maybe the Easter Bunny ?)

Right now, cue sheets created by the Winamp plugin can be read by the XMMS plugin and vice versa. You can also create cue sheets using external Cue Sheet Editors or by hand and the plugin should handle them properly, as long as they follow standard cue sheet conventions. Some Audio CD rippers such as Exact Audio Copy create the cue sheet for you, but I haven't personally tried that out.

Even though the plugin is called mp3cue, it can be used for all types of audio files, as long as XMMS is capable of seeking within them.


To Do

I can think of many configurable options, will put them in.

mp3cue for Winamp allows you to encode the information usually contained in a cue sheet within the MP3 itself, in the ID3v2 tag. I haven't got up to doing this yet, but I will get to it soon. This is considerably more complex than the cue sheet and compatibility testing will be a super pain in the super arse. Needless to say, this can only be used for MP3 files.

It might also be convenient if mp3cue could split the mp3 into several smaller mp3 files according to the mp3cue playlist information, but I'll only do that if this plugin receives good response... so you know what you have to do. :)

If I have nothing better to do, I might try to use the XMMS playlist skin to skin the mp3cue playlist too. But that's only cosmetic, hardly important.


Download and Installation

Enough of the crap already... here's the binary. XMMS-mp3cue-0.9-1-binary.tar.gz (15 kB)
Place the libmp3cue.so file in the /usr/lib/xmms/General directory
(this directory is mostly constant, but there is a small chance that it just might be different on your machine) You can locate it using "xmms-config --general-plugin-dir".

I have also created an RPM XMMS-mp3cue-0.9-1.i586.rpm (18 kB) , but I'm no RPM expert, so if it does not work, use the tarball above.
Documentation is included in both versions.

After installation, restart XMMS. Right click on XMMS and choose preferences, go to the General plugins tab and enable the plugin.
I have no configurable options yet, but will add some in the next release. If you try to close the mp3cue playlist, it will only hide itself. So you can click the Configure button (where you enabled the plugin) to unhide it. There seems to be no other handle this behavior, but I'm still looking.


Payment

XMMS mp3cue is freeware; probably soon to become open source. I've tried voluntary donations for my other plugins (Photoshop) but I received a very poor response (around 0.30% registrations). If you would like to contribute, please consider registering either of my other "Dontation-Ware" plugins here. Thanks.


Details

What you see now, was almost complete a year ago. I simply lost interest. I restarted the project only last week and am now back on "Track". mp3cue is written mostly in C, and a little bit in C++, using GTK for the front-end. Glade gives me nightmares ...

If your audio file has a 3 letter extension (.mp3, .ogg, .wav ...), then the cue sheet for that file will have the same name, but the extension will be changed to "cue".
e.g. Audio File: myfile.mp3 Cue Sheet: myfile.cue
In any other case, (more or less than 3 letters in the extension) the file will be given an additional extension of cue.
e.g. Audio File: myfile.mpeg Cue Sheet: myfile.mpeg.cue
When exporting cue files from mp3cue, it will automatically supply an appropriate name. If you stick to the supplied name, mp3cue will find the cue sheet automatically when the file is next loaded. Alternatively, you can specify any file you want when importing a cue sheet for the current song, but then that would have to be done everytime.


Feedback

I remember that I took a lot of pains to see that this plugin is bug free. But then, that was a year ago :(. I doubt mp3cue would cause XMMS to crash, but if XMMS does crash, disable the plugin and see if XMMS still crashes (I've known XMMS to seg. fault a few times). Then enable it and check. With such flexible input, it's not too easy to test all scenarios.

Non standard cue sheets can cause the plugin to behave "inappropriately"; I suggest creating a cue sheet using the plugin or an editor. The "by hand" method is error prone, and using the plugin is simple enough, isn't it ?

I would really really appreciate any suggestions or bug reports from you. A few words of appreciation would go a very long way too. If you want to volunteer to test out new versions of the plugin, drop me a line.

The plugin will probably go open source after I finish the ID3v2 integration. Perhaps you would like to contribute then...


Contact

Email: brianv@phreaker.net
MSN: infernalproteus@hotmail.com (no mail here please)
ICQ: 96722990


Thanks

First of all John Dee, for writing the original plugin and taking the time to explain to me all the detials of his plugin, ID3 tags and Trance in general. If I haven't been able to make you understand what it is that mp3cue does, go read his page here.
I would also like to thank iso:crash and Tamas Pal the authors of the hello world and Goodnight plugin respectively, whose source I studied to make this one.
The guys on the XMMS forum very helpful, hope they continue to be.
Joshua McKinny reinkindeled my interest in the plugin. I actually thought nobody really wanted / needed it. Josh also found a few big bugs (which have been fixed :) ), so you have to thank him for pre-crashing the plugin for you.
Last modified: Wed Oct 22 23:01:38 India Standard Time 2003