---
name: "sndioctl"
section: "1"
platform: "linux"
package: "sndio"
version: "1.10.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "openbsd"]
url: "https://new.carta.tech/sndioctl"
---

# sndioctl(1)

manipulate audio device controls

## NAME

**sndioctl** – manipulate audio device controls

## SYNOPSIS

**sndioctl** \[**-dimnqv**\] \[**-f** *device*\] \[*command* *...*\]

## DESCRIPTION

The **sndioctl** utility can display or manipulate controls of [sndio(7)](/sndio/7.md) 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)](/sndio/7.md) 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
```

## SEE ALSO

[sioctl\_open(3)](/sioctl_open/3.md)
