Utiliser VMPK et Cardinal avec PIpeWire, Jack et les baies de brassage Helvum et Qpwgraph

Sommaire
VMPK, clavier de piano MIDI virtuel
Cardinal, fork de VCV Rack, synthétiseur modulaire Eurorack
PipeWire et les baies de brassage
Petit ensemble simple sous Cardinal

Arch Linux, ainsi que de nombreuses autres distributions Linux, ont définitivement basculé la pile audio sous PipeWire. Celui-ci à l’avantage de centraliser de façon simple Jack (temps réel pour l’audio de qualité studio, nécessite des réglages en fonction des besoins) et PulseAudio (plus simple, pour l’utilisation en informatique de bureau ou de jeu). PipeWire, permet aussi de synchroniser plusieurs sources et destinations video de différentes tailles et format, en même temps que le son. Les baies de brassage Helvum et Qpwgraph permettent d’établir simplement à la souris les connexions. QJackCtl ne semble plus fonctionner pour cette tâche.

VMPK, clavier de piano MIDI virtuel

VMPK (Virtual MIDI Piano Keyboard, signifiant clavier de piano MIDI virtuel) est un contrôleur MIDI logiciel, permettant d’utiliser le clavier de l’ordinateur, la souris ou autre dispositif de pointage (tablette, écran tactile) sur un clavier de piano logiciel, et d’envoyer des signals MIDI soit via l’interface MIDI du système, soit aux synthétiseurs logiciels General MIDI FluidSynth (paquet fluidsynth) ou SoniVoxEAS. Les distributions Linux contiennent des fontes sonores libres compatibles General MIDI, (sous Arch, paquet soundfont-fluid, complet, mais de qualité moyenne et freepats-general-midi, moins étendue en nombre d’instruments, mais de bien meilleure qualité). Si vous avez besoin de sélectionner leur emplacement, ces fontes sont placées dans le dossier /usr/share/soundfonts/ après installation. Le site de Freepats regroupe également des fontes spécialisées par instruments d’encore meilleures qualité, mais dont le poids des fichiers sont beaucoup plus grands.

réglage de la fonte midi ou de la sortie MIDI

Pour choisir le mode synthétiseur logiciel ou MIDI system, en suivant l’image ci-dessus :
* 1. Menu Éditer -> Paramètres MIDI
* 2. choisir dans le champs Pilote MIDI OUT, choisir soit Alsa pour le signal MIDI système, soit FluidSynth pour le synthétiseur MIDI logiciel permettant de produire directement les sons.
* 3. Dans le cas de FluidSynth, si c’est votre premier réglage, il faut cliquer sur le bouton [...]; à droite du bouton-menu ou vous avez sélectionné FluidSynth dans le champs Paramètres MIDI OUT.
La fenêtre Paramètres du pilote FluidSynth s’ouvre alors, il est possible dans le champs Pilote Audio de choisir Alsa, Jack, PulseAudio, SDL et d’autres.
# Dans le champs Soundfont, vous pouvez choisir la fonte sonore en ouvrant un sélecteur de fichier avec [...] ou de taper le chemin directement. Comme dis précédemment, les fontes sont placées par défaut dans le dossier /usr/share/soundfonts/.

Cardinal, fork de VCV Rack, synthétiseur modulaire Eurorack

Voici un aperçu des nombres plugins du synthétiseur modulaire Cardinal, il s’agit d’un fork, par le projet DISTRHO (dont le but est de regrouper les systèmes de plugins audio) de VCV Rack, intégrant de base tous les modules sous license libre en un seul paquet, et comme vous pouvez voir sur cette vidéo de la version d’avril 2022, ils sont nombreux :

