Audio User Guide for Ubuntu Studio
Here's a short introduction to audio on Ubuntu Studio. Shortly about what audio systems we have, and how to make use of them.
Pulseaudio - The Desktop Sound System
What is pulseaudio?
Pulseaudio is the default sound system on Ubuntu Studio, and handles all desktop sound. It uses alsa as its backend, meaning alsa provides the drivers for your soundcard.
Controlling pulseaudio is done mainly from the volume control in the indicator area. But, for some cards, not everything can be adjusted from there and you will need to use the generic alsamixer or a special mixer (mentioned below) to get further control of your audio device.
Alsa provides driver support
Any device that is supported by alsa is potentially supported by Pulseaudio. Usually only pro audio multichannel cards may have problems with pulseaudio. If you find that your multichannel card is not working with pulseaudio, but is supported by alsa, it will still work perfectly with jack. To get desktop audio working for such a card, you will need to set up the pulseaudio to jack bridge mentioned below.
Firewire will only work with special configuration
Currently, firewire devices are not supported by alsa, and may only be used with jack using the ffado firewire driver. But, since we are now able to connect Pulseaudio to jack, using the pulseaudio to jack bridge, we can circumvent this problem.
Many cards are muted by default, and need to be accessed with a special mixer in order to be controlled. There is a generic alsa mixer in the main menu at menu -> Audio Production -> Mixers -> Mixer . To use it, you will first need to select the card you wish to control, and make its controls visible from Select Controls. If I for example want to raise volumes for a m-audio delta device, I will first need to make all the ADCs (Audio to Digital Converter) and DACs (Digital to Audio converter) visible to control the volume for inputs and outputs.
There are also card specific mixers. They are not actually "brand" specific, but "chip" specific, so some mixers will work with many brands that share the same internal chip. These mixers are not only needed to control your device with pulseaudio, but also with jack, since both use alsa as its' backend.
To find out which chip your pci audio device has, look up the brand here. Select it, and try to find the chipset for your model. One particularly common chipset is the envy24(ice1712).
Here's a list of mixers for pci devices that are preinstalled with Ubuntu Studio (comes with the alsa-tools package):
echomixer is the Linux equivalent of the Echoaudio console application from Echoaudio. It is a tool to control all the features of any Echoaudio soundcard. This includes clock sources, input and output gains, mixers, etc.
hdspmixer is the Linux equivalent of the Totalmix application from RME. It is a tool to control the advanced routing features of the RME Hammerfall DSP soundcard series. To handle RME Hammerfall cards you might also need the tools hdspconf and hdsploader
mudita24 - is a control tool for Envy24 (ice1712) based sound cards, and replaces the older envy24control (M-Audio Delta Series)
rmedigicontrol - is a control tool for RME Digi32 and RME Digi96 sound cards. It provides a graphical frontend for all the sound card controls and switches.
More information on supported hardware can be found here.
Jack - The Pro Audio Sound System
Jack is a sound server, and like pulseaudio, it is able to use alsa as it backend. But, jack is also able to use other drivers, such as the firewire driver developed by ffado. Commonly, those are the only two drivers used with jack for audio devices on a Linux machine.
Why use Jack?
Many audio applications will only work with jack - Applications meant for pro audio use will often only work with jack.
Jack is extremely low latency capable - Jack is able to give you extremely low latencies at the right conditions. Which is a must if you are to play a live software instrument.
Some devices will only work with jack - As mentioned above, firewire devices will only work with jack.
Jack connectability - When using jack you can connect any application to any other application just as if you were using physical cables. You are thus not restricted by the functionality of a single application. You can even route pulseaudio to jack, and make use of all of it's desktop audio capability.
The easiest way to start jack is to use Ubuntu Studio Controls. To learn more, a guide to Ubuntu Studio Controls can be found here.
Sometimes it's just a matter of knowing what to do in which order. Maybe you need to start your computer with the firewire device already attached, or the other way around. Try different combinations, if you are sure the device is supported. (more info on supported devices here).
A common thing to try is to set Jack Periods to 3 in Ubuntu Studio Controls.
Xruns are either a buffer overflow or buffer underflow of the audio system in Jack. These can be heard as a popping or a ticking sound. Reducing or eliminating Xruns can be done with multiple methods, such as:
- Turning off and using a wired network connection
- Turning off bluetooth
Disabling the PulseAudio-Jack bridge
- Reduce background processes
If none of these methods work, the only way to reduce or eliminate Xruns is to raise your buffer to a higher setting.