IMMS Magical Favorites Collector
a useful tool for filling CDs/DVDs/Mp3 players with what IMMS already knows you like.
IMFavorites queries the Intelligent Multimedia Management System database kept on your system by IMMS to figure out your favorite songs, then symlinks them to a place of your choice. Read on...
IMMS Website: http://www.luminal.org/wiki/index.php/IMMS IMFavorites Website: http://imfavorites.sourceforge.net/
The Main Point:
Run the GTK version by executing gimfavorites, then just point and click.
-- or use the console version --
For the console version, get a list of command line options by running imfavorites -? .
More detail on what this program does follows below.
Dependencies:
glibc
IMMS
SQLite3
librsvg (optional)
GTKMM 2.0+ (optional)
TagLib (optional)
Installation:
./configure
make all
or
make imfavorites (for the console)
or
make gimfavorites (for the GTK2 version)
and
make install (to install!)
What the?:
If you've used IMMS for more than a few days, it's already gotten a decent idea of what kind of music you like and what kind of music you do not like. That information is stored within its database, dripping with desire to be useful. This program simply uses that information to find your favorite songs (as IMMS knows them), and then do the hard work of compiling a CD, DVD or Mp3 player full of your favorites for you.
What happens is this:
- IMFavorites accesses the IMMS database in ~/.imms/imms2.db
- IMFavorites gets a list of your favorite songs in order
- Then one by one symbolic links are made from your songs to a directory you specify as a target.
- This repeats until it links your favorite N songs, until it links M minutes of entertainment, or until it links your favorite X megabytes of music!
Thus you can get your top 10 songs linked to a directory of your choice, or your favorite 700 megs of songs for a mp3 CD, or even your favorite 4.7 GB of songs for a mp3 DVD.
IMFavorites even preserves the pathnames of your painstakingly organized files. But smartly. An example:
My music is all stored in /mnt/mp3s/, in subdirectories. Let's take one of my songs as an example:
/mnt/mp3s/Classical/Wagner-das Ring/01 - Das Rheingold.mp3
IMFavorites will automatically determine that "/mnt/mp3s" is the subdirectory that contains all your music, and then:
- "/mnt/mp3s/" is subtracted from the full path of the file
- the remaining portion is used as the location of the file in your target directory.
So, if you have the following command:
imfavorites {--cd or something} ~/mp3s/favorites/
then
/mnt/mp3s/Classical/Wagner-das Ring/01 - Das Rheingold.mp3
will be symbolically linked to
~/mp3s/favorites/Classical/Wagner-das Ring/01 - Das Rheingold.mp3
automagically! So you get a directory tree like your mp3s directory for your ease of browsing.
GTK2 Frontend (gimfavorites):
Just point and click. The algorithms are all the same as the above, but it's pretty.
FAQ:
Q: How do I stop these warnings from TagLib like "MPEG::Header::parse() -- Invalid sample rate" ?
- If you get warnings from TagLib regarding bad MPEG headers and similar things while limiting on collection length, it is because your version of TagLib has debug output enabled. To disable this output, you must recompile TagLib after configuring it with the --disable-debug option:
./configure --disable-debug
make install
This isn't necessary under most circumstances, but the debug output does bug some people and may upset some scripts using the command line imfavorites.
Aknowledgements:
Michael Grigoriev <mag@luminal.org>
for writing IMMS to begin with!
Brad Appleton <bradapp@enteract.com>
for the Options library:
(http://www.cmcrossroads.com/bradapp/ftp/src/libs/C++/Options.html)
Scott Wheeler <wheeler@kde.org>
for TagLib:
(http://developer.kde.org/~wheeler/taglib.html)
Everaldo Coelho <teveraldo@everaldo.com>
for the CD and DVD icons which come from CrystalSVG
(http://www.everaldo.com/)
