Jouer des échantillons sonores

Il existe pas mal de contextes où l’on a besoin de lan­cer des sons à la demande. On peut par exemple pen­ser aux habillages d’une émis­sion de radio, aux extraits musi­caux d’un spec­tacle, aux samples (ou échan­tillons) dans un direct musical.

Pour lan­cer les sons, on peut vou­loir uti­li­ser la sou­ris ou le cla­vier d’un ordi­na­teur, ou encore un contrô­leur dédié, comme un cla­vier maître ou un pad. Voi­ci détaillées quelques solu­tions que j’ai pu uti­li­ser par le pas­sé, et en par­ti­cu­lier celle que je viens d’ex­pé­ri­men­ter, avec le for­mat sfz.

En radio, le cartoucheur

En radio, on uti­lise en géné­ral un logi­ciel appe­lé car­tou­cheur pour lan­cer les extraits sonores d’une émis­sion de radio : habillage (géné­rique, vir­gules, tapis…), extraits musi­caux ou de repor­tage, etc.

Un car­tou­cheur est un logi­ciel qui pro­pose à l’u­ti­li­sa­teur de char­ger dans chaque bou­ton un son dif­fé­rent. Dis­po­sés en grille régu­lière, ces bou­tons per­mettent de lan­cer et d’ar­rê­ter indé­pen­dam­ment cha­cun des sons. Il existe plein de logi­ciels dif­fé­rents, sou­vent gra­tuits, ou à faible licence, qui pro­posent ce type de service. 

L’in­ter­face de PlayIt

Sous GNU/Linux, on trouve par exemple Linux Show Player, un outil qui semble très modu­laire, même si je ne l’ai jamais utilisé.

La prin­ci­pale limi­ta­tion des car­tou­cheurs est le faible contrôle que l’on a sur chaque extrait sonore. On peut en lan­cer la lec­ture, l’ar­rê­ter. Par­fois on peut faire une pause dans son écoute, mais la plu­part des confi­gu­ra­tions sont glo­bales, comme par exemple le fon­du en entrée ou en sor­tie. Et puis le pilo­tage de ce type de logi­ciel se fait à la sou­ris, ce qui peut par­fois être peu ergo­no­mique, par exemple quand on doit enchaî­ner ou super­po­ser plein de sons.

En live, le logiciel de samples pour DJ

Dans le cadre de l’é­mis­sion Léthar­giques Sub­stances Dis­pa­rates, j’ai pris le par­ti d’u­ti­li­ser, après l’a­voir confi­gu­ré spé­cia­le­ment, le logi­ciel Mixxx, conçu en pre­mier lieu pour les DJ numé­riques, sou­vent consi­dé­ré comme un clône de Trak­tor.

Inter­face du logi­ciel Mixxx pour la réa­li­sa­tion d’une émis­sion aux mul­tiples super­po­si­tions de sons.

Sur l’in­ter­face de ce logi­ciel, on peut contrô­ler jus­qu’à 4 fichiers audio de manière très pré­cise, avec points de répé­ti­tion, éga­li­sa­tion, effets, etc. Puis en des­sous, on peut char­ger un grand nombre de courts fichiers échan­tillons (samples), que l’on pour­ra lan­cer à la demande, ponctuellement.

Ce qui est très inté­res­sant, c’est que ce genre d’ou­til peut se pilo­ter très sim­ple­ment par n’im­porte quel contrô­leur midi. Dans le mon­tage ci-des­sous, j’illustre très rapi­de­ment com­ment les quatre pre­mières pistes sont contrô­lées par un nano Kontrol2 de chez Korg, très acces­sible. Ces réglages me sont tout à fait spé­ci­fiques, car chaque uti­li­sa­teur peut faire les asso­cia­tions de son choix.

En uti­li­sant la par­tie basse du logi­ciel, on peut faci­le­ment trans­for­mer Mixxx en un car­tou­cheur, pour répondre aux besoins d’une émis­sion de radio classique.

Les instruments virtuels échantillons

Cepen­dant, ces deux confi­gu­ra­tions ne satis­fai­saient pas plei­ne­ment cer­tains de mes besoins. En effet, si on y charge les fichiers par glisser/déposer , et que l’on peut sau­ver la confi­gu­ra­tion dans un fichier, je trouve cette confi­gu­ra­tion pré­caire : une mau­vaise mani­pu­la­tion, et on peut tout casser.

Quand je réflé­chis­sais à tout cela, j’ai pen­sé au petit cla­vier Bon­tem­pi uti­li­sé par ma fille (que j’a­vais mis en pho­to sur un pré­cé­dent billet), et qui per­met de lan­cer sim­ple­ment de courts échan­tillons, à la manière d’Ar­dis­son dans ses émis­sions télé­vi­sées des années 2000.

