|[<--] [Cover] [Table of Contents] [Concept Index] [Program Index] [-->]|
Debian: `alsa-base' WWW: http://www.alsa-project.org/
This chapter covers the basic control of audio on Linux-based systems, including how to adjust the audio mixer and how to play and record sound files using basic tools. You can also play and record audio with
snd (see Editing Sound Files) and many other
In order to have sound working on your system, you need to have a sound driver installed and configured for your sound card. There are two free sound drivers that are popularly used on Linux-based systems. The standard Open Sound System driver ("OSS/Free") by 4Front Technologies is currently part of the Linux kernel and is what comes as default with most Linux distributions. The Advanced Linux Sound Architecture ("ALSA") is another free driver that is becoming popular with musicians who use Linux.
NOTE: Most systems come configured so that you must be the
superuser to be able to use sound devices, including audio CDs. If this
is the case on your system, ask your administrator to give you access to
these devices, typically by adding you to the
(see Groups and How to Work in Them).
The following table lists common audio file formats and their
traditional file name extensions. You can also use
determine a file's format (see Determining File Type and Format).
|FILE EXTENSION||SOUND FORMAT|
||Apple Macintosh audio file.|
||Sun Microsystems audio file (8000 Hz, u-law compression).|
||Both are names for the audio compact disc format, used for burning audio CD-Rs and CD-RWs (44.1 KHz raw stereo).|
||Global System for Mobile Communications (GSM) speech file format, used in some voice-mail applications.|
||The standard extensions for MIDI files.|
||MPEG II, Level 3 file.|
||Ogg Vorbis file.|
||Raw audio data.|
||IRCAM SoundFile format, used by some music composition software, such as CSound and MiXViews.|
||SoundBlaster VOC file.|
||Microsoft RIFF format ("WAV").|
A mixer program is used to adjust various audio settings, such as volume and recording levels, and is also used for turning on or muting the microphone or other input device. You must use a mixer to adjust your audio settings before you play or record sound.
ALSA's default mixer is called
amixer, and the following recipes
assume its use. There are other mixers, and some of them are easier to
amixer. If you want a graphical mixer, install the
aumix package, or see the end of this chapter for others.
To list all audio input and output devices and their settings, type amixer with no options.
Your sound card's components are organized in groups, from the Master group containing the master left and right volume settings to the individual groups for audio compact discs and digital sound files. (These groups have nothing to do with the file access groups described in Groups and How to Work in Them.)
$ amixer | less [RET]
The following table describes some of the important sound groups that
||The master volume settings.|
|| Digital audio for playing sound files; the first channel is group
||The audio compact disc player (a cable must be connected from the CD-ROM drive to the sound card).|
||The synthesizer device for MIDI.|
|| The sound input device (the jack on the back of the soundcard is
usually labeled |
|| The microphone device (the jack on the back of the soundcard is
usually labeled |
$ amixer get MIC [RET]
$ amixer get PCM,1 [RET]
To change a mixer setting, give the
amixer `set' command as
an option, followed by both the group and setting to change as
arguments. To change the volume level for a device, give either a
numeric value or a percentage for the volume level.
$ amixer set Master 75% [RET]
$ amixer set PCM 30 [RET]
The special `mute' and `unmute' arguments are used for muting the volume of a given device. Before you can record something, you must unmute the input device you want to record from. Remember to also mute the microphone after you have finished recording, to avoid feedback when you turn up your speakers.
$ amixer set MIC unmute capture [RET]
$ amixer set MIC mute [RET]
$ amixer set Master 80% unmute [RET]
To select a device for recording, use
set followed by the name of
the device and the `capture' argument, which designates the
specified group as the one to capture sound from for recording.
LINE INjack as the recording source, type:
$ amixer set Line capture [RET]
$ amixer set MIC capture [RET]
NOTE: You can have only one group selected for capture at a time, and when you select a group as an input source for recording, you are simply turning the microphone or other input on; recording does not occur until you use a recording tool.
Debian: `sox' WWW: http://home.sprynet.com/~cbagwell/sox.html
play tool distributed with
sox (a sound file
translation tool) can recognize and play many audio formats, including
WAV, VOC, AU, AIFF, and SND format files, as well as audio CD-format
files and various raw binary files; just about the only common audio
formats it can't handle are MP3 and MIDI files, which are discussed in
the sections to follow.
$ play pentastar.aiff [RET]
NOTE: Before you begin playing sound, make sure you've set the master and PCM volume levels with the mixer (see Adjusting the Audio Controls). The most common reason for no sound being produced when you try to play sound is not having the volume turned up!
ALSA comes with
aplay, a tool for playing sound files that is
play, but does not recognize as many formats.
Debian: `mpg321' WWW: http://freshmeat.net/projects/mpg321/
To play an MP3 file, give its name as an argument to
$ mpg321 september-wind.mp3 [RET]
To buffer the audio, useful for when the system is running many processes or otherwise has a lot of activity, give a buffer size, in kilobytes, as an argument to the `-b' option. The default is 0 (no buffer); if you need this option, use a size of at least 1024KB (which is 1MB), or about six seconds of MP3 audio.
You can also use
mpg321 to play "streaming" MP3 audio from the
Web; just give the URL of the MP3 stream as an argument.
$ mpg321 http://example.net/broadcast/live.mp3 [RET]
$ mpg213 -b 2048 http://example.net/broadcast/live.mp3 [RET]
mpg321 tool is a free software replacement of
mpg123, another command-line MP3 player that is not free software.
But there are a great many other MP3 players available; some of them are listed in Other Sound File Tools.
Debian: `playmidi' WWW: http://playmidi.openprojects.net/
playmidi tool is for playing MIDI files; give the name of the
MIDI file to play as an argument.
$ playmidi copa-cabana.mid [RET]
If you have a non-MIDI sound card, you can still play MIDI files by
giving the `-f' option, which sends the MIDI output to the FM
synthesizer on the sound card, which in turn plays it using FM patches
that come with the
$ playmidi -f copa-cabana.mid [RET]
Debian: `sox' WWW: http://home.sprynet.com/~cbagwell/sox.html
To record sound, first select an input device as a source for recording. Sound cards may have
LINE IN jacks, as
well as connections to the CD-ROM drive, all of which are sound inputs
that can be recording sources. When you select a device for capture,
your recording will come from this source.
Recording occurs from the currently active input, if any, which must be set with the mixer; unmute it and set its volume level before you begin recording. (Be sure to turn the volume on your speakers all the way off, or you'll get feedback.)
To record audio to a file, use the
rec tool. It can write many
audio file formats, either to a format you specify with the `-t'
option, or by determining the format to use based on the file name
extension you give the output file (see Sound File Formats). Type C-c to stop recording.
Give the name of the sound file to record as an argument; if a `.wav' file is specified, it records a simple monaural, low-fidelity sound sample by default.
$ rec hello.wav [RET]
This command begins an 8,000 Hz, monaural 8-bit WAV recording to the file `hello.wav', and keeps recording until you interrupt it with C-c. While the default is to make a low-fidelity recording -- 8,000 Hz, monaural 8-bit samples -- you can specify that a high-fidelity recording be made. (But remember that high-fidelity recordings take up much more disk space.)
To make a stereo recording, use the `-c' option to specify the number of channels, giving 2 as the argument. To make a 16-bit recording, give `w' ("wide") as the argument to the `-s' ("sample size") option.
Set the recording sample rate by giving the samples per second to use as an argument to the `-r' option. For CD-quality audio at 44,100Hz, use `-r 44100'.
Finally, to record a file in a particular format, either give the name of the format as an argument to the `-f' option, or use the traditional file name extension for that format in the output file name (see Sound File Formats).
$ rec -s w -c 2 -r 44100 goodbye.wav [RET]
$ rec goodbye.cdr [RET]
NOTE: When you're not recording sound, keep the inputs muted (see Muting an Audio Device); this way, you can have a microphone plugged in without having feedback when playing sounds. Also, make sure the volume levels are not set too high or too low when recording; getting the right level for your microphone or other input device may take some initial adjustment.
rec is part of the
There are many mixer, playback, and recording tools available. The following table lists some of them, giving their Debian package name and URL, where available.
|| A simple, visual audio mixer tool that can be used in X or in the
console -- use this if you are too frustrated by |
|| A popular audio sound file player for X, the Free Audio Music
Player can play MP3 and Ogg Vorbis formats, and its graphical appearance
can be changed with "themes."
|| An MP3 player.
|| Use this tool to cut and paste MP3 frames and fix broken MP3
|| Inspired by Winamp, XMMS is a popular, comprehensive audio player
for X that features an array of plug-ins, support for many sound formats
(including MP3 and Ogg Vorbis), and "skins" to change its look and
feel; it can use FreeAmp themes as well -- see previous listing for
[<--] [Cover] [Table of Contents] [Concept Index] [Program Index] [-->]