13

I have read about them several times and encounter them myself when setting the buffer size too low in jack or quitting audio applications. Nobody ever explains though what XRuns are. Can someone clarify and give a definition for XRun? What it is and maybe how they are caused?

Here is an example for an XRun error:

Mon Mar 16 12:32:23 2015: ERROR: JackEngine::XRun: client = <AUDIO APPLICATION> was not finished, state = Running
Mon Mar 16 12:32:23 2015: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error

Note that I replaced the application with <AUDIO APPLICATION>

8

Apparently (ubuntu forums thread),

it's a buffer under-or-overrun, X stands for under or over. It's a sign that your system did not process some buffers in time, so some data is missed. It is particularly true when you run at very low buffer size where the sound card should process incoming buffers very fast (overrun). Some chips cannot cope with small buffer sizes, so you have to increase the buffer length to ease the work done by the sound chip.

2

To add some official documentation from the Alsa Wiki:

An "xrun" can be either a buffer underrun or a buffer overrun. In both cases an audio app was either not fast enough to deliver data to the ALSA audio buffer or not fast enough to process data from the ALSA audio buffer. Usually xruns are audible as crackles or pops.

Various kernel patches and strategies are available to minimise xruns under Jack, eg. kernel pre-emption and the Realtime Linux Security Module. At the time of writing (July 2004) these strategies are in a bit of a state of flux - see http://jackit.sourceforge.net/docs/faq.php#a5 for the latest.

Recent versions of Alsa provide a means of logging and debugging xruns through the proc tree.

The link to debugging xruns is broken, but I found some information here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.