Et c’est là que j’ai décou­vert les for­mats sf2 et sfz, aus­si appe­lés sound­font. L’i­dée est d’as­so­cier à chaque note midi un échan­tillon sonore, qui sera joué par un petit logi­ciel, en y ajou­tant des contraintes de répé­ti­tion, d’ef­fets, etc.

On trouve en ligne beau­coup de biblio­thèques à ce for­mat, per­met­tant d’a­jou­ter faci­le­ment à une sta­tion audio­nu­mé­rique (ardour, rea­per) des sons réa­listes joués par une piste midi. Cer­tains sont payants, d’autres gra­tuits (free sfz sound­fonts, free sound­fonts, etc.)…

Dans la suite, je vais racon­ter mes expé­ri­men­ta­tions avec le for­mat sfz, depuis la fabri­ca­tion du fichier jus­qu’à la confi­gu­ra­tion logi­cielle et du contrôle midi.

Écrire un fichier sfz

Il existe plu­sieurs docu­men­ta­tions dis­po­nibles pour le for­mat sfz, tout d’a­bord sur le site du for­mat lui-même, mais aus­si sur le site de linux­sam­pler. Dans le fichier qui suit, j’ai créé deux groupes d’é­chan­tillons. Ceux du pre­mier groupe ne seront joués qu’une fois, quand ceux du second le seront en boucle jus­qu’à ce que la touche soit relâ­chée (loop_mode=loop_continuous). À noter cepen­dant que pour que cela fonc­tionne avec linux­sample, j’ai dû ren­sei­gner le début et la fin de la boucle (loop_start et loop_end).

Dans ce fichier sfz, que j’ai pla­cé dans le même dos­sier que l’en­semble des fichiers échan­tillons au for­mat wav, j’ai éga­le­ment impo­sé que la vélo­ci­té soit for­cée, et non contrô­lée par le cla­vier (amp_veltrack=0). En effet, par défaut les contrô­leurs midi per­mettent de doser l’in­ten­si­té d’un son. Ici, j’ai envie que tous mes extraits soient joués avec la même inten­si­té sonore.

Pour finir, j’ai asso­cié une note midi (iden­ti­fiée par un entier dans la norme) à chaque échan­tillon. Ici, je n’ai choi­si que les touches blanches de mon contrô­leur, pour en faci­li­ter 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 pos­si­bi­li­tés de ce for­mat sont bien plus grandes que celles pré­sen­tées ici. On peut contrô­ler beau­coup d’as­pects de la dif­fu­sion du son, pour l’a­dap­ter à son cas d’u­ti­li­sa­tion. Je vous laisse par­cou­rir la docu­men­ta­tion pour en savoir plus.

À noter que j’ai uti­li­ser le logi­ciel poly­phone pour connaître la durée de mes deux fichiers boucle. Poly­phone est une inter­face gra­phique per­met­tant de fabri­quer des fichiers sf2 sans rien écrire à la main. Les réglages pro­po­sés semblent aus­si com­plets que ce que le for­mat per­met de faire à la main. Inté­res­sant pour quel­qu’un qui serait effrayé par l’é­cri­ture d’un fichier à la syn­taxe précise…

Configurer un contrôleur midi avec jackd

Sous GNU/Linux, on dis­pose d’un ser­veur son temps réel, jackd, qui prend éga­le­ment en charge le midi. J’u­ti­lise pour ma part l’in­ter­face Cadence pro­po­sée par KXS­tu­dio pour démar­rer mon ser­veur jackd. À noter, comme illus­tré dans la cap­ture d’é­cran ci-des­sous, qu’il ne faut pas oublier d’ac­ti­ver le pont MIDI entre alsa et jackd. On peut aus­si faire ça en ligne de com­mande, c’est assez bien docu­men­té, mais assez subtil… 

L’in­ter­face de Cadence pour contrô­ler Jack

Jouer les sons d’un sfz au clavier

Le logi­ciel que j’u­ti­lise pour lan­cer des sons sfz depuis un contrô­leur audio est QSam­pler, une inter­face gra­phique à linux­sam­pler. Quand on lance QSam­pler, il lance linux­sam­pler en arrière-plan. On peut alors uti­li­ser Catia pour connec­ter la cap­ture midi du sys­tème à l’en­trée midi de Linux­Sam­pler (connec­tion rouge), puis la sté­réo sor­tate de Linux­Sam­pler aux play­back du sys­tème (deux lignes bleues en haut à droite).

Cap­ture d’é­cran de Catia, qui pro­pose une inter­face très flexible de rou­tage du son et du midi de jack.

Dans QSam­pler, on peut alors ajou­ter un canal, en y char­geant le fichier sfz écrit pré­cé­dem­ment, puis en confi­gu­rant l’en­trée et la sor­tie sur jack.

On peut main­te­nant jouer au cla­vier sans se pré­oc­cu­per des détails les sons choi­sis, et sans risque de cas­ser quelque chose pen­dant le direct…