NAME
sndioctl
—
manipulate audio device
controls
SYNOPSIS
sndioctl |
[-dimnqv ]
[-f device]
[command ...] |
DESCRIPTION
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.
EXAMPLES
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