Rockuefort

Rockuefort "compiles" your playlists. It indexes your music directory and then searches through the metadata to locate the files corresponding to the entries in your playlist. This keeps your playlist decoupled from the actual paths and filenames of your music library. Rockuefort can build your playlist and copy or link the songs into a destination directory. It uses rsync to copy so that only new or changed files need to be copied.

Quick set-up

  1. Install rsync if you want to use the copy mode.

  2. Obtain the latest Rockuefort source.

    $ git clone https://github.com/kalgynirae/rockuefort.git
    $ cd rockuefort
    
  3. Set up a virtual environment and install the required dependencies.

    $ python3 -m venv env
    $ env/bin/pip install -e .
    
  4. Put the installed Rockuefort script on your path.

    # Assuming ~/bin is in your $PATH
    $ ln -s --relative env/bin/rockuefort ~/bin/rockuefort
    

Usage

Scan the /var/music directory:

$ rockuefort index --add /var/music
$ rockuefort scan

List the files that match the entries in the file chiptunes:

$ rockuefort list chiptunes

Link those files into the muzic/blerg/ directory:

$ rockuefort link chiptunes muzic/blerg/

Copy those files into the muzic/wheeeeeeee/ directory:

$ rockuefort copy chiptunes muzic/wheeeeeeee/

Play the playlist with VLC:

$ rockuefort list chiptunes | xargs -d '\n' vlc

Queue songs using mpc (mpc only likes relative paths):

$ rockuefort list --strip '/var/music/' chiptunes | mpc add

Playlist format

Rockuefort playlists are text files with one query per line. Blank lines and lines starting with # are ignored.

A query takes the following format:

[O][N:]TAG=VALUE[|TAG=VALUE...]

Special options for queries

Cropping

The format of a crop tag is

crop=TIME[,TIME...]

where TIME is a string like 2:13.5 (two minutes, 13.5 seconds) or 90 (90 seconds).

Example playlists

What's with the name?

Rockuefort is named after Roquefort cheese.