> For the complete documentation index, see [llms.txt](https://xeracion-gnu.gitbook.io/gnu-generation-00-en/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xeracion-gnu.gitbook.io/gnu-generation-00-en/professional-audio-editing-with-linux.md).

# Professional audio editing with Linux

&#x9;

![](/files/-LAXtfjlCk55kYExwxd6)

## Professional audio editing with Linux

### Introduction: Latency

The question we must ask ourselves is whether we can approach in a professional way the creation, editing and/or production of audio from Linux using only free software.

![CC0 Creative Commons - https://pixabay.com/es/sonido-ola-forma-de-onda-aural-1781569/](/files/-LAXtmFx1cnsWywvZ8eq)

In order to adequately answer this question, we must start by considering the (spinous) issue of **latency**. Without getting into overly brainy subjects, we can define audio latency as the time between the moment of sound emission and the moment when it is heard. In other words, it is a delay between the generation of a sound and the sound itself.

This is a fundamental issue since, although it is not possible to achieve zero latency - we will explain it later on -, it is necessary that the existing latency should not be appreciable for the human ear or it would be impossible for us to manage the system,"touch" or "interpret" sounds in real time.

Let's see, the sound propagates at a velocity of 340 meters per second; that is, if we emit a sound at a distance of one meter, it will take less than 3 milliseconds to hear it (specifically 2.9 milliseconds). Under this premise, we realize that any musician assumes some implicit latency.

![CC0 Creative Commons - https://pixabay.com/es/guitarra-guitarra-cl%C3%A1sica-756326/](/files/-LAXu0_JaDXNd6b6n-UT)

For example, a guitarist (acoustic) has the sound source at about 40 cm so it will take about 1 millisecond to hear it. A violinist (he is about 10 cm from his sound source) about 0.3 milliseconds. An electric guitarist, if he is about 3 meters from the amplifier, will have to endure a latency of 9 milliseconds.\
This example can be made even more complex if we think of a group of several instrumentalists playing in different parts of a stage and trying to play all together and in tune. But that is not the issue at hand, so we will leave it for a better occasion.

A computer, as we have already said, also has latency but, in this case, it is not due to the distance between the transmitter and the receiver, but rather between the sound generation and its actual emission. Similarly, in the previous case, there are certain permissible latency limits (because they are imperceptible by the human ear).\
**We can usually support, for a "real-time" system, a latency of 11 milliseconds.**

### &#x20;Kernel RT (lowlatency)

So how do we deal with the audio latency of a computer running under the GNU/Linux Operating System? The answer is simple: using a Kernel RT (lowlatency or low latency)\[and, in addition, using a sound server, but we'll talk about that later on]. The "normal" Linux kernel is multitasking and has a priority control system but we can't interrupt the processes in "anywhere" and that's where latency appears. An RT Kernel controls the priority of the processes and is able to manage this latency more efficiently.

![CC0 Creative Commons - https://pixabay.com/es/plato-giratorio-vista-superior-1337986/](/files/-LAXuF9OSl4K3JEnSzhL)

&#x20;We can also help to reduce it by using more modern and powerful hardware. If we would like to install an RT Kernel on GNU/Linux (for example on a Debian branch dystrom) we should do it as follows:

```
 sudo apt-get install linux-headers-lowlatency
 sudo apt-get install linux-lowlatency
 sudo update-grub
```

### &#x20;Jack

Once the RT Kernet is installed, in order to manage incoming and outgoing audio connections in our Linux operating system, we will use JACK (Jack Audio Conection Kit, <http://jackaudio.org/>) which is a sound server that provides low latency connections between applications.

This is the main screen of QjackCt (<https://qjackctl.sourceforge.io/> a graphical interface jack that helps us when interacting with the program)

![source: https://qjackctl.sourceforge.io/qjackctl-screenshots.html](/files/-LAXuXShZqSyFBsSWwRR)

And this is the configuration window where we can see (bottom right) that with this configuration is achieved a latency of 5.8 milliseconds (any value below 11 milliseconds is more than acceptable).

![](/files/-LAXue_cYNRhOVknPDQM)

Having configured JACK (this will be dealt with at a later time) we are ready to start working with our audio software (compositing, editing, production,...) in our favorite GNU/Linux distribution. In fact, there are Linux-specific distributions for audio processing at all levels (Ubuntu Studio, KXStudio, Musix, AVLinux,...). Both the configuration of the JACK audio server, as well as the choice of the software we want to use and/or the most appropriate distribution are topics that we will deal with later.

**See you later and don't let the music stop!**

### [Next article](/gnu-generation-00-en/free-drawings.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://xeracion-gnu.gitbook.io/gnu-generation-00-en/professional-audio-editing-with-linux.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
