Table of Contents
ALSA and KXStudio
The Advanced Linux Sound Architecture is the primary sound system used by Linux. Even those who only plan to use JACK with the FFADO (FireWire) drivers should still have familiarity with ALSA.
kmix
The main ALSA mixer included with KXStudio is called kmix. You can use kmix to adjust audio input and output levels, mute and unmute channels and change other non-FireWire audio device settings such as selecting between SPDIF and analog inputs if your device has such features. The kmix system tray icon looks like this:
If you have a scrollwheel function on a mouse or trackpad, you can hover over the kmix tray icon and adjust the Master volume by moving the scrollwheel up and down. If you left-click on the kmix tray icon it will display a mini mixer. To see a full mixer with more controls, click the 'Mixer' button within the mini mixer menu.
Here we see the main kmix mixer window. kmix displays the controls for each ALSA device on its own separate tab. In this screenshot the 'HDA Intel' onboard audio device is selected. The 'UAC3553B' tab displays controls for a USB audio device whilst 'Playback Streams' can be ignored unless you are using PulseAudio.
You will notice that each fader has a small speaker icon just below it. When these speaker icons display a small red cross on them, as 'Mic' and 'Mic Boost' do in the screenshot, that indicates the channel is currently muted. You can toggle muting simply by left-clicking on the speaker icons.
In the bottom right corner of the mixer window there is a tool icon. This icon allows you to configure which channels are available to control for the currently selected kmix device tab. You may find that some controls you need are missing at first, so you may add them via this Configure Channels window. A common example of when you might need to use the kmix Configure Channels window is if you are using any SPDIF (optical) ports, which are referred to as IEC958 devices under GNU/Linux, as such controls are often not displayed by default.
Whilst there is a standard defined for USB audio devices, relatively few devices fully comply with it. What this means for ALSA and USB devices is that sometimes you will see no controls under kmix for some USB devices or controls may not function as expected. Such issues may be worked around by inserting an app such as Non mixer or jack_mixer between an audio source and the problematic output device until the issue is fixed within ALSA.
Cadence and ALSA
Cadence is primarily used to control and monitor the various Linux sound systems, including ALSA, under KXStudio. The main Cadence window has a 'JACK bridges' section which contains two ALSA/JACK bridges - one for ALSA audio and one for MIDI. You will not hear audio produced by ALSA-only apps when JACK is running if the ALSA audio bridge is stopped. Likewise, you will be unable to access MIDI devices if the ALSA MIDI bridge isn't running when JACK is.
non-JACK apps
As JACK increases in popularity, it is more widely supported. However, several apps are still ALSA-only. Such apps will have their audio channeled via the same ALSA to JACK bridge. These include:
Adobe Flash Player (as used by Firefox and other browsers for sites such as YouTube)
Skype If you don't require webcam or video support then it is recommended you use Mumble instead of Skype for VOIP. Although Mumble doesn't yet officially support JACK, there is a build of Mumble with JACK support available from the KXStudio repositories. However, if you need to use Skype it works fine provided the ALSA audio bridge is running.
Many games and other various programs
Some other apps have only partial JACK support. These work with JACK directly, have their own JACK connections, and function without the ALSA to JACK bridge, but their connections are not persistent. They will temporarily connect to JACK while playing but drop their connection as soon as playback is stopped. Examples of these apps are:
Audacity
SMPlayer
VLC
Hence, none of these offer the individual audio routing functionality or other features offered by fully JACK-native software.
Useful ALSA commands
The following commands can be useful for troubleshooting ALSA issues in a terminal:
alsamixer
The original ALSA mixer
cat /proc/asound/cards
Displays attached ALSA devices
cat ~/.asoundrc
Displays your ALSA configuration file
sudo alsactl store 0
Saves the current settings for ALSA device 0