audioplay - play audio files

audioplay [-iV] [-v vol] [-d dev] [file]...

The audioplay utility copies the named audio files (or the standard input if no filenames are present) to the audio device. If no input file is specified and standard input is a tty, the program exits with an error message.

The input files must contain a valid audio file header. The encoding information in this header is matched against the capabilities of the audio device and, if the data formats are incompatible, an error message is printed and the file is skipped. Compressed ADPCM (G.721) monaural audio data is automatically uncompressed before playing.

Minor deviations in sampling frequency (that is, less than 1%) are ordinarily ignored. This allows, for instance, data sampled at 8012 Hz to be played on an audio device that only supports 8000 Hz. If the -V option is present, such deviations are flagged with warning messages.

The following options are supported:

-d dev

Device: The dev argument specifies an alternate audio device to which output should be directed. If the -d option is not specified, the AUDIODEV environment variable is consulted (see below). Otherwise, /dev/audio is used as the default audio device.


Immediate: If the audio device is unavailable (that is, another process currently has write access), audioplay ordinarily waits until it can obtain access to the device. When the -i option is present, audioplay prints an error message and exits immediately if the device is busy.

-v vol

Volume: The output volume is set to the specified value before playing begins, and is reset to its previous level when audioplay exits. The vol argument is an integer value between 0 and 100, inclusive. If this argument is not specified, the output volume remains at the level most recently set by any process.


Verbose: Prints messages on the standard error when waiting for access to the audio device or when sample rate deviations are detected.


Help: Prints a command line usage message.

File Specification: Audio files named on the command line are played sequentially. If no filenames are present, the standard input stream (if it is not a tty) is played (it, too, must contain an audio file header). The special filename can be used to read the standard input stream instead of a file. If a relative path name is supplied, the AUDIOPATH environment variable is consulted (see below).

See largefile(5) for the description of the behavior of audioplay when encountering files greater than or equal to 2 Gbyte (2^31 bytes).

The full path name of the audio device to write to, if no -d argument is supplied. If the AUDIODEV variable is not set, /dev/audio is used.


A colon-separated list of directories in which to search for audio files whose names are given by relative pathnames. The current directory (.) can be specified explicitly in the search path. If the AUDIOPATH variable is not set, only the current directory is searched.

audioconvert(1), audiorecord(1), largefile(5), audio(7I)

audioplay currently supports a limited set of audio format conversions. If the audio file is not in a format supported by the audio device, it must first be converted. For example, to convert to voice format on the fly, use the command:

example% audioconvert -f voice myfile | audioplay

The format conversion is not always be able to keep up with the audio output. If this is the case, you should convert to a temporary file before playing the data.

February 8, 2020