help - loader control

Calliope supports many options during the loading of songs. The loader is controlled by settings in the conf file, calliope/etc/conf, in the "LOADER CONTROL" section. Above all, the loader has been built to allow calliope to load many kinds of songs, with many possible arrangements, from many sources, in many formats, and get them into the database in a consistent fashion. It's complexity is a sad comment on the lack of standardization in the digital music world. Still, for most people, it just works, but if you experience problems, let me know! There are still more planned loader features to come, including networked file systems, and better support for mp3 players and ipods, so keep checking back.

You start by defining one or more MusicRoots, which identify an absolute location to some collection of music. Each collection can:

  • have a name
  • have a description
  • have a type (be removeable or not)
  • be included/excluded from random play
  • have a uniqe file specification (how the files are arranged and named)
  • and have a unique load method (use filename, use tags, prefer tags, prefer filenames).

In addition, there are a number of global loader settings that affect all music roots. You can explicitly define certain directories as having compilations, eliminate "the" from artists names, and define which file types you want to load, and thus include in random play, etc. Each file type may have particular optional module requirements, and it's possible that if you don't have all optional modules loaded, you could experience a runtime error related to the lack of a module.

Calliope also offers several ways to correct the data it finds as it's loading. You can use the lib/Artists/Master file to correlate several artist variations, or use "calliope rename" to standardize the naming of Compilation files so the loader can detect more artists. For more on the Master file, see blah. For more on renaming, see the command line help, or the INSTALL file.

To load songs into calliope, you must be root. You run the loader by typing "calliope load" (or "calliope load -p" to print every song). This assumes you've run the installer, or linked the calliope binary into the user space (i.e. ln -s /usr/local/calliope/bin/calliope /usr/local/bin/calliope).

Calliope supports loading, tag-writing, playing and burning of m4a files. However, on at least the core duo architecture, m4a songs appear to only play at full volume. The only workaround is to turn up the channel volume to 100%, and use your system volume setting.

Tag writing is supported, but only for a limited subset of the id3 spec (calliope supports close to the full spec for mp3's). Using Audio::M4P::Quicktime currently causes a memory leak during loading (workaround: keep running "calliope load"). Also note that you can convert your mp4a's to mp3's if you prefer, and can use calliope/dev/musicTools/m4a2mp3.pl.

For mp3's, the id3v2 specification allows for an 'RVAD' frame (relative volume adjustment). Calliope supports reading and writing this frame, but MP3::Tag does not. There is a patch available in the patch section of calliope's project website at sourceforge. The patch works. Without it, you may see "Unknown Frame: RVAD" errors during loading, but that just means the relative volume data for that song is not being loaded.