Home KXStudio > Repositories > FAQ

KXStudio : Repositories : FAQ

This section contains frequent asked questions about the KXStudio repositories.

You might also want to check:

How do I activate the KXStudio repos?

Just follow the instructions here.

What computer systems are supported?

Any Debian or Ubuntu based system, running GNU/Linux.
For Debian, version 10 (Buster) is required; on Ubuntu, 18.04 (Bionic).

Intel-based and ARM-based systems are supported, 32 and 64bit for both.
For Intel-based systems a SSE2 capable CPU is required, while for ARM systems it is a neon-vfpv4 capable CPU.

I found an issue with a package, where can I report it?

Bug reports and package requests should be posted in the Github tracker here.

Can I make a request for this new awesome-super-great application?

You can, but it will likely not be answered. The KXStudio repositories focus on audio plugins, not general applications.

Why are applications not the focus for the KXStudio repos?

A few reasons actually:

  • Applications can easily have flatpaks, snaps or whatever.
    If they provide officially supported binaries, why not use them instead of duplicating efforts (of making binaries).
  • They often have very complex dependencies compared to plugins, some are actually quite difficult to build.
  • Distributions have a lot of margin to get things right, compared to plugins.
    Plugins can be tricky for general GNU/Linux distributions, as they need to be self-contained.
    Applications are mostly fine as long as they start.
  • Likely I will not use them, so they offer no benefit to me.
Why are plugins tricky for general distributions?

As you likely already know, we run a lot of audio plugins at the same time, all in the same process space. If a single plugin misbehaves or crashes, it usually brings down the entire host or DAW.

So it is vital that we build the plugins in a way to minimize issues. They must be self-contained and never conflict with each other (as much as possible anyway). This entails, for example:

  • Building all plugin code and its dependencies with hidden symbols, so only the plugin-format-defined entry-points are visible within a shared object.
    When this is not done, a plugin that uses a different audio library version from the host will crash.
    This is usually not a problem if one uses only binaries from the distributions, but we cannot assume that it will always be that way...
    Note that this is not just about building plugins in a certain way, but also all of its dependencies.

    For example: flatpaks, snaps, appimages and others include their own version of libraries needed by the application, which will publically expose symbols.
    In such cases, loading a plugin that uses a library also used by the host will result in a crash if their target versions don't match.
    Packages built in the KXStudio repositories do not have this issue.
  • SSE2 optimizations required to prevent denormals.
    We want to avoid denormals in audio applications, as it leads to very high CPU usage.
    Checking for denormals on each buffer cycle is not cost-free for the CPU, but we can setup things so that they don't even happen to begin with!
    This can be achieved by activating specific build flags (-ffast-math -mfpmath=sse) and set a few CPU flags in the audio thread.
    Some plugins include such flags as part of their build rules, but not all.
    Packages in the KXStudio repos have all these flags active (all plugin builds, plus audio threads set the needed CPU flags), so denormals become a thing of the past. :)

    Something to note is that distributions like Debian, which want to keep support for old hardware, cannot enable this. This is because old hardware does not always have SSE2 support, so it becomes risky to enable it.
Why are packages prefixed with "5:" that bumps it over regular packages from other sources?

This is for protection of those running the KXStudio repositories in rolling-release style distributions.
An update from the distribution which does not follow KXStudio rules is a potential source of issues (see the points above).
Better to have something stable that you know won't break during updates.
(The focus on plugins in the repos means it is much less work to maintain them, and this critical. The KXStudio repos should be up-to-date as much as possible)