plow(1)

NAME
plow - create m3u playlist (and start a player)

SYNOPSIS
plow [-|+<c>[e] <str> [<str>]*]* [-Q] [-0...9] [-S] [--add] [--noplay]
plow [-|+<c>[e] <str> [<str>]*]* [-Q] --set <c> <str> [<c> <str>]*
plow -L <tbl>
plow -q <sql>
plow -C
plow -I /path/to/music
plow --help
plow --version

DESCRIPTION
plow is a powerfull command-line tool for putting songs from your music collection into a playlist. Most id3v2/ogg tag information is used by plow to create a (sqlite3) database for filtering. Additionaly plow supports fields like mood, tempo, language, etc.

OPTIONS
This sets the filter for creating the playlist.
    search for fields containing <str> search for fields not containing <str> <str> matches exactly is one of the following characters:
        album artist genre language mood rating situation tempo title
This sets the field <c> to <str> in all songs that matches the actual filter.
    is one of the following characters:
        album artist genre language mood rating situation tempo
Print out the executed SQL query. Select the player set in configuration file. Shuffle the playlist. Append the files to the playlist (do not overwrite the old one). Create the playlist normally, but do not start a player. Print out values for <tbl>. <tbl> is one of album, artist, genre, language, mood, rating, situation or tempo. Execute SQL query <sql> and print the result. Copy all files in the current playlist to the portable device set in configuration file. Add files in /path/to/music to database. Files allready in database are ignored. Print out a help message. Print out version.

EXAMPLES

  CREATING PLAYLISTS
This creates a playlist containing all songs. artist contains queen artist contains queen and title contains rock artist is exactly Queen artist not contains queen artist is not Queen artist contains queen or beatles artist contains queen and not queens artist contains queen and stone age

  SETTING VALUES
sets language = english and rating = 'best music ever' for all songs where artist contains queen

CONFIGURATION FILE
~/.plow/plow.conf is the configuration file for plow. It is in an INI like format with [section] and key=value pairs. Lines starting with a # are comments. Whitespaces are ignored, except within the value.

  SECTION [general]
If all your music is in one folder you can set it here. If you add songs to your database path is stripped from file names.
Default: empty Sets the path to the playlist. The file name is always plow.m3u. This value is given as an argument to the players you set.
Default: ~/.plow Sets the default output order. This is in SQL syntax.
Default: album ASC, part ASC, track ASC Here you have to set your default player, so that it plays a playlist. The playlist is given as an argument to the players.
Default: empty (in default configuration file it is mplayer -playlist) You can set up to 9 additional player. If one is not found, plow will fallback to player0.
Default: empty If you do not want plow to fork a player, then add its number here (you can use space or nothing to seperate them). This is normally the case if you use a command-line player like mplayer.
Default: empty Sets the path to your portable device.
Default: empty If you want plow to rename the files before copying to portable, you can set here how to do that. Therefore you can use all fields from the database surrounded by '[' and ']' like [title]. Additionally there are some special fields like [artistOrAlbum], which are explained in "SPECIAL FIELDS FOR portable_name AND extinf" below.
The following characters are replaced by a '_': \\n\r\t"'$@*{}[]()/:;&? and space
The fields and strings here are seperated by space characters.
The value above will create something like Queen/The_Platinum_Collection-01-16-We_will_rock_you.ogg for a song from a normal album and something like The_Matrix/01-07-The_Prodigy-Mindfields.ogg for a song from a compilation album.
Default: empty (no renaming) A m3u file can contain extended information, so if a player can't read tags from files or reads them only if the file is played, it shows (maybe) this as file information. You can use the same as in portable_name here.
Default: empty (no extinf in playlist) If your music folders contains other files than the songs, set here which extensions your music files have. Otherwise plow tries to read tags from every file.
Default: empty (no filtering by file extension)

  SECTION [abbr]
In this section you can set abbrevations for often used commands. You can use all command-line options here. An abbrevation is something like <name> = options. Abbrevations are called with a '.', like plow .compilation or plow .rock. Examples: This executes the sql command and prints out a table containing all albums that are compilations (tbl_album.album_id_artist = 1). This creates a playlist containig all files where genre contains rock and rating contains good or best.

  SECTION [vorbis]
Here you set how your ogg/vorbis files are tagged. (The values here are the defaults used by plow.) If you have a record that is divided into more than one disc, this field is used for the disc number. This is used for unique file ids. If you have a record that is divided into more than one disc, this field is used for the total number of discs.

  SECTION [id3v2]
Here you set how your mp3s are tagged. Since ID3v2 is more restricted then vorbis comments you could only change the 'special' fields here.
plow supports the following frame types:
    user text frame with a description string comment frame with a description string and a language (the language is ignored by plow) unique file identifier frame with an owner string popularimeter frame (rating) with an owner string

The frame identifier have to be followed by a '/' and the description or owner string you used in the frame. If you just want to use the first frame of that type, or there is just one, than you can use a '*'. Is there nothing after the '/' it means an empty description or owner string.

You can use all frame types for all fields, e.g. tempo = UFID/* or rating = COMM/rating.

(The values here are the defaults used by plow.)

  SPECIAL FIELDS FOR portable_name AND extinf
track number with a leading 0 total number of tracks with a leading 0 part number with a leading 0 total number of parts with a leading 0 file extension (the part from the last '.' of tbl_music.file) artist if the album is no compilation, empty otherwise album if the album is no compilation, empty otherwise empty if the album is no compilation, artist otherwise empty if the album is no compilation, album otherwise artist if the album is no compilation, album otherwise album if the album is no compilation, artist otherwise

DATABASE FILE
~/.plow/plow.sqlite is a SQLite3 database file containing all the data used by plow.

AUTHOR
René Bählkow

SEE ALSO
http://plow.projekt182.de/