# alsa_and_kxstudio [LinuxMusicians Wiki]
Keywords: alsa_and_kxstudio
Date: 2013-05-12T09:54:13-0400

[[alsa_and_kxstudio]]
LinuxMusicians Wiki

# 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.

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)

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

alsa_and_kxstudio.txt · Last modified: 2013/05/12 09:54 by danboid