KXStudio Website https://kx.studio/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Repositories:FAQ.php 4.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. $PAGE_TITLE = "KXStudio : Repositories : FAQ";
  3. $PAGE_TYPE = "KXSTUDIO";
  4. $PAGE_SOURCE_1 = ARRAY("/Repositories", "/Repositories:FAQ");
  5. $PAGE_SOURCE_2 = ARRAY("Repositories", "FAQ");
  6. include_once("includes/header.php");
  7. ?>
  8. <div class="box box-description">
  9. <p>
  10. This section contains frequent asked questions about the KXStudio repositories.
  11. </p>
  12. <p>
  13. You might also want to check:
  14. </p>
  15. <ul>
  16. <li><a href="<?php echo $ROOT; ?>/Repositories">General information and how to activate</a></li>
  17. <li><a href="<?php echo $ROOT; ?>/Repositories:Applications">Applications in the repositories</a></li>
  18. <li><a href="<?php echo $ROOT; ?>/Repositories:Plugins">Plugins in the repositories</a></li>
  19. </ul>
  20. </div>
  21. <h5>How do I activate the KXStudio repos?</h5>
  22. <p>
  23. Just follow the instructions <a href="<?php echo $ROOT; ?>/Repositories">here</a>.
  24. </p>
  25. <h5>What computer systems are supported?</h5>
  26. <p>
  27. Any Debian or Ubuntu based system, running GNU/Linux.<br/>
  28. For Debian, version 10 (Buster) is required; on Ubuntu, 18.04 (Bionic).<br/>
  29. <br style="line-height:0.5em"/>
  30. Intel-based and ARM-based systems are supported, 32 and 64bit for both.<br/>
  31. For Intel-based systems a SSE2 capable CPU is required, while for ARM systems it is a neon-vfpv4 capable CPU.
  32. </p>
  33. <h5>I found an issue with a package, where can I report it?</h5>
  34. <p>
  35. Bug reports and package requests should be posted in the Github tracker
  36. <a href="https://github.com/KXStudio/Repository/issues" target="_blank">here</a>.
  37. </p>
  38. <h5>Can I make a request for this new awesome-super-great application?</h5>
  39. <p>
  40. You can, but likely will not be answered back. The KXStudio repositories focus on audio plugins, not general applications.
  41. </p>
  42. <h5>Why are applications not the focus for the KXStudio repos?</h5>
  43. <p>
  44. A few reasons actually:
  45. </p>
  46. <ul>
  47. <li>Applications can easily have flatpaks, snaps or whatever.<br/>
  48. If they provide officially supported binaries, why not use them instead of duplicating efforts (of making binaries).</li>
  49. <li>They often have very complex dependencies compared to plugins, some are actually quite difficult to build.</li>
  50. <li>Distributions have a lot of margin to get things right, compared to plugins.<br/>
  51. Plugins can be tricky for general GNU/Linux distributions, as they need to be self-contained.<br/>
  52. Applications are mostly fine as long as they start.</li>
  53. <li>Likely I will not use them, so they offer no benefit to me.</li>
  54. </ul>
  55. <h5>Why are plugins tricky for general distributions?</h5>
  56. <p>
  57. As you likely already know, we run a lot of audio plugins at the same time, all in the same process space.
  58. If a single plugin misbehaves or crashes, it usually brings down the entire host or DAW.<br/>
  59. </p>
  60. <p>
  61. So it vital that we build the plugins in a way to minimize issues.
  62. They must be self-contained and never conflict with each other (as much as possible anyway).
  63. This entails, for example:
  64. </p>
  65. <ul>
  66. <li><b>Building all plugin code and its dependencies with hidden symbols</b>, so only the plugin-format-defined entry-points are visible within a shared object.<br/>
  67. When this is not done, a plugin that uses a different audio library version from the host will crash.<br/>
  68. 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...<br/>
  69. Note that this is not just about building plugins in a certain, but also <b>all of its dependencies</b>.<br/>
  70. <br style="line-height:0.5em"/>
  71. For example: flatpaks, snaps, appimages and others include their own version of libraries needed by the application, which will publically expose symbols.<br/>
  72. 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.<br/>
  73. Packages built in the KXStudio repositories do not have this issue.</li>
  74. <li><b>SSE2 optimizations required to prevent denormals</b>.<br/>
  75. We want to avoid denormals in audio applications, as it leads to very high CPU usage.<br/>
  76. 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!<br/>
  77. This can be achieved by activating specific build flags (<i>-ffast-math -mfpmath=sse</i>) and set a few CPU flags in the audio thread.<br/>
  78. Some plugins include such flags as part of their build rules, but not all.<br/>
  79. Packages in the KXStudio repos have all these flags active (all plugin builds, plus audio threads set the needed CPU flags),
  80. so denormals become a thing of the past. :)<br/>
  81. <br style="line-height:0.5em"/>
  82. Something to note is that distributions like Debian, which want to keep support for old hardware, cannot enable this.
  83. This is because old hardware does not always have SSE2 support, so it becomes risky to enable it.</li>
  84. </ul>
  85. <p><br/></p>
  86. <?php
  87. include_once("includes/footer.php");
  88. ?>