VCV Rack est une version logicielle de synthétiseur modulaire au format standardisé ouvert de modules de synthétiseurs analogiques, Eurorack créé par l’allemand Dieter Döpfer1. Il est d’ailleurs possible d’interfacer, notamment via MIDI, des modules matériel de ce format. Les échanges s’y font principalement par un signal électrique analogique en utilisant des câbles avec connecteurs jack, mais les modules peuvent faire des traitements numériques ou utiliser des connexions numériques de type MIDI ou différents formats audio comme la connexion optique S/PDIF. Certains modules logiciels de VCV Rack sont d’ailleurs fait par des créateurs de modules matériels, à l’image des auteurs des excellents modules Mutable Instruments qui en ont porté certains sous le nom de Audible Instruments ou encore de Befaco. Ceux-ci comportement notamment de la synthèse granulaire et de la simulation numérique de sons. La version Cardinal supporte également différents formats de plugins audio LV2, VST, etc..

Je maintien les paquets Arch AUR de VCVRack-git en version 1.x qui ont l’avantage de pouvoir être utilisé avec ALSA directement (plus simple que Jack) et de comporter directement un module de saisie au clavier. Ce que ne propose pas encore Cardinal, mais cela devrait arriver ce mois-ci avec l’ajout des modules Fundamentals.

À ce propos, David Louapre, l’auteur de la chaîne Youtube de vulgarisation scientifique « Science étonnante » à fait une vidéo explicative des principes des synthétiseurs analogiques et modulaires intitulée « La Science des synthétiseurs ».

PipeWire et les baies de brassage

La baie de brassage Helvum permet de gérer de façon graphique et interactive, les connexions des différents éléments audio ou vidéo au sein de PipeWire, il est bien évidement également possible de les gérer par des programmes ou scripts directement dans PipeWire.

Helvum affiche les différents éléments sous forme de boîte et les liaisons via des courbes ou fils. D’après ce que j’en ai compris, les courbes en pointillées montrent les connexions automatiques de la partie PulseAudio, et les courbes pleine, montrent les connexions manuelles pour Jack.

Pour ajouter une connexion, il suffit de cliquer sur une boîte, puis de déplacer le petit icône de fichier affiché vers l’autre point de liaison. Voici comment faire dans le cas de VMPK avec Cardinal et de Cardinal avec la sortie audio :

Qpwgraph, à l’avantage de détecter d’avantages de choses. Il a notamment détecté VokoscreenNG que j’ai utilisé ici pour la capture vidéo du bureau. Mais ça n’est pas un problème, celui-ci ayant permis de sélectionner l’entrée audio sans doute via pulseaudio à utiliser. Il comporte également des annuler/refaire, et l’ouverture et sauvegarde de la configuration en fichier, ce qui peut rapidement devenir indispensable.

Voici donc les manipulations équivalentes sous Qpwgraph :

À noter que dans cet vidéo j’avai une sortie MIDI de VMPK, mais dans un autre cas, comme sur cette capture d’écran, je ne l’avais pas. VMPK étant connecté au bridge (passerelle) MIDI du port 0, il suffit alors de connecter la sortie de la passerelle MIDI du port 0 pour avoir le même résultat.

Utilisation du bridge MIDI du port 0 pour récupérer la sortie de VMPK

Petit ensemble simple sous Cardinal

Voici un exemple simple d’ensemble fonctionnant avec VMPK et cette configuration. Cela permet de comprendre le fonctionnement de base de Cardinal/VCV Rack.

Les sorties de contrôle MIDI sont récupérées vers les entrées de contrôle du rack « Modal Synthesizer » d’Audible Instrument dont j’aime bien la sonorité, proche de carillons :
* La sortie V/Oct (volt/octave) vers l’entrée V/Oct. Elle donne la hauteur de la note en fonction de la tension électrique (ici virtuelle).
* La sortie Gate (porte) vers l’entrée Gate. Elle transmet le moment où une touche est pressée (signal 0 relâchée ou 1 pressée). Il est intéressant de noter dans ce montage que lorsque la touche suivante est pressée avant que la touche précédente ne soit relâché on a un glissendo, plutôt qu’une nouvelle percussion de la note avec attaque initiale.
* La sortie velocity (vélocité) permet de donner de l’expression au son en variant l’attaque, sur un clavier texte AZERTY d’ordinateur, il n’y a pas ce genre de paramètres, mais il est possible de le lier à l’entrée strength (force), du module, et de lui transmettre ainsi l’expression du touché.

