workmandb 5 "12/5/92"
Table of contents
workmanrc, workmandb - database and preferences files for workman
$\s-2HOME\s+2/.workmanrc
or value of \s-2WORKMANRC\s+2 variable
$\s-2HOME\s+2/.workmandb
or value(s) of \s-2WORKMANDB\s+2 variable
The .workmandb file stores information about compact discs. It is
generated by
workman(1)
based on user input. Its companion file, .workmanrc, stores user
preferences for each disc. The distinction between the two is
that .workmandb contains only the hard information about a CD (the disc
name, artist, track titles, etc.) and is often shared among several
users. .workmanrc, on the other hand, contains settings like the default
volumes of particular tracks, the numbers of tracks to be avoided, and
so forth. Each user generally maintains a private .workmanrc,
even if a shared .workmandb is being used.
Though
workman(1)
stores different information in each file,
both files have an identical format; most of this manual page will
not distinguish between the two. Each line of the file is of the form
[s-]keyword [optional whitespace-separated arguments]
Empty lines are ignored. Lines starting with unrecognized keywords are
retained and written back out verbatim when the database is saved. The
program preserves the ordering of unrecognized lines, and their positions
relative to the track information. This
allows the database to be extended to hold any sort of information desired
by the user.
Keywords that begin with "s-" apply to sections rather than tracks. See
the sections keyword below. A CD entry with "s-" keywords must
have a sections keyword as well. This is done for backward
compatibility and will disappear eventually, and in any case only applies
to keywords found in .workmandb (the assumption is that users
won't downgrade the versions they run, so .workmanrc doesn't need
to be backward-compatible.)
Some keywords are delimiters that modify the meanings of keywords that
follow; others are position-independent and may occur anywhere in the
file. (In general, the position-independent keywords are concerned with
settings for the tool as a whole, rather than for a particular disc.)
The keywords, and their arguments, follow. All numeric arguments are in
decimal unless otherwise specified.
These keywords must appear before the first CD's entry, and represent
global settings for the tool. They are usually found in .workmanrc.
-
whendone eject | stop | repeat
-
Select the default action taken by
workman(1)
when a CD is finished playing. The default is stop.
-
playnew
-
If specified,
workman(1)
will play unknown CDs (those not listed in .workmanrc) when they're
inserted.
The rest of the keywords describe specific CDs.
-
tracks ntracks start1 start2 ... startn length
-
This keyword delimits the start of a particular CD's entry (and thus
the end of the previous entry.) Its
arguments contain the information used to distinguish one disc from
another. The first argument, ntracks, is the number of tracks
on the CD. For each of those tracks, there is a start value,
which is the starting frame of the track (a frame is approximately
1/75th of a second.) The final argument is the length of the CD in
seconds.
-
sections nsects start1 start2 ... startn
-
Workman(1)
allows the user to split a CD's physical tracks into smaller virtual tracks
called sections.
The sections keyword, which must immediately follow tracks,
defines the starting positions of the sections. Sections are inserted into
the track list, and track numbers are adjusted accordingly, e.g. section 1.2
as presented to the user is represented as track 2 in the database file.
If the sections listed in .workmandb and .workmanrc
differ, .workmandb takes precedence, and sections listed only
in .workmanrc are discarded.
-
cdname name
-
The name of the current disc, as supplied by the user.
-
artist name
-
The artist's name for the current disc, as supplied by the user.
-
playmode mode
-
The default play mode for the CD is mode, a numeric value. 0 is
the "normal" play mode (play all tracks sequentially) and 1 is "shuffle"
mode. If mode is 2 or greater, the default play sequence is a
playlist (mode 2 meaning the first playlist, 3 meaning the second,
etc.)
-
autoplay
-
If autoplay is present, this CD will begin playing immediately
when it is inserted.
-
cdvolume volume
-
The default play volume of the CD, a value from 0 to 32. If volume is 0,
the CD has no default volume (since 0 is the default, cdvolume will
usually not be present in that case.)
-
playlist name number track1 track2 ...
-
Define a playlist for the current CD. The name does not contain any
whitespace; whitespace is converted to "_" on output and "_" is converted
to whitespace on input. (See the \s-2BUGS\s+2 section.) The number
argument is the number of tracks contained in the playlist; the rest of
the line is a list of track numbers. Playlists are ordered; see the
playmode keyword above.
-
track [name]
-
The name of a track. This delimits the start of a
track's information.
The name argument is optional; it will not be present unless the
user has supplied a track name. This line may be divided into display
lines with the "//" token. Additionally, a display line beginning with
"+" indicates that the rest of the display line contains a replacement
disc title (usually the name of a group of tracks,
such as "Symphony No. 2" on a disc
with more than one piece of music.) A display line beginning with "@"
replaces the artist's name for the track. If "+" or "@" is the only
character on a display line,
workman(1)
will use the title or artist from the previous track, searching backwards
as necessary. If a display line is empty, the corresponding display line
from the previous track is used.
-
continue
-
The current track is a continuation of the previous one (e.g. the
second movement of a symphony.)
-
dontplay track
-
Don't play a track (specified by number) unless it's specifically requested
by the user.
-
volume track volume
-
The default play volume for track, specified by number. volume
is a number from 0 to 32. See cdvolume above.
-
mark frame mark-id
-
Define a mark. Marks with IDs other than START and END are
currently
ignored. Those two marks represent the start and end of the part of
the CD to be repeated (as set from the Goodies popup) respectively. The
frame value is an absolute frame number.
The first example is a .workmandb entry for a hypothetical disc. At
least, I hope it's hypothetical.
tracks 6 150 10341 20449 45117 100104 150100 1609
cdname Amazing Accordion Tunes - The Early Years
artist The Hemophiliacs
track Polka 'Till the Sun Goes Down
track I've Got Rocks In My Heart, Baby...
track ...But I Still Get Stoned On You
continue
track You Never Know How Late It Is Until the Clock Strikes Blue
track +The Big Exhibition//@Mussorgsky//IX. La Cabane//Allegro
track +//@////Andante mosso
continue
The third track is a continuation of the second.
The fifth
track is an excerpt from a larger work, originally written by someone
else; it has a two-line track title. The sixth track is a continuation of
the fifth; it uses the same title and artist, and the first line of the
track title is the same, but the second is different.
The .workmanrc entry for the same CD might look like:
tracks 6 150 10341 20449 45117 100104 150100 1609
cdvolume 32
playmode 1
playlist Originals 3 2 3 1
autoplay
dontplay 4
volume 3 20
The tracks line, naturally, is the same in both files, since it
identifies which CD the entry is for. This CD plays at maximum volume
in shuffle mode by default. It has one playlist with tracks 2, 3, and
1. When inserted, it will start up automatically. Track 4 is particularly
unpleasant, so the user never wants to hear it. And track 3 should be
played more quietly than the others.
workman(1)
The playlist keyword is not well thought-out. The name should
go at the end of the line, so it can contain whitespace or whatever else
the user likes.
The file updating algorithm used by
workman(1)
leaves big holes (consisting of empty lines) in the database files. It
makes an attempt to fill the holes when possible rather than growing
the files.