GOM(1) | Contributed tool | GOM(1) |
gom - a generic audio mixer (supports: OSS and derivatives)
gom {OPTION}
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 configuration):
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 specific availability.
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 sound-using program).
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;).
Exit status is 0 if no errors were detected while running gom; it is greater than 0 if one or more errors were detected. This should be interpreted as warning, not necessarily as failure.
(The amount of detected errors will be printed out if the verbosity level is VERBOSE or higher; the warning exit status is currently always 2, but this may change).
(This section is incomplete and most likely confusing ;).
Copyright (c) 1996-2004 Stephan Alexander Sürken <absurd@olurdix.de> GPL.
The X gomii of the gom package is also Copyright (c) Hannu Savolainen 1993 (as it is originally based on "xvmixer" by Hannu Savolainen).
The gom package is licensed under the GPL (GNU General Public License). The files "README" and "COPYING" in the original distribution contain the exact terms.
Information about OSS can currently (1999 August 18) be found at "http://www.opensound.com/".
Gom does not detect recursion in option files (e.g. by adding a "-Gcd" to an options file named "cd").
There must always be at least one recording source, so when writing option files for gom "by hand", first put all to-be-active recording sources on, then all to-be-inactive recording sources off, else one recording source might not become inactive in unfortunate circumstances. Mixer settings automatically written by gom are saved in this manner.
The mixer settings files may be inconsistent between different sound drivers (i.e., if the channel numbering is different).
Loading settings from a options file that was saved from a different mixer may lead to errors (if some option is not available on the current mixer), or to silently not-setting of newly available options of the current mixer; saving mixer settings with the mixer name as prefix since 0.29.99 avoids this at least for not explicitly given mixer settings file names.
The "text blocking output" cuts words (true, too, for the OPTIONS section of this manual page).
X gomii bugs:
The X gomii has some "bugs" due to xview and/or the lack of documentation available for the author (all the rest of this section):
The X gomii creates its display objects with xview, but doesn't check for allocation errors. I guess xview somehow handles this ;).
The X gomii's scroll window displays in a non-fixed font.
Some placements in the X gomii are still static; it could imagine that the display might look a little bit screwed up if you use a different configuration than mine (e.g. a different font).
Xview, in general, "seems to be a little bit unstable" (the author itself locked all his major input devices (i.e., mouse & keyboard (you should be so clever to have some other means to access your computer when programming xview ;)) several times by using xview applications under X (not necessarily the X gomii) for whatever unknown reasons (and without being able to reproduce the bug properly). (()())
If starting gom results in loading and initializing the kernel sound driver (e.g. if the sound driver gets kerneld-autoloaded under Linux), the sound card's settings are set to the driver's default by the driver itself. gom has nothing to do with these defaults and doesn't change any settings -- any program using the sound driver in that situation would have the same effect.
31 May 2004 | 3rd party |