Je vous parlais dans le précédent article du séquenceur Reaper, dont je me sert en réalité pour deux choses
:
-
Je m'en sert comme d'un séquenceur, normalement, quoi. Je bricole des musiques en m'enregistrant sur plusieurs pistes
en jouant successivement de la guitare, de la basse, du clavier, et en rajoutant une batterie. Ça m'amuse beaucoup en dépit d'une qualité, heu, discutable
-
Je l'utilise aussi en temps que programmeur. En effet, Reaper offre la possibilité d'appliquer sur les pistes audios
différents effets grâce à des plugins aux formats VST, DX et JS. Ces formats sont standards et peuvent être utilisés dans de très nombreux logiciels de traitement audio. N'importe quel
programmeur peut créer un plugin VST grâce au SDK de Steinberg ou un plugin DX avec le SDK de Cakewalk.
Mais le format qui m'intéresse le plus actuellement est le JS, ou « JesuSonic ». D'ailleurs, pourquoi un tel nom ? Et bien parce que, outre le fait qu'il s'agisse d'un logiciel, ses concepteurs ont aussi pour projet
d'intégrer ce soft dans un boitier hardware à la forme pour le moins mystique.
Contrairement aux plugins VST et DX qui sont développés en C++ puis compilés, les plugins JS ont la particularité de se
présenter sous la forme d'un script, d'un fichier texte écrit dans un langage de programmation très simple qui s'apparente un peu au langage C. Du coup, ils ont pour gros avantage le fait de
pouvoir être édités afin de modifier leur comportement, sans avoir à quitter Reaper ! Il est donc possible d'écrire un effet JS, de le tester, et de le modifier à volonté afin d'obtenir le
résultat voulu. Le cycle de développement est ainsi accéléré. Les plugins JS offrent aussi l'avantage de pouvoir créer très facilement une interface graphique (sliders, menus déroulants) afin
d'ajuster les paramètres de l'effet.
Je me sert donc actuellement de Reaper pour écrire des effets au format JS. Lorsqu'ils seront au point, je les adapterai
ensuite en C pour la TCDDK. Bref, je me sert de JS pour prototyper des effets pour la ToneCore de line6. Pour vous montrer à quel point un script JS est simple, voici un effet d'écho très basique
que j'ai bricolé vite fait :
desc:echo
slider1:200<0,1000,1>length (ms)
slider2:-10<-20,0,1>feedback (dB)
@init
buffer=0;
@slider
delaylen=slider1*srate/1000;
feedback = 2 ^ (slider2/6);
@sample
buffer[0]=spl0 + buffer[0]*feedback;
buffer[1]=spl1 + buffer[1]*feedback;
spl0=buffer[0];
spl1=buffer[1];
buffer += 2;
buffer >= delaylen*2 ? buffer = 0;
Ce plugin comporte deux sliders, définis au début du script, qui permettent de régler la longueur de l'écho (entre 0 et
1000 ms) ainsi que le volume de l'écho (-20 à 0 dB).
Les plus programmeurs d'entre vous comprendront très facilement ce programme après avoir jeté un œil à la doc très concise du langage Jesusonic. Grosso modo, je mélange les échantillons en entrée (spl0 et spl1, pour les échantillons stéréo de gauche et de
droite) à ceux que j'avais enregistré dans un buffer d'une longueur variable (donnée par le slider 1 de l'interface), en ajustant le volume de ce buffer grâce au slider 2, et je remet le tout
dans spl0 et spl1 pour que ce mélange soit joué.
Et en voici le résultat. Tout d'abord, en enregistrant directement la guitare :
[Guitare → Pod XT →
Reaper]
Puis en appliquant l'effet JS d'écho :
[Guitare → Pod XT → Reaper → Effet
JS]
Oui, oui, l'effet d'écho est trèèèès basique et le guitariste est nul, mais c'est juste pour illustrer le principe
^^'
Pour l'anecdote, comme mes développements tournent beaucoup ces temps-ci autour de l'informatique musicale (TCDDK,
Jesusonic), je programme très souvent maintenant avec une guitare sur les genoux – ce qui n'est pas des plus pratiques – afin de tester rapidement mes programmes. Et du coup, l'envie m'est venue
de tester le jeu en slide avec une tone bar, car cette technique se joue justement avec la guitare posée à
plat sur les cuisses. C'est donc aussi ce qui explique la piètre qualité du morceau d'exemple ci-dessus (outre les très modestes talents guitaristiques de votre serviteur), car je n'ai pas du
tout réglé ma Stratocaster pour le slide : l'action est trop basse, le tirant des cordes trop léger, et du coup la Tone bar racle sur les frettes
Bon, il faut que j'améliore cet écho, et dès que j'arrive enfin à utiliser cette @%#! de SRAM, je porte l'effet sur
la TCDDK.