UMIX(1)

NAME
umix - adjust soundcard mixers

SYNOPSIS
umix [-channel [+|-] level [R|P]]... [-hILqSV] [-d device] [-D driver] [-f configpath]

DESCRIPTION
umix is an advanced program for adjusting audio mixers. It can be used flexibly from the command line, or from an interactive user interface. For each channel specified, level is the volume you want to set, with both left and right specified as the same, or in left:right format. You can also specify optional + or - in front of the level for increasing or decreasing the volume for channel, with amount level. The optional R or P at the end of the -channel argument sets the channel as a current recording source or normal play, respectively. You can use both upper- and lowercase letters. When invoked with no options, or -f and -d are the only options, the interactive user interface is started (if no interactive user interfaces are available, umix is started with the -q option). Note that the actual levels are read from the device only once at the startup.

OPTIONS
Channel options are used to specify the channel you want to adjust. Your sound device may not support all of these. You can check what channels are supported with the -q option.

  CHANNEL OPTIONS
-v, --volume
    Main Volume
-b, --bass
    Bass
-t, --treble
    Treble
-s, --synth
    Synth
-p, --pcm
    PCM
-e, --speaker
    PC Speaker
-l, --line
    Line input
-m, --mic
    Microphone
-c, --cd
    Compact Disc player
-x, --mix
    Mixing monitor
-P, --pcm2
    Alternative PCM
-r, --record
    Record level
-i, --inputgain
    Input gain
-o, --outputgain
    Output gain
-1, --line1
    Line input 1
-2, --line2
    Line input 2
-3, --line3
    Line input 3
-4, --digi1
    Digital input 1
-5, --digi2
    Digital input 2
-6, --digi3
    Digital input 3
-7, --phonein
    Phone input
-8, --phoneout
    Phone output
-9, --video
    Video/TV audio in
-R, --radio
    Radio in
-M, --monitor
    Monitor volume
-a, --all
    All (sets all channels)

  ADDITIONAL OPTIONS

-d device, --device=device
    Specify the device used in mixing. Defaults to /dev/mixer.

-D driver, --driver=driver
    Specify the mixer driver used. Defaults to OSS. To see the available drivers, use --version.

-f configpath, --file=configpath
    Specify the file used to read and save settings. Defaults to /etc/umixrc.

-I, --interactive
    Start interactive user interface after processing non-interactive command line options. eg. umix -L -v+20 -I would load settings, increment volume by 20 and then start the interactive user interface.

-L, --load
    Load previously saved settings from configpath. If configpath is specified as '-', settings are loaded from standard input.

-S, --save
    Save current mixer settings to configpath. If configpath is specified as '-', settings are printed to standard output.

-q, --query
    Query and print all active channel volumes and stats.

-h, --help
    Display help and exit.

-V, --version
    Display version information and exit.

EXAMPLES

umix -q
    Prints all volumes of active channels and their stats. The output should be self-explanatory.

umix -v100 -b88 -t80 -p94
    Sets the main volume to 100, bass to 88, treble to 80 and PCM to 94.

umix --vol 100:80 --synth 90:30
    Here long options and stereo settings are used. Sets volume`s left to 100, right to 80 and synth`s left to 90 and right to 30.

umix -b-20 -p+20:10 -o-40:45
    Here levels are incremented or decremented from their original values. Decreases bass by 20, increases PCM`s left by 20 and right by 10 and the last one decreases output gain`s left by 40 and right by 45.

umix -mR -s20P -l-10p
    This sets the mic as a recording source, synth as normal play with volume 20 and line as normal play with volume decreased by 10.

umix -f /some/path/umixrc -L -q
    Here the config path is specified as /some/path/umixrc, settings are loaded from that file and printed.

umix -d /dev/mixer2 -f /somepath/umsettings
    The device that is used for mixing is specified as /dev/mixer2, config path is set as /somepath/umsettings and the interactive user interface is automatically started, because -f and -d are the only options.

INTERACTIVE USER INTERFACES
One of the available user interfaces is started depending on where and how the program is started. If started from a console, the curses user interface is started by default. If the environment variable $DISPLAY is set, then a X based UI is started, if available.

CURSES USER INTERFACE
The (n)curses based user interface. Designed to be used from a console or x-terminal.

  USAGE
On the left side is the channel menu, which consists of channel names, stats and levels. On the right side is the balance menu. The currently chosen channel is indicated with highlighting its name and drawing arrows around the chosen menu. You can move around with default vi/emacs/arrow keys. Moving up and down selects the current channel, moving left and right adjusts the level or balance, depending on which menu you are in. Tab toggles between level and balance menus. If the channel does not support stereo mixing (it`s left and right values cannot differ), then a '|' at center of the balance is drawn.

  KEY BINDINGS

j / ^n / arrow down
    Move down.

k / ^p / arrow up
    Move up.

h / ^b / arrow left
    Move left.

l / ^f / arrow right
    Move right.

] / .
    Increase volume by fifth of maximum amount.

[ / ,
    Decrease volume by fifth of maximum amount.

Tab Toggle between volume and balance menus.

Space
    Toggle play / record source.

L   Load settings.

S   Save settings.

f   Specify the config path. This presents a dialog in the lower border. If no string is given, the path remains unchanged.

m   Mutes all those channels that are not already mute. If pressed again, returns levels back to the state before muting.

x   Excludes the current channel. Same as m but only with the current channel.

H   Displays the help.

q   Exit the program.

^l  Refresh the screen.

FILES

/etc/umixrc
    The default configuration file.

BUGS
When setting recording sources, it is not checked if the channel really is the wanted source or play after writing to the device. Sometimes the balance may be off by one when leaving and entering again from the curses user interface. When used with terminals that have columns below 35, the output is not optimal.

AUTHOR
Sakari Lehtonen (sakari@ionstream.fi)