sndioctl —
manipulate audio device controls
sndioctl |
[-dimnqv]
[-f device]
[command ...] |
The
sndioctl utility can display or manipulate
controls of
sndio(7) audio devices, like the
output level. The options are as follows:
- -d
- Dump the raw list of available controls and exit. Useful as
a debugging tool.
-
-f
device
- Use this sndio(7) audio
device.
- -i
- Display characteristics of requested controls instead of
their values.
- -m
- Monitor and display audio controls changes.
- -n
- Suppress printing of the variable name.
- -q
- Suppress all printing when setting a variable.
- -v
- Enable verbose mode, a.k.a. multi-channel mode. By default
controls affecting different channels of the same stream are disguised as
a single mono control to hide details that are not essential.
If no commands are specified, all valid controls are displayed on
stdout. Unless
-d,
-m,
-n, or
-i are used, displayed lines are valid commands.
The set of available controls depends on the audio device.
Commands use the following two formats to display and change controls
respectively:
[group/]stream[channel].function
[group/]stream[channel].function=value
On the left-hand side are specified the control group (if any), the affected
stream name, and the optional channel number. Examples of left-hand side
terms:
output.level
output[0].level
If the channel number (including the brackets) is omitted, the command is
applied to all channels.
Values are numbers between 0 and 1. Two-state controls (switches) take either 0
or 1 as value, typically corresponding to the
off
and
on states respectively.
If a decimal is prefixed by the plus (minus) sign then the given value is added
to (subtracted from) the current value of the control. If “!” is
used instead of a number, then the switch is toggled.
Increase the
level control affecting all
output channels by 10% of the maximum:
$ sndioctl output.level=+0.1
Mute all
output channels:
$ sndioctl output.mute=1
Toggle the above
mute control:
$ sndioctl output.mute=!
Allow audio recording and set all
input channels to
50%:
# sysctl kern.audio.record=1
$ sndioctl input.mute=0 input.level=0.5
sioctl_open(3)