AUDIOCTL(8) | System Manager's Manual | AUDIOCTL(8)

# NAME

`audioctl` — get or set audio driver variables

# SYNOPSIS

`audioctl` | [`-nq`] [`-f` file] [`-w` wait] [name[=value] ...]

# DESCRIPTION

The `audioctl` utility retrieves or sets audio(4) driver variables. The options are as follows:

`-f` file
  Specifies the audio control device or the audio device. The default is /dev/audioctl0.
`-n`
  Suppress printing of the variable name.
`-q`
  Suppress all output when setting a variable.
`-w` wait
  Display variables every wait seconds. `audioctl` will continue to display variables until interrupted.
name[=value]
  Retrieve the specified variable name, or attempt to set it to value. Multiple name[=value] arguments may be given.

If the audio control device is used, then values are only stored in the audio(4) driver; they will be submitted to the hardware the next time the device is opened for playback or recording. If the audio device is used instead of the control device, then values are negotiated with the hardware immediately; this requires exclusive access to the device. Variables may only be changed if the device is not opened for playback or recording by another process.

The following variable names are available:

Name | Meaning
name | device name, as shown by dmesg(8)
mode | current device mode (play, record, or both)
pause | set if not attempting to start
active | set if playing or recording
nblks | number of blocks (in frames) in the play buffer
blksz | number of frames per block
rate | sample rate in Hz
encoding | current sample format
play.channels | number of play channels
play.bytes | bytes played since playback started
play.errors | bytes inserted during underruns
record.channels | number of recording channels
record.bytes | bytes recorded since device started
record.errors | bytes dropped during overruns

Encoding names use the following scheme: signedness (s or u) followed by the precision in bits, the byte-order (le or be), the number of bytes per sample, and the alignment (msb or lsb). Only the signedness and the precision are mandatory. Examples: u8, s16le, s24le3, s24le4lsb.

# FILES

/dev/audioctlN
  audio control devices
/dev/audioN
  audio devices

# EXAMPLES

Once per second, display the number of bytes of silence inserted due to buffer underruns (since the device started playback):

    # audioctl -w 1 play.errors

Use signed 24-bit samples and 44100Hz sample rate:

    # audioctl -f /dev/audio0 encoding=s24 rate=44100

Note the use of /dev/audio0 to force negotiation with the hardware. If the above parameters are not supported by the hardware, then supported ones will be selected instead.

# SEE ALSO

aucat(1), cdio(1), audio(4), mixerctl(8), sysctl(8)

# HISTORY

The `audioctl` command first appeared in NetBSD 1.3.

January 9, 2023 | Debian