SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Sponsored Links

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

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" ?

  1. 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/)


Sponsored Links

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.