4014365e42
The current situation is fairly confusing, where an integer is interpreted as a percent until you slap a decimal on it and magically it becomes an absolute value. Let's have a flag day in 14.0 and remove this shim entirely. Setting with percent can still be useful, so allow a trailing '%' to indicate as such. As a side effect, we tighten down the format allowed in the volume a little bit by ensuring there's no trailing garbage after the value once it's separated into left and right components. Reviewed by: christos, hselasky, pauamma_gundo.com (manpages) Relnotes: yes Differential Revision: https://reviews.freebsd.org/D35101
276 lines
6.5 KiB
Groff
276 lines
6.5 KiB
Groff
.\"-
|
|
.\" Copyright (c) 2021 Christos Margiolis <christos@FreeBSD.org>
|
|
.\"
|
|
.\" Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
.\" of this software and associated documentation files (the "Software"), to deal
|
|
.\" in the Software without restriction, including without limitation the rights
|
|
.\" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
.\" copies of the Software, and to permit persons to whom the Software is
|
|
.\" furnished to do so, subject to the following conditions:
|
|
.\"
|
|
.\" The above copyright notice and this permission notice shall be included in
|
|
.\" all copies or substantial portions of the Software.
|
|
.\"
|
|
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
.\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
.\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
.\" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
.\" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
.\" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
.\" THE SOFTWARE.
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd April 29, 2022
|
|
.Dt MIXER 8
|
|
.Os
|
|
.Sh NAME
|
|
.Nm mixer
|
|
.Nd manipulate soundcard mixer controls
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl f Ar device
|
|
.Op Fl d Ar unit
|
|
.Op Fl os
|
|
.Op Ar dev Ns Op Cm \&. Ns Ar control Ns Op Cm \&= Ns Ar value
|
|
.Ar ...
|
|
.Nm
|
|
.Op Fl d Ar unit
|
|
.Op Fl os
|
|
.Fl a
|
|
.Nm
|
|
.Fl h
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
utility is used to set and display soundcard mixer device controls.
|
|
.Pp
|
|
The options are as follows:
|
|
.Bl -tag -width "-f device"
|
|
.It Fl a
|
|
Print the values for all mixer devices available in the system
|
|
.Pq see Sx FILES .
|
|
.It Fl d Ar unit
|
|
Change the default audio card to
|
|
.Ar unit .
|
|
The unit has to be an integer value.
|
|
To see what unit values are available, look at the number each mixer device has by running
|
|
.Nm .
|
|
.It Fl f Ar device
|
|
Open
|
|
.Ar device
|
|
as the mixer device
|
|
.Pq see Sx FILES .
|
|
.It Fl h
|
|
Print a help message.
|
|
.It Fl o
|
|
Print mixer values in a format suitable for use inside scripts.
|
|
The mixer's header (name, audio card name, ...) will not be printed.
|
|
.It Fl s
|
|
Print only the recording source(s) of the mixer device.
|
|
.El
|
|
.Pp
|
|
The list of mixer devices that may be modified are:
|
|
.Bd -ragged -offset indent
|
|
.Cm vol , bass , treble , synth , pcm , speaker , line , mic , cd , mix ,
|
|
.Cm pcm2 , rec ,
|
|
.Cm igain , ogain ,
|
|
.Cm line1 , line2 , line3 ,
|
|
.Cm dig1 , dig2 , dig3 ,
|
|
.Cm phin , phout , video , radio ,
|
|
and
|
|
.Cm monitor .
|
|
.Ed
|
|
.Pp
|
|
Not all mixer devices are available.
|
|
.Pp
|
|
Without any arguments,
|
|
.Nm
|
|
displays all information for each one of the mixer's supported devices to
|
|
.Ar stdout .
|
|
If the
|
|
.Ar dev
|
|
argument is specified,
|
|
.Nm
|
|
displays only the values for
|
|
.Ar dev .
|
|
More than one device may be specified.
|
|
.Pp
|
|
Commands use the following format:
|
|
.Bl -column xxxxxxxxxxxxxxxxxxxxxxxx -offset indent
|
|
.It Sy Name Ta Sy Action
|
|
.It Ar dev Ta Display all controls
|
|
.It Ar dev Ns Cm \&. Ns Ar control Ta Display only the specified control
|
|
.It Ar dev Ns Cm \&. Ns Ar control Ns Cm \&= Ns Ar value Ta Set control value
|
|
.El
|
|
.Pp
|
|
The available controls are as follows (replace
|
|
.Ar dev
|
|
with one of the available devices):
|
|
.Sm off
|
|
.Bl -column xxxxxxxxxxxxxxxxxxxxxxxx -offset indent
|
|
.It Sy Name Ta Sy Value
|
|
.It Ar dev Cm .volume Ta Xo
|
|
.Ar vol |
|
|
.Oo Cm \&+ | Cm \&- Oc Ar lvol Oo % Oc
|
|
.Oo Cm \&: Oo Cm \&+ | Cm \&- Oc Ar rvol Oo % Oc Oc
|
|
.Xc
|
|
.It Ar dev Cm .mute Ta Cm 0 | 1 | ^
|
|
.It Ar dev Cm .recsrc Ta Cm ^ | + | - | =
|
|
.El
|
|
.Sm on
|
|
.Pp
|
|
The
|
|
.Ar dev Ns Cm .volume
|
|
control modifies a device's volume.
|
|
The optional
|
|
.Ar lvol
|
|
and/or
|
|
.Ar rvol
|
|
values have to be specified.
|
|
The values should typically be decimal numbers between 0 and 1 with at most 2
|
|
digits after the decimal point.
|
|
A trailing percent sign indicates that the value should be treated as a
|
|
percentage of 1.0, rather than an absolute value.
|
|
Thus, 70% means the same as 0.7.
|
|
If the left or right volume values are prefixed with
|
|
.Cm +
|
|
or
|
|
.Cm - ,
|
|
the value following will be used as a relative adjustment, modifying the
|
|
current settings by the amount specified.
|
|
Note that relative percentages are still relative to 1.0, not to the current
|
|
value.
|
|
If the volume is currently 0.40 and an adjustment of +20% is specified, then
|
|
thet final volume will be set to 0.60.
|
|
.Pp
|
|
Volume can also be set using the shorthand
|
|
.Ar dev Ns Cm =value .
|
|
This syntax does not apply to other controls.
|
|
.Pp
|
|
The
|
|
.Ar dev Ns Cm .mute
|
|
control (un)mutes a device.
|
|
The following values are available:
|
|
.Bl -tag -width = -offset indent
|
|
.It Cm 0
|
|
unmutes
|
|
.Ar dev
|
|
.It Cm 1
|
|
mutes
|
|
.Ar dev
|
|
.It Cm ^
|
|
toggles the mute of
|
|
.Ar dev
|
|
.El
|
|
.Pp
|
|
The
|
|
.Ar dev Ns Cm .recsrc
|
|
control modifies the recording sources of a mixer.
|
|
.Nm
|
|
marks devices which can be used as a recording source with
|
|
.Sy rec .
|
|
Recording sources are marked with
|
|
.Sy src .
|
|
To modify the recording source you can use one of the following modifiers
|
|
on a
|
|
.Sy rec
|
|
device:
|
|
.Bl -tag -width = -offset indent
|
|
.It Cm ^
|
|
toggles
|
|
.Ar dev
|
|
of possible recording devices
|
|
.It Cm +
|
|
adds
|
|
.Ar dev
|
|
to possible recording devices
|
|
.It Cm -
|
|
removes
|
|
.Ar dev
|
|
from possible recording devices
|
|
.It Cm =
|
|
sets the recording device to
|
|
.Ar dev
|
|
.El
|
|
.Sh FILES
|
|
.Bl -tag -width /dev/mixerN -compact
|
|
.It Pa /dev/mixerN
|
|
The mixer device, where
|
|
.Ar N
|
|
is the number of that device, for example
|
|
.Ar /dev/mixer0 .
|
|
PCM cards and mixers have a 1:1 relationship, which means that
|
|
.Pa /dev/mixer0
|
|
is the mixer for
|
|
.Pa /dev/pcm0
|
|
and so on.
|
|
By default,
|
|
.Nm
|
|
prints both the audio card's number and the mixer associated with it
|
|
in the form of
|
|
.Ar pcmN:mixer .
|
|
The
|
|
.Pa /dev/mixer
|
|
file, although it does not exist in the filesystem, points to the default
|
|
mixer device and is the file
|
|
.Nm
|
|
opens when the
|
|
.Fl f Ar device
|
|
option has not been specified.
|
|
.El
|
|
.Sh EXAMPLES
|
|
Change the volume for the
|
|
.Cm vol
|
|
device of the
|
|
.Pa /dev/mixer0
|
|
mixer device to 0.65:
|
|
.Bd -literal -offset indent
|
|
$ mixer -f /dev/mixer0 vol.volume=0.65
|
|
.Ed
|
|
.Pp
|
|
Increase the
|
|
.Cm mic
|
|
device's left volume by 0.10 and decrease the right
|
|
volume by 0.05:
|
|
.Bd -literal -offset indent
|
|
$ mixer mic.volume=+0.10:-0.05
|
|
.Ed
|
|
.Pp
|
|
Toggle the mute for
|
|
.Cm vol :
|
|
.Bd -literal -offset indent
|
|
$ mixer vol.mute=^
|
|
.Ed
|
|
.Pp
|
|
Set
|
|
.Cm mic
|
|
and toggle
|
|
.Cm line
|
|
recording sources:
|
|
.Bd -literal -offset indent
|
|
$ mixer mic.recsrc=+ line.recsrc=^
|
|
.Ed
|
|
.Pp
|
|
Dump
|
|
.Pa /dev/mixer0
|
|
information to a file and retrieve back later:
|
|
.Bd -literal -offset indent
|
|
$ mixer -f /dev/mixer0 -o > info
|
|
\&...
|
|
$ mixer -f /dev/mixer0 `cat info`
|
|
.Ed
|
|
.Sh SEE ALSO
|
|
.Xr mixer 3 ,
|
|
.Xr sound 4 ,
|
|
.Xr sysctl 8
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
utility first appeared in
|
|
.Fx 2.0.5
|
|
and was rewritten completely in
|
|
.Fx 14.0 .
|
|
.Sh AUTHORS
|
|
.An Christos Margiolis Aq Mt christos@FreeBSD.org
|