Overview

Wagtail is a glorified set of wrapper scripts to encode audio files. Being a console based application Wagtail is not especially user-friendly but it does have its charms.

Clients and server

Wagtail is based around a client/server approach. The server process is responsible not only for the actual encoding but also any other processing done to the files, as well as 'tagging' (setting of file meta-data) and movement of the files to their final destination.

The role of the clients is simply to supply files and metadata to the server. The client processes do not get to directly affect how the files are handled, but can choose which 'task' is performed.

The terms 'client' and 'server' refer to the processes, which are distinct. However, there is no reason why both processes cannot run on the same machine.

Tasks, classes and formats

A 'task' is a collection of instructions relating to a file. For example, a task defined where the files are placed, the naming scheme of the files, the name (if any) of the playlist and which additional processing instructions are performed, e.g. normalisation. The task may also restrict which 'classes' can be used for this task. Tasks are defined in task.conf on the server.

A 'class' is a combination of a 'format' which associated quality setting. With a class you can define standards such as "archival" which references a lossless format or "stream" which references a lossy format at a low-bitrate. Classes are defined in class.conf.

A 'format' is a description of one individual audio format, e.g. 'mp3'. The format definition includes the encoding and decoding commands as well as the commands for tagging files. A format definition can also include a number of quality settings, switches passed to the encoder to affect the output. These quality settings are referenced by 'class' definitions.