blog.notmyidea.org/faire-de-la-musique-sous-linux.html

147 lines
No EOL
13 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<title>
Faire de la musique sous&nbsp;Linux - Alexis Métaireau </title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
href="https://blog.notmyidea.org/theme/css/main.css?v2"
type="text/css" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml"
type="application/atom+xml"
rel="alternate"
title="Alexis Métaireau ATOM Feed" />
</head>
<body>
<div id="content">
<section id="links">
<ul>
<li>
<a class="main" href="/">Alexis Métaireau</a>
</li>
<li>
<a class="selected"
href="https://blog.notmyidea.org/journal/index.html">Journal</a>
</li>
<li>
<a class=""
href="https://blog.notmyidea.org/code/">Code, etc.</a>
</li>
<li>
<a class=""
href="https://blog.notmyidea.org/weeknotes/">Notes hebdo</a>
</li>
<li>
<a class=""
href="https://blog.notmyidea.org/lectures/">Lectures</a>
</li>
<li>
<a class=""
href="https://blog.notmyidea.org/projets.html">Projets</a>
</li>
</ul>
</section>
<header>
<h1 class="post-title">Faire de la musique sous&nbsp;Linux</h1>
<time datetime="2021-08-04T00:00:00+02:00">04 août 2021</time>
</header>
<article>
<p><em>Update du 07/08 : ajout des infos sur le noyau temps&nbsp;réel</em></p>
<p>Faire de la musique electronique à été pour moi l&#8217;occasion de réinstaller Windows pour pouvoir utiliser <a href="https://www.ableton.com/en/live/">Ableton Live</a>, un des logiciels les plus utilisés dans le domaine. J&#8217;étais content de passer du temps à faire de la musique plutôt que du temps à faire tomber les choses en marche, même si mon éthique n&#8217;était pas tout à fait&nbsp;d&#8217;accord.</p>
<p>C&#8217;est un choix que je ne regrette pas : je me suis vraiment amusé, j&#8217;ai <a href="https://soundcloud.com/the-lost-triangle/">fait quelques morceaux</a> et j&#8217;ai pu goûter au plaisir du truc. Un des avantages d&#8217;apprendre en utilisant des outils <em>mainstrem</em>, c&#8217;est qu&#8217;il y a beaucoup de ressources disponibles (tutoriels vidéo, ami⋅es), ce qui m&#8217;a beaucoup facilité la tache dans la découverte du&nbsp;domaine.</p>
<p>Et puis, <a href="https://yohanboniface.me/">Yohan</a> m&#8217;a parlé de <a href="https://www.bitwig.com/">Bitwig</a>, un logiciel de type « Digital Audio Workstation » (<span class="caps">DAW</span>) qui tourne nativement sous Linux, et après une petite scéance de test j&#8217;ai eu envie de creuser un peu le sujet de l&#8217;audio sous&nbsp;Linux.</p>
<p>L&#8217;occasion donc d&#8217;installer une station musicale sous Linux (j&#8217;utilise <a href="https://archlinux.org/">Arch Linux</a>). Ça marche plutôt bien, ce n&#8217;est pas trop long à mettre en place (une fois qu&#8217;on sait quoi faire), même si ça reste moins simple que sous Windows. Je suis très content du résultat&nbsp;!</p>
<h2 id="configuration">Configuration</h2>
<p>Installer Arch n&#8217;est pas très compliqué, mais passe par de la ligne de commande, c&#8217;était l&#8217;occasion de réviser un peu mes classiques, mais je peux comprendre que ce soit intimidant. Si vous voulez avoir un installeur graphique, il me semble que <a href="https://manjaro.org/">Manjaro</a> (un dérivé d&#8217;Arch) en propose&nbsp;un.</p>
<h3 id="configuration-du-noyau-linux">Configuration du noyau&nbsp;Linux</h3>
<p>Ça me paraissait compliqué, et pourtant c&#8217;était très simple ! J&#8217;ai utilisé le noyau « linux-zen » avec quelques options spécifiques « threadirqs » et le mode « performance » pour les&nbsp;processeurs.</p>
<p>J&#8217;ai du installer un paquet logiciel pour avoir des privilèges « temps réel » indispensable pour l&#8217;audio : sans ça le plugin <span class="caps">VST</span> « Kontakt » plantait directement au&nbsp;lancement.</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>pacman<span class="w"> </span>-S<span class="w"> </span>realtime-privileges
sudo<span class="w"> </span>gpasswd<span class="w"> </span>-a<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$USER</span><span class="s2">&quot;</span><span class="w"> </span>realtime
</code></pre></div>
<div class="highlight"><pre><span></span><code>yay<span class="w"> </span>linux-zen
yay<span class="w"> </span>rtirq
</code></pre></div>
<p>Édition de <code>/etc/default/grub</code> pour utiliser threadirqs et passer le scheduling du processeur en « performance&nbsp;».</p>
<div class="highlight"><pre><span></span><code><span class="nv">GRUB_CMDLINE_LINUX_DEFAULT</span><span class="o">=</span><span class="s2">&quot;loglevel=3 quiet threadirqs cpufreq.default_governor=performance&quot;</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1"># Regénérer la configuration de grub</span>
grub-mkconfig<span class="w"> </span>-o<span class="w"> </span>/boot/grub/grub.cfg
<span class="c1"># S&#39;assurer que « fsync » soit bien utilisé par wine.</span>
<span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;export WINEFSYNC=1&quot;</span><span class="w"> </span>&gt;&gt;<span class="w"> </span>~/.profile
<span class="c1"># Ajout au groupe audio</span>
sudo<span class="w"> </span>gpasswd<span class="w"> </span>-a<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$USER</span><span class="s2">&quot;</span><span class="w"> </span>realtime
</code></pre></div>
<p>Le <span class="caps">DAW</span> <a href="https://www.bitwig.com/">Bitwig</a> que j&#8217;utilise n&#8217;est pas open source, mais tourne nativement sous Linux. Son installation sous Arch est vraiment on ne peut plus simple : <code>yay bitwig-studio</code>.</p>
<h2 id="vsts-instruments-virtuels">VSTs (Instruments&nbsp;virtuels)</h2>
<p>J&#8217;ai acheté quelques <span class="caps">VST</span> qui tournent nativement sous Linux mais également d&#8217;autres qui n&#8217;ont pas de version Linux native. C&#8217;est par exemple le cas de&nbsp;Kontakt.</p>
<p>Dans ce cas, il faut passer par le pont logiciel <a href="https://github.com/robbert-vdh/yabridge">yabridge</a> ainsi qu&#8217;une version récente de wine : <a href="https://github.com/Frogging-Family/wine-tkg-git/releases/">wine-tkg</a>.</p>
<p>Pour installer yabridge, <code>yay yabridge-bin</code>.</p>
<p>Installation de wine-tkg&nbsp;:</p>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>https://github.com/Frogging-Family/wine-tkg-git/releases/download/6.11.r4.g0dd44a25/wine-tkg-staging-fsync-git-6.11.r4.g0dd44a25-326-x86_64.pkg.tar.zst
sudo<span class="w"> </span>pacman<span class="w"> </span>-U<span class="w"> </span>wine-tkg-staging-fsync-git-6.11.r4.g0dd44a25-326-x86_64.pkg.tar.zst
</code></pre></div>
<h3 id="installation-dun-vst-kontakt">Installation d&#8217;un <span class="caps">VST</span>&nbsp;(Kontakt)</h3>
<p>Ensuite, installez le <span class="caps">VST</span> dans wine&nbsp;:</p>
<div class="highlight"><pre><span></span><code>wine<span class="w"> </span>Kontakt<span class="se">\ </span><span class="m">6</span>.3.0<span class="se">\ </span>Setup<span class="se">\ </span>PC.exe
<span class="nb">cd</span><span class="w"> </span>patch
wine<span class="w"> </span>Kontakt<span class="se">\_</span>patch<span class="se">\_</span>installer<span class="se">\_</span><span class="m">6</span><span class="se">\_</span>3_0.exe
</code></pre></div>
<p>Spécifiez l&#8217;emplacement pour les <span class="caps">VST64</span> : <code>C:\Program Files\Steinberg\VstPlugins</code> (emplacement souvent utilisé pour les <span class="caps">VST2</span>), je ne sais pas pour quelle raison mais utiliser un emplacement classique peut résoudre des&nbsp;bugs.</p>
<p>Une fois installé, vous pouvez ajouter le fichier qui contient vos VSTs dans yabridge&nbsp;:</p>
<div class="highlight"><pre><span></span><code>yabridgectl<span class="w"> </span>add<span class="w"> </span><span class="s2">&quot;/home/alexis/.wine/drive_c/Program Files/Steinberg/VstPlugins&quot;</span>
</code></pre></div>
<p>Puis faire <code>yabridgectl sync</code> qui va générer les .<code>so</code> (format Linux) à partir des <code>.dll</code> (format&nbsp;Windows).</p>
<p>Il ne reste plus qu&#8217;à ajouter le dossier qui contient les <span class="caps">VST</span> dans Bitwig et c&#8217;est bon&nbsp;!</p>
<p>J&#8217;utilise sans soucis ces instruments Kontakt&nbsp;:</p>
<ul>
<li>Una Corda&nbsp;(Piano)</li>
<li>Studio Drummer&nbsp;(Batterie)</li>
</ul>
<p><img alt="bitwig-studio-studio-drummer.png" src="/images/musique-linux.png"></p>
<h2 id="carte-son">Carte&nbsp;son</h2>
<p>J&#8217;utilise une carte son Scarlett 18i8 gen3, qui fonctionne nativement pour sortir de l&#8217;audio et pour en capturer. Par contre certains controles ne sont pas exposés, et le logiciel de contrôle / configuration ne tourne pas sous&nbsp;wine.</p>
<p>Mais… (coup de bol ?) quelqu&#8217;un s&#8217;est motivé <a href="https://github.com/geoffreybennett/scarlett-gen2">pour écrire le code noyau</a> qui permet de faire ça nativement. Ça vient d&#8217;être mergé dans le noyau Linux, et devrait être disponible avec le kernel 5.14, qui devrait bientôt voir le jour (c&#8217;est la <span class="caps">RC3</span> au moment ou j&#8217;écris ces&nbsp;lignes).</p>
<h2 id="controleurs">Controleurs</h2>
<p>J&#8217;utilise un <a href="https://novationmusic.com/en/keys/launchkey-mini">Novation Launchkey mini mk3</a> avec les mappings proposés par <a href="http://mossgrabers.de/Software/Bitwig/Bitwig.html">DrivenByMoss</a> qui permettent de controller nativement Bitwig, c&#8217;est assez bluffant, ça marche tout seul&nbsp;!</p>
<p>Installation&nbsp;:</p>
<ol>
<li>Télécharger l&#8217;archive qui contient le code depuis le site&nbsp;web</li>
<li>Extraire le fichier .bwextension dans <code>~/Bitwig Studio/Extensions</code></li>
</ol>
<p>Il semble aussi que <a href="http://www.mossgrabers.de/Software/Bitwig/Bitwig.html">Push 2 pour Bitwig sous Linux</a> soit une option interessante (mais bien plus couteuse)&nbsp;!</p>
<h2 id="vst-natif-linux"><span class="caps">VST</span> natif&nbsp;Linux</h2>
<p>Il existe un tas de <span class="caps">VST</span> open source qui font très bien le taf. J&#8217;aime beaucoup toute la collection de <span class="caps">VST</span> sans interface graphique (et open source !) qui est proposée par airwindows, (installables avec <code>yay aur/airwindows-git</code>)</p>
<p>J&#8217;utilise quelques <span class="caps">VST</span> payants également. Ceux que j&#8217;utilise actuellement, et qui sont compatibles Linux&nbsp;:</p>
<ul>
<li>Les instruments de chez <a href="https://tal-software.com/"><span class="caps">TAL</span></a>. J&#8217;utilise <a href="https://tal-software.com/products/tal-mod"><span class="caps">TAL</span>-Mod</a> pour faire des bonnes grosses&nbsp;basses</li>
<li>Ceux de chez <a href="https://u-he.com/products/">U-he</a>. J&#8217;utilise <a href="https://u-he.com/products/bazille/">Bazille</a>, un Synthé modulaire polyphonique avec des oscillateurs numériques et de la <span class="caps">FM</span>)</li>
</ul>
<p>Une grosse liste est présente sur <a href="http://linux-sound.org/linux-vst-plugins.html">Linux Sound</a> si vous voulez creuser&nbsp;:-)</p>
<h2 id="configuration-pour-du-temps-reel">Configuration pour du temps&nbsp;réel</h2>
<p>Edititon du 7/08 : j&#8217;ai pu jouer un peu depuis, et je me suis rendu compte que j&#8217;avais quelques glitches audio quand j&#8217;utilisais wine. J&#8217;ai donc fait quelques changements&nbsp;supplémentaires.</p>
<p>Ressources&nbsp;:</p>
<ul>
<li><a href="https://github.com/robbert-vdh/yabridge#performance-tuning">Le wiki de yabridge sur le tuning&nbsp;perfomance</a></li>
<li><a href="https://github.com/raboof/realtimeconfigquickscan">Un outil pour faire un scan des problèmes de perf&nbsp;connus</a></li>
</ul>
</article>
<footer>
<a id="feed" href="/feeds/all.atom.xml">
<img alt="RSS Logo" src="/theme/rss.svg" />
</a>
</footer>
</div>
</body>
</html>