XMMS mp3cue adds cue file support to XMMS.
Cue files store information (Artist, Title, Time) describing smaller tracks within a large audio file.
mp3cue allows you to easily manipulate these cue files; and more importantly, it presents you with a separate playlist composed from the cue information which you can use to easily navigate to any of the smaller tracks in the audio file, just like a normal playlist. You can also save this cue information within an ID3v2 tag (if the audio file is an mp3), eliminating the need for an external cue file.
XMMS mp3cue is a General plugin for XMMS (X Multimedia System),
which runs on Linux. The original mp3cue plugin was conceived by John
Dee, written for Winamp 2. I have written XMMS
mp3cue from scratch; it is not a port. However, I did get
the idea from John and, to the best of my knowledge, the two
plugins are totally compatible. You can switch between the two players without any hassles.
Having said that, XMMS mp3cue is an ongoing project, there are
still many things left to do ... I need your feedback.
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 tracks, as XMMS switches
between them. Playlist ordering can also be an issue, not to
mention managing all those files.
Alternatively, you 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 is
hardly precise enough for large files. Needless to say, you don't
retain any information about the individual tracks, and you would
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 ?
Load up the desired MP3 in XMMS. Right click in the mp3cue playlist window,
and choose Add Track. (You can also right click in the area next to the Prev and Next buttons.) Type in the details. The time
fields are programmed for minutes, seconds and frames
respectively. (There are 75 frames per second). Continue adding
songs until all the songs in the album are added (or you're fedup ... whichever comes first).
Then just double click the song in
the mp3cue playlist to have XMMS seek to that position. hooray !
The Period (.) and Comma (,) keys can be used to go to the next and previous song respectively.
You can also set some attributes for the entire album by
right clicking and choosing Properties.
Now, you can export this playlist to a cue file. Simply right click
and choose Export Cue Sheet. The file will be appropriately
named and stored (see details section below) so that mp3cue will
automatically find and load it up the next time.
Import Cue
Sheet allows you to specify an alternate cue file to load as
the mp3cue playlist.
You can now save this cue info within an
MP3 audio file, eliminating the need for the extra cue file. Choose
Save to MP3
Remove Frame removes only the ID3v2 frame saved in the MP3
by the above command.
If you want to Remove or Edit a song, just right
click the appropriate song and choose the appropriate
option.
The current track playing is highlighted in Red.
Compatibility
My Winamp 3 Plugin (mediaCue) This goes without saying, mediaCue and mp3cue are totally
compatible. For the actual file manipulation, I've even used the same code.
John Dee's Winamp 2 Plugin Cue sheets created by the Winamp 2 plugin can be read by
the XMMS plugin and vice versa.
The same goes for MP3 support as well. Save to MP3 in XMMS mp3cue
and the Winamp plugin will pick it up ... and vice versa *sigh*.
External Cue Sheet Editors You can create cue sheets
using external Cue Sheet Editors, or by hand and the plugin should
handle them properly, as long as standard cue sheet conventions
are followed. Some Audio CD rippers such as Exact Audio Copy create
the cue sheet for you, but I haven't personally tried that out.
Other Audio Formats 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. hooray !
To Do
I can think of many configurable options, will put them in.
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 if you want it,
ask for it.
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. Don't hold your breath.
Download and Installation
Enough of the crap already, here are the downloads. Now, why do I
get the feeling you came here first ?
If you use the RPM or compile with a "make install" then the plugin and it's documentation should
automatically be installed in the right place, but just in case ...
The important thing is, the libmp3cue.so file must go 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".
Everything else is secondary. Forget the documentation, forget your girlfriend, forget your life. Just put the frickin libmp3cue.so file in XMMS's "General Plugin" directory and everything will be allright. Don't cry.
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 (this is exactly what I said in the last 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 way to handle this behavior, but I'm
still looking.
Payment
XMMS mp3cue is free software distributed under GNU GPL. v0.9 was released when I was still an
Engineering Student ... I'm now working. What Fun :P.
Give some money
to your favorite charity and help your fellow man. And tell me about it.
Details
As with the previous release, this release was actually complete
about 3 months ago ... but I didn't feel like testing it. Testing
is a bitch. aaarrgghh !
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 viz. "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 manually each time.
For an MP3, the plugin first checks for the external cue
file. Only if this is not found does it search the MP3 for the
cue frame. So, if you have stored the cue data in the MP3, but you have a
cue file as well, then only the external cue file will be parsed.
If you are saving the sheet to an mp3 which did not originally possess an ID3v2 tag, then the plugin generates the Performer (TPE1) and Title (TIT2) frames from the Cue Sheet Properties. It would be advisable to set these properties ~ if you do not, the earth will explode. No, really.
If a new ID3v2 tag is being generated, then the plugin uses ID3v2-3. If there is a ID3v2 tag in the mp3 already, then the plugin will use that format. It is capable of writing ID3v2-4 tags as well.
Feedback
I'm usually a paranoid tester. You probably wouldn't believe some of
the scenarios I'd test. But then again, it's possible that I missed
something (oops). The plus point here is that I've re-verified my
code while coding my Winamp 3 plugin, mediaCue. 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.
Since I've distributed the source this time, you can also recompile the plugin in DEBUG mode; simply change the "DEBUG := n" line in the Makefile to "DEBUG :=y" and recompile. Then run XMMS from a console window, it will print Debug messages to the console, and those will certainly give me a better idea of what's going wrong and where.
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. I had asked for testers for this version, but I guess nobody
has time anymore. :(
Contact
Email:brianv at phreaker dot
net MSN: infernalproteus at hotmail dot com
Y!: infernalproteus
ICQ: 96722990
Postal Address: 503, Miaami Apts. II,
St. Vincents Street,
Pune 411001
India.
First of all - John Dee, for writing the original plugin and taking the
time to explain all the details of his plugin, ID3 tags and
Trance in general. His plugin is 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 reinkindled 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.
Christoph Thielecke found an issue with multiple windows.
Sunil Beta provided much needed packaging support.
Last modified: Sat Oct 25 18:51:29 India Standard Time 2003