Il existe pas mal de contextes où l’on a besoin de lancer des sons à la demande. On peut par exemple penser aux habillages d’une émission de radio, aux extraits musicaux d’un spectacle, aux samples (ou échantillons) dans un direct musical.
Pour lancer les sons, on peut vouloir utiliser la souris ou le clavier d’un ordinateur, ou encore un contrôleur dédié, comme un clavier maître ou un pad. Voici détaillées quelques solutions que j’ai pu utiliser par le passé, et en particulier celle que je viens d’expérimenter, avec le format sfz.
En radio, le cartoucheur
En radio, on utilise en général un logiciel appelé cartoucheur pour lancer les extraits sonores d’une émission de radio : habillage (générique, virgules, tapis…), extraits musicaux ou de reportage, etc.
Un cartoucheur est un logiciel qui propose à l’utilisateur de charger dans chaque bouton un son différent. Disposés en grille régulière, ces boutons permettent de lancer et d’arrêter indépendamment chacun des sons. Il existe plein de logiciels différents, souvent gratuits, ou à faible licence, qui proposent ce type de service.
Sous GNU/Linux, on trouve par exemple Linux Show Player, un outil qui semble très modulaire, même si je ne l’ai jamais utilisé.
La principale limitation des cartoucheurs est le faible contrôle que l’on a sur chaque extrait sonore. On peut en lancer la lecture, l’arrêter. Parfois on peut faire une pause dans son écoute, mais la plupart des configurations sont globales, comme par exemple le fondu en entrée ou en sortie. Et puis le pilotage de ce type de logiciel se fait à la souris, ce qui peut parfois être peu ergonomique, par exemple quand on doit enchaîner ou superposer plein de sons.
En live, le logiciel de samples pour DJ
Dans le cadre de l’émission Léthargiques Substances Disparates, j’ai pris le parti d’utiliser, après l’avoir configuré spécialement, le logiciel Mixxx, conçu en premier lieu pour les DJ numériques, souvent considéré comme un clône de Traktor.
Sur l’interface de ce logiciel, on peut contrôler jusqu’à 4 fichiers audio de manière très précise, avec points de répétition, égalisation, effets, etc. Puis en dessous, on peut charger un grand nombre de courts fichiers échantillons (samples), que l’on pourra lancer à la demande, ponctuellement.
Ce qui est très intéressant, c’est que ce genre d’outil peut se piloter très simplement par n’importe quel contrôleur midi. Dans le montage ci-dessous, j’illustre très rapidement comment les quatre premières pistes sont contrôlées par un nano Kontrol2 de chez Korg, très accessible. Ces réglages me sont tout à fait spécifiques, car chaque utilisateur peut faire les associations de son choix.
En utilisant la partie basse du logiciel, on peut facilement transformer Mixxx en un cartoucheur, pour répondre aux besoins d’une émission de radio classique.
Les instruments virtuels échantillons
Cependant, ces deux configurations ne satisfaisaient pas pleinement certains de mes besoins. En effet, si on y charge les fichiers par glisser/déposer , et que l’on peut sauver la configuration dans un fichier, je trouve cette configuration précaire : une mauvaise manipulation, et on peut tout casser.
Quand je réfléchissais à tout cela, j’ai pensé au petit clavier Bontempi utilisé par ma fille (que j’avais mis en photo sur un précédent billet), et qui permet de lancer simplement de courts échantillons, à la manière d’Ardisson dans ses émissions télévisées des années 2000.
Et c’est là que j’ai découvert les formats sf2 et sfz, aussi appelés soundfont. L’idée est d’associer à chaque note midi un échantillon sonore, qui sera joué par un petit logiciel, en y ajoutant des contraintes de répétition, d’effets, etc.
On trouve en ligne beaucoup de bibliothèques à ce format, permettant d’ajouter facilement à une station audionumérique (ardour, reaper) des sons réalistes joués par une piste midi. Certains sont payants, d’autres gratuits (free sfz soundfonts, free soundfonts, etc.)…
Dans la suite, je vais raconter mes expérimentations avec le format sfz, depuis la fabrication du fichier jusqu’à la configuration logicielle et du contrôle midi.
Écrire un fichier sfz
Il existe plusieurs documentations disponibles pour le format sfz, tout d’abord sur le site du format lui-même, mais aussi sur le site de linuxsampler. Dans le fichier qui suit, j’ai créé deux groupes d’échantillons. Ceux du premier groupe ne seront joués qu’une fois, quand ceux du second le seront en boucle jusqu’à ce que la touche soit relâchée (loop_mode=loop_continuous
). À noter cependant que pour que cela fonctionne avec linuxsample, j’ai dû renseigner le début et la fin de la boucle (loop_start
et loop_end
).
Dans ce fichier sfz, que j’ai placé dans le même dossier que l’ensemble des fichiers échantillons au format wav
, j’ai également imposé que la vélocité soit forcée, et non contrôlée par le clavier (amp_veltrack=0
). En effet, par défaut les contrôleurs midi permettent de doser l’intensité d’un son. Ici, j’ai envie que tous mes extraits soient joués avec la même intensité sonore.
Pour finir, j’ai associé une note midi (identifiée par un entier dans la norme) à chaque échantillon. Ici, je n’ai choisi que les touches blanches de mon contrôleur, pour en faciliter l’utilisation.
<global> amp_veltrack=0 <group> loop_mode=one_loop <region> sample=son-01.wav key=60 <region> sample=son-02.wav key=62 <region> sample=son-03.wav key=64 <region> sample=son-04.wav key=65 <region> sample=son-05.wav key=67 <region> sample=son-06.wav key=69 <region> sample=son-07.wav key=71 <region> sample=son-08.wav key=72 <region> sample=son-09.wav key=74 <region> sample=son-10.wav key=77 <region> sample=son-11.wav key=81 <group> loop_mode=loop_continuous <region> sample=boucle-12.wav key=76 loop_start=0 loop_end=140731 <region> sample=boucle-13.wav key=79 loop_start=0 loop_end=129874
Les possibilités de ce format sont bien plus grandes que celles présentées ici. On peut contrôler beaucoup d’aspects de la diffusion du son, pour l’adapter à son cas d’utilisation. Je vous laisse parcourir la documentation pour en savoir plus.
À noter que j’ai utiliser le logiciel polyphone pour connaître la durée de mes deux fichiers boucle. Polyphone est une interface graphique permettant de fabriquer des fichiers sf2 sans rien écrire à la main. Les réglages proposés semblent aussi complets que ce que le format permet de faire à la main. Intéressant pour quelqu’un qui serait effrayé par l’écriture d’un fichier à la syntaxe précise…
Configurer un contrôleur midi avec jackd
Sous GNU/Linux, on dispose d’un serveur son temps réel, jackd, qui prend également en charge le midi. J’utilise pour ma part l’interface Cadence proposée par KXStudio pour démarrer mon serveur jackd. À noter, comme illustré dans la capture d’écran ci-dessous, qu’il ne faut pas oublier d’activer le pont MIDI entre alsa et jackd. On peut aussi faire ça en ligne de commande, c’est assez bien documenté, mais assez subtil…
Jouer les sons d’un sfz au clavier
Le logiciel que j’utilise pour lancer des sons sfz depuis un contrôleur audio est QSampler, une interface graphique à linuxsampler. Quand on lance QSampler, il lance linuxsampler en arrière-plan. On peut alors utiliser Catia pour connecter la capture midi du système à l’entrée midi de LinuxSampler (connection rouge), puis la stéréo sortate de LinuxSampler aux playback du système (deux lignes bleues en haut à droite).
Dans QSampler, on peut alors ajouter un canal, en y chargeant le fichier sfz écrit précédemment, puis en configurant l’entrée et la sortie sur jack.
On peut maintenant jouer au clavier sans se préoccuper des détails les sons choisis, et sans risque de casser quelque chose pendant le direct…