This is the command gom that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator
gom - a generic audio mixer (supports: OSS and derivatives)
This manual page was distributed with gom 0.30.2 (31 May 2004).
gom is a command line mixer manipulation program including a minimal, yet fully functional
internal ineractive text based interface.
Currently, there is also an internal X (xview) interface, but it's not well maintained and
will eventually be removed when a proper alternative is available.
At the moment, gom only supports the Open Sound System (OSS) and its derivatives
(OSS/Lite, OSS/Free (these two are obviously obsolete), the new Linux Sounddriver, ...).
gom tries to provide a complete and convenient interface for all kind of audio mixer
manipulation. gom's facilities include sound driver (compile time) and sound card (run
time) independence, arbitrary mixer selection, loading and saving of mixer settings,
volume fading, verbosity-level driven output, "Un*x-like scripting support", etc.
Apart from the exhaustive command line interface described here, gom has a built-in
interactive terminal interface (that I call gomii, gom interactive interface) using
ncurses. It supports adjustable (this includes disabling) real time updating. The gomii is
not explained in this manual page; please refer to the specific online help when using it.
However, the gomii's handling should be obvious, and actually it "tries to resemble" the
command line options.
There is also one more gomii for X using the xview toolkit. However, gom needs to be
especially compiled to include this, and it is intended to be replaced eventually by some
frontend for X using the gom binary.
And remember: gom is spelled g-o-m, but pronounced backwards for compatibility reasons.
Its real, actual and recursive title is gom, GOM is nOt yet another Mixer (for reasons
beyond the scope of this manual).
There is no mandatory configuration for gom; it runs fine just as it is, without any
configuration. I.e., for senseful use without configuration, one always needs to (at
least) specify the mixer to use. For example:
gom --device=/dev/mixer2 --mute-all
However, you can configure gom a) for the system and b) for an individual user; each user
configuration is preferred in favor of the corresponding system configuration. In fact,
the routine for loading _any_ option file is to 1st try the user file, then the system
file, and else fail.
To configure, you should use the script gomconfig(8) (or most likely gomconfig --force )
that comes with the distribution -- using it as root will change the system configuration,
normal users will change their own configuration. You may well skip the rest of this
chapter if you do so.
All configuration files for gom are simply gatherings of command line options to gom
(where some files are restricted to certain options). Please see "--get-options" below.
The configuration files are (replace the "~/.gom" with "/etc/gom" for the system
Loaded on every startup of gom. Restricted to: "-d". Provides implicit opening of a
Loaded with the option '-O, --originate, --initialize'. Unrestricted. Provides
creation of an initialization routine, even for multiple mixers.
Loaded on every startup of gom. Restricted to '-v, -q, -F, -U'. Provides implicit
creation of certain bevaviours. Discouraged.
These file are accessed simply by their <name> when <mixer-device> is opened. See
A mixer is a set of channels (e.g. vol, line, cd). Each channel has a set of volume
channels (e.g. left, right), and optionally a recording source flag.
The evaluation which channels are available, and, for an available channel, which volume
channels and which flags are available on that specific channel, is being done at runtime;
this is sound card, and possibly sound driver dependent.
Thus, there are sound driver supported channels and specific sound card supported
channels. gom --info-all shows all sound driver supported channels, plus indicating their
Up to the time of this writing, the only sound driver supported is OSS (Open Sound System)
and its derivatives. This driver exists for a variety of platforms and in various flavours
(especially, the new Sounddriver of Linux is a derivative of OSS). (Remark: Gom's point
of view on how a "generic" mixer should look like may be strongly influenced by the OSS
API; however, the author feels that this view might not (yet) be absolutely generic). At
the time of this writing, OSS supports 17 channels, and a maximum of two volume channels
per channel (i.e., only "mono" or "stereo").
Of course, as gom depends on the sound driver installed on the system, its proper
installation (which is naturally not covered here) is mandatory for gom (as for any other
Options can be given in arbitrary order or amount; they are computed in sequence from left
to right. Default values (if any), are given in . For boolean arguments, "1" means on,
"0" means off.
Note that for options with _optional_ arguments, these must be gi ven like "gom -G<file>"
(or "gom --get-settings=<file>" resp.) ra ther than "gom -G <file>" (or "gom --get-
settings <file>" resp.). Otherwise, they will be ignored (or, at least with my
implementat ion of getopt;).
-d, --device, --mixer <argument>
[ **no mixer** ] Set mixer special device file to <argument>. If the new mixer is
valid, the current mixer --if any-- will be closed and the new mixer opened.
Current channel, current channel volume, the channel lock setting and the snapshot
will be resetted to defaults.
-c, --channel <argument>
[first available channel] Set current mixer channel to <argum ent>. The channel may
be given as number or as name.
-C, --volume-channel <argument>
[first available volume channel on current channel] Set volum e channel on current
mixer channel to <argument> (e.g., for s tereo, 0 means left, 1 means right
-k, --lock <argument>
-K, --lock-all <argument>
 Lock or unlock current or all channel(s). Locking means s yncing of the stereo
volumes (balance) for all volume setting s gom might do -- this doesn't change any
volume settings by itself (i.e., it doesn't auto-balance). Thus, a locked channe l
might have unbalanced volumes.
-F, --fade-interval <argument>
 Set fade interval to <argument> seconds. See --fade-to-lo udness.
-U, --refresh-interval <argument>
 Set gomii refresh (update) interval to <argument> second s (zero disables).
-W, --write-config, --save-config
This option is obsolete since version 0.29.10.
Setting mixer options:
-l, --loudness, --volume <argument>
Set current volume channel on current channel to <argument>. If the argument is
being given with a leading "+" or "-", the given value will be added or
substracted, respectively, from the current value. The allowed range is from zero
up to a sou ndcard driver dependent maximum.
-r, --record <argument>
Set recording for current channel on or off.
Set recording for current channel on and disable all other re cording sources.
-L, --fade-to-loudness, --fade-to-volume <argument>
Like --loudness, but fade to the new volume within a time giv en with --fade-
Mute current or all channels. Muting means setting all channe l volumes to 0.
Mixer settings options:
-G, --get-options, --load-options, --get-settings, --load-setting
Get options from/to file <argument>. If no argument is given, the default file
(named "default") is used. Non-absolut given filenames will be expanded to "<mixer-
device>.<argument>", and then first searched for in the user and -- if this fails
-- in the system configuration directory. Any free-form files with gom one-
character command line options in any lines starting with a dash (in column zero)
will make sense to this option.
-S, --save-settings [<argument>]
Save mixer settings to a free-form option file; for the file name, the same rules
as for loading option files apply, except that only the user configuration dir will
be used. Files with thusly expanded filenames will be silently overwritten; other
files never. When saving, care is being taken that the "last recording source
error" can't occur when loading these options (and maybe there are other reasonable
side effects apart from the pure mixer settings (e.g. channel locking, current
channel)). The bottom line to these load/save options is that you can easily save
new and load predefined mixer settings from anywhere.
-Z, --unsnapshot-settings, --restore-settings
[mixer settings after opening a new mixer] Snap- or unsnapsho t to/from current
-O, --originate, --initialize
Load the options file "initialize"; all options are allowed in this file. This is
meant to initialize mixers. For example: "-d/dev/mixer0 -G -d/dev/mixer1 -G". This
would load the default settings file for both the mixer0 and the mixer1 device.
Display current channel information.
Display overall information.
Display version information.
-w, --copyright, --copyleft, --license, --warranty
Display copyright/license/warranty information.
Display this help normally or verbose; both helps are still d ependent on the
current verbosity level (i.e., higher verbosi ty levels might still show more; "gom
-v0 -H" and "gom -h" pr oduce the same output). For the normal verbosity level,
these are reasonable macros.
-e, --execute <argument>
Execute the shell command <argument>.
Command line only options:
Skip all automatically loaded configurations files; this must be given before any
other option (except q (quiet) or v (verbose)).
-i, --interface, --gomii <argument>
Explicitly start up a build-in gomii (<argument>=t: terminal gomii, <argument>=x: X
-v, --verbose [<argument>]
[NORMAL] Set output verbosity to <argument> (number, the high er, the more
verbose). If no argument is given, the level will be increased by 1.
-q, --quiet, --silent
Set output verbosity to QUIET (only error / error help messag es).
-p, --pure, --print <argument>
Pure-print the current channels value given by <argument> to stdout
(<argument>=l|r, according to one character options). Useful for getting values
"into" scripts together with the -- quiet option.
Extract all mixer settings as a gom option line to stdout (e. g. for "setting=`gom
--quiet --extract-settings`" and "gom -- quiet $settings" later in a bash script).
Read options from stdin (until EOF).
HOME used as prefix for the configuration directory .gom/ for a non-root user.
Use gom online using onworks.net services