Noob’s Guide to Linux Audio: ALSA, OSS, and Pulse Audio Explained
…ALSA is responsible for giving a voice to all modern Linux distributions. It’s actually part of the Linux kernel itself, providing audio functionality to the rest of the system via an application programming interface (API) for sound card device drivers.
Users typically interact with ALSA using alsamixer, a graphical mixer program that can be used to configure sound settings and adjust the volume of individual channels. Alsamixer runs in the terminal, and you can invoke it just by typing its name. One particularly useful keyboard command is activated by hitting the M key. This command toggles channel muting, and it’s a fairly common fix to many questions posted on Linux discussion boards.
…the user-facing layer of the Linux audio system in most modern distributions is called PulseAudio.
The job of PulseAudio is to pass sound data between your applications and your hardware, directing sounds coming from ALSA to various output destinations, such as your computer speakers or headphones. That’s why it’s commonly referred to as a sound server.
If you want to control PulseAudio directly, instead of interacting with it through a volume control widget or panel of some sorts, you can install PulseAudio Volume Control (called pavucontrol in most package repositories).
If you feel that you have no use for the features provided by PulseAudio, you can either use pure ALSA or replace it with a different sound server.