samedi, janvier 14, 2012

Quand Python parle avec Reaper

Comme station audio numérique (DAW) j'utilise le logiciel Reaper car pour une licence de 60$, on obtient un logiciel ayant des capacités et une flexibilité inouïes et tout ça pour une utilisation modeste des ressources de l'ordinateur.

Reaper et ses différentes dispositions


Simulateurs d'amplis
Dernièrement je me suis mis à expérimenter un peu plus avec les simulateurs d'ampli guitares sous forme VST. J'ai donc rangé temporairement mon POD X3 et mon ampli Fender Mustang pour essayer les simulateurs gratuit de LePou et ceux de SimulAnalog Guitar Suite et j'ai été rapidement conquis par les sons et la possibilité de pouvoir jouer sur ces simulateurs sans latence dérangeante.

leCto, un simulateur hi-gain

Le résultat est tellement intéressant que je me suis sérieusement convaincu que je pouvais utiliser tout ça dans un contexte live.  Mais justement, comment faire pour changer mes patchs instantanément sans les mains?

POD X3 + Reaper + Python, la combinaison gagnante

C'est là où le POD X3 et sa capacité à sortir du signal MIDI entre en jeu.  Pour le changement de patch aucun problème, on assigne rapidement un raccourci MIDI à travers la fenêtre d'actions.  Mais lorsqu'on cherche à réaliser quelque chose de plus élaboré on rencontre vite les limites des actions permises dans Reaper.  C'est là où intervient ReaScript, le moteur Reaper permettant de charger des scripts Python qui ont eux accès à l'API du logiciel.

Faire du POD X3 un contrôleur MIDI

En fait je voulais pouvoir, sous un simple actionnement d'un bouton du POD, fermer le projet courant sous Reaper pour en ré-ouvrir un autre.  L'idée final étant d'avoir un projet Reaper pour chaque chanson, chaque projet alors contiendrait des pistes avec chacune leurs simulateurs d'amplis.  Pour une autre chanson, il y aurait un autre projet Reaper avec une configuration de pistes et simulateurs d'amplis différents.
Ca donnerait un projet Reaper par chansons, du style:

  1. Song-1.RPP
  2. Song-2.RPP
  3. etc...

Sortie MIDI sur le POD X3 Live

Pour pouvoir réaliser ceci, ou encore bien d'autres choses, il est possible de coder un script Python qui peut être rattaché a une action sous Reaper, le tout via ReaScript.  Il faudra activer ReaScript à travers les préférences, écrire le script Python et rajouter une action custom de type ReaScript qui pointe vers le script donné ci-dessous.  Par la suite il suffit d'y assigner le raccourci MIDI que vous souhaitez et le tour est joué.

from reaper_python import * (prj,_,prjName,_) = RPR_EnumProjects(-1, "", 100) prjNumber = int(prjName[-5:-4]) + 1 nextProjectName = prjName[0:-5] + str(prjNumber) + ".RPP" if (RPR_file_exists(nextProjectName)): retVal = 1 while retVal != 0: retVal = RPR_Undo_DoUndo2(prj) RPR_Main_OnCommand(40026, 0) RPR_Main_openProject(nextProjectName) else: retVal = 1 while retVal != 0: retVal = RPR_Undo_DoUndo2(prj) nextProjectName = prjName[0:-5] + "1.RPP" RPR_Main_OnCommand(40026, 0) RPR_Main_openProject(nextProjectName)