TCMixer is a compact X11 audio mixer.
Can be controlled from keyboard. Supports mixer callbacks. Very fast Xlib based UI routines, optimized mixer code.
Version 2.0 adds complete keyboard control over the mixer. Read the ASCII diagram below:
| TAB || Q | .---.
`-----'`---' | ^ |
| Z || X || C || || || || M | | < || v || > |
Tab, Right arrow: next channel
Mod-Tab, Left arrow: previous channel
Up Arrow volume up
Down Arrow volume down
Z,X,C Line, Mic, CD record source
The keys are grabbed as scancodes, so I think this should work on all international/whatnot keyboards. zxc are in the lower left corner and the m key is 3 keys after, so its like "zxc...m" on the bottom row. "Q" should be right next to the Tab key. Scancodes returned by the keys located there should be the same regardless of keyboard layout. If not, let me know.
Current channel is marked with a green LED on the slider bar. Slider slide, changing volume. There is a row of buttons on the top. If a button is yellow, it means the channel is on and not muted. If it's off, the channel is muted. Push it again to go back to the last known volume setting (remembered before pushing the button). If a channel was muted and you moved the slider, without pushing the button, it will become unmuted... If the button is red, you will not see a mixer slider for that channel, and it means your soundcard doesn't support that particular channel (most likely going to be true for Bass / Treble channels on elcheapo cards and also on some PCI cards (AudioPCI for example)).
Most modern sound card controls are here, and this should be enough for basic volume adjustment when you play your cd or mp3s or whatever. Missing controls will be deleted from the face of the mixer, but it will not be resized, so if your card is so lame that half the controls are "red" on the mixer, then you should find a new card.
Choose recording source by using radio buttons under the sliders by clicking on them or pressing z, x or c keys to select Line, Mic, or CD as recording source. Again, if that doesnt work, complain to your sound card manufacturer.
Oh yah, you quit by clicking anywhere in the words "TCMixer", or pressing the "q" button on keyboard.
Since that lameness called DEVFS has been included in the kernel, people might have shit like /dev/bus/pci/slot0/card0/controller0/sound/mixer for their mixer device, so you can use the -m option with tcmixer to specify your own mixer device:
% ./mixer -m /dev/dev/fs/is/lame/sound/mixer
It works for me, with ALSA. It should work with OSS, but I never bothered to test it. Some OSS drivers are known to only have volume steps from say 0 to 64 instead of 0 to 100 like ALSA. Up to this day I don't know which card does this. I have received some reports that this could be your standard SB16 if used with kernel sound drivers under kernel 2.2. If your card does this, you can email me, and tell me the card name, oss version, shit from /dev/sndstat, etc etc - if you want that fixed you will need to tell me as much information as you can possibly find about your sound shit, because the only people who reported this to me so far didn't even bother to tell me what soundcard they have. This 0 to 64 stepping will break the mixer, and since fuckheads who wrote OSS did not provide an API to check the min/max ranges for a particular channel I cannot test for this situation at run-time. Sorry. Use ALSA, it will fake your lame 0 to 64 card into a smooth 0 to 100 curve.