Frequenty Asked Questions

If you have a question not found here, please use the Mailing List.

General

How do I know imms is working?

To observe IMMS in action, see ~/.imms/imms.log.

What the fork does all that stuff in the log mean?

There's some description of the notation on the Screenshot page.

How do I use the information IMMS collected to get a list of "good" songs, for custom playlist, etc?

See Tips And Tricks, or check out IMFavorites

How can I raise the rating of a song that I like?

As mentioned in the Screen Shot section, jumped songs, i.e. songs that you directly select to be played, get an extra boost. So to raise the rating, just select the song and listen to it. If you can't stand listening to it, its rating shouldn't be raised anyways. Otherwise, if you are adventurous, you can directly modify the sqlite database, using the magic described in Tips And Tricks, but this is not advised for unexperienced users. - The Anarcat

What about m4a/flac/other-weirdo-formats that are not currently supported by SoX?

Correct solution: if there a library to decode them, add support for that format to sox. I hear it's not hard.

Cheap hack: create a wrapper script for sox that does something along the lines of:

  if filename ends with .m4p

      faad - filename | sox.real <options>

  else

      sox.real <options> filename

You will need to make sure you get 16-bit unsigned mono raw PCM signal @ 22KHz on the output end.

Compilation

./configure complains about some header/library is missing. What should I do?

Well first of course make sure you actually have that component installed. In fancy distos you often have to have package-dev and as package itself installed to get all the header files. Other than that look in config.log. It will tell you exactly what the configure script is trying to do, and what the error it fails with is.

I get an error about undefined macro: AC_MSG_ERROR. What's up?

The error message is misleading. The actual cause is that aclocal fails to pull in the definition for PKG_CHECK_MODULES. Make sure you have pkg-config installed.

Troubleshooting

How do I report a crash bug?

Reconfigure IMMS with --enable-debug and recompile it. Before you start XMMS, run immsd under gdb. Proceed as usual (start XMMS, listen to music, etc) and when immsd crashes, save the output of 'backtrace full'. Also include the full (including the path!) filename of the file it crashed on.

Why does XMMS sometimes stop after playing a song, or gets stuck repeating the same song?

Make sure you do not have No Playlist Advance option enabled in XMMS.

I installed IMMS, but XMMS does not show it in the list of plugins. What's wrong?

The most likely cause of this is that some of the libraries IMMS depends on are not in your LD path (eg: sqlite installed in /usr/local, and /usr/local/lib not in LD path). Run XMMS from a console and check for messages about missing libraries, then add their location to ld.so.conf (and run ldconfig) or to LD_LIBRARY_PATH.

In playlists consisiting mostly of streaming songs IMMS always repeats the same song. Why?

Streaming playlists are not currently supported. IMMS needs read access to the files to do things like read their ID3 tags, checksum them, etc. While it might be possible to get the basic functionality working even for remote files, it is not a high priority on my To Do List because I do not use this functionality.

Technical

Does IMMS keep the score of a song when I move it to a different directory in my filesystem?

Yes, IMMS uses a partial checksum to identify files. Even if you move them and/or edit their tags, the files should still keep their ratings.

How does IMMS determine song ratings?

IMMS uses the following sources of data to rate/decide on songs

1. Your training of skip/play, which is stored in the database

2. Songs that it has seen played/skipped together (these are called "correlations")

3. (optional, but useful) BPM comparisons, as supplied by analyzer. This helps determine the speed of the song.

4. (optional, but useful) MFCC comparisons, as supplied by analyzer. This helps determine the type or genre of the song - i.e. what instruments are used, type of vocals, etc.