Pour la sortie du module d’Audible Instrument, c’est simple, la sortie gauche (L comme left) vers le port de sortie audio 1 et la sortie droite (R comme right) sur le port audio 2, comme nous avions définit dans la baie de brassage. Il ne reste plus qu’à presser les touches du clavier virtuel pour entendre les notes et tourner les molettes pour modifier les effets.

Comme on peut le voir sur cette vidéo, la saisie directe du clavier comme le permettent les modules Fundamentals ou un veritable instrument midi sont tout de même plus pratique pour ne pas avoir à passer sans arrêt de l’un à l’autre. Mais cela permet déjà de faire des enregistrement ou contrôle simple. Différents outil comme Qjackctl permettent d’enregistrer une séquence MIDI puis de la retransmettre. Il est aussi possible de passer un morceau midi en fichier .MID dans la passerelle MIDI et de lui ajouter des effets avec Cardinal et/ou des nombreux modules au format LV2 ou VST.

Principe de synthétiseur analogique modulaire

Les synthétiseurs analogiques modulaires suivent le principe similaire à UNIX, du KISS (keep It Simple and Stupid), garder les choses simples et stupides. Les modules sont très simples, et la force du système réside dans la possibilité d’échanger entre ces différents éléments. Les échanges se font principalement via des câbles électrique via un courant qui peut varier en tension (en Volt) de façon analogique (continue), plutôt que numérique (discrète). Il est tout de même possible de transmettre un signal numérique (1 ou 0) et c’est ce que fait la fonction gate (porte).

Les différents modules de base sont généralement (je donne les termes anglais et leurs abréviations utilisée, ainsi que la traduction du terme en français entre parenthèses :
* VCO Voltage Controled Oscillator (oscillateur commandé en tension), Il s’agit d’un générateur de signal, généralement sinusoïdal, comme le faisait le premier synthétiseur, le Thérémine, du nom de son inventeur, le Russe Lev Sergueïevitch Termen. Certains plus avancés permettent de fournir des singaux carrés, en dent de scie, différentes couleurs de bruits (blanc, rose, etc).
* VCF Voltage Controled Filter (filtre contrôlé en tension), permet de filtrer l’entrée en fonction de fréquences définies.
* VCA Voltage Controled Amplifier (Amplificateur commandé en tension). Permet d’amplifier le signal.
* ADSR Attack, Delay, Sustain, Release (généralement traduit par : Attaque, chute, entretien, extinction. Il s’agit des paramètres standard d’enveloppe sonore, dont les principes ont été crées par Vladimir Ussachevsky. Pour faire une analogie avec les instruments acoustiques, L’attaque (attack) correspond à la montée au moment où l’on actionne le sonophore de l’instrument. La corde frappée d’un piano ou pincée d’une guitare ou d’un clavecin. L’archet qui commence à frotter la corde, La percussion sur la peau d’un tambour, la première impulsion de la vibration des lèvres d’un trompettiste. La chute (delay) est la durée de l’attaque, c’est à dire le délai de l’attaque initiale. l’entretien (sustain) est la hauteur du palier de la vibration produisant le son continu. Enfin l’extinction (release) est la phase d’arrêt du son.
* LFO Low Frequency Oscillator (Oscillateur basse fréquence), il est utilisé principalement pour les modulation de l’instrument, comme un trémolo ou une trille par exemple.
* Arpeggiator (arpégiateur). Il est destiné à produire une succession de note. Un accord correspond à plusieurs notes produites simultanément, et un arpège est son équivalent avec cet ensemble de notes décalées dans le temps. Par exemple les notes do mi sol do jouées successivement correspondant à un accord de do majeur. Cela permet de produire simplement des éléments de base de mélodies.

Pour aller plus loin

La page PipeWire du wiki d’Arch.