Audio  Blog  Divers  Graphisme  Médias  Publicité  Textes 

 

Le monde de Èffe    Accueil    Audio    Créations, récréations    [tutoriel] Mixer avec reactivision

 

End crédits

Voyage

Petite fille (2)

Petite fille

Stairway to hell

Plus d'articles

 

[tab] Fat Boy

Concerts et rumeurs

[vidéo] Concert au Kennedy Hall

Quelle guitare ?

[video] Ladies Night

Plus d'articles

 

Tom Mac Rae

Plus d'articles

 

[tutoriel] Mixer avec reactivision

Fabriquez-vous une table de mixage avec du carton, des pots de yaourts et une webcam.

La semaine dernière, j’ai découvert la reactable sur le site du Grattonaute, un instrument assez expérimental. Elle consiste en une table lumineuse, sur laquelle les musicos posent des éléments qui permettent de faire la musique. Pour bien comprendre, je vous conseille de voir une démo en vidéo.

Là où ça devient intéressant, c’est que la reactable se base sur la reconnaissance visuelle de symboles par l’intermédiaire d’un logiciel, reactivision, qui est capable d’envoyer diverses informations en... midi ! Ce qui veut dire que toute application capable d’être dirigée par les messages midi peut être commandée par reactivision, que ce soit un Cubase, un Reason, un synthétiseur... Et, cerise sur le gâteau, reactivision est un logiciel libre. Tout le monde peut donc l’utiliser gratuitement. J’ai donc pensé à me faire une surface de contrôle midi pour pas cher.

Pour réaliser cette configuration, j’ai utilisé : une webcam, un morceau de carton, des pots de yaourt. Il faut également disposer, mais cela me semble logique, d’un ordinateur (je l’ai fait sur PC mais cela doit être possible sur Mac ou Linux) ainsi que d’un logiciel capable de recevoir et d’utiliser les signaux midi.

Pour commencer

Première démarche, télécharger le logiciel reactivision. Une fois qu’il est installé, allez dans le dossier Symbols et ouvrez default.pdf ; ce fichier contient les marques (ou fiducial dans les fichiers de reactivision) qui seront identifiées par le logiciel. Vous pouvez imprimer la première page, les 15 symboles qui y sont placés devraient suffire pour les premières utilisations. Notez que le numéro d’identification est inscrit en bas à droite de chaque marque. Reactivision utilisera ce numéro comme identifiant de chaque marque. Découpez les marques en laissant le numéro visible (à moins que vous ne les connaissiez par cœur, il est utile de savoir quel est l’identifiant de chaque symoble).

Ensuite, branchez votre webcam puis tentez de lancer le logiciel (reactivision.exe sur PC) pour vérifier qu’il fonctionne. Si tout se passe bien, vous devriez voir apparaître un écran qui vous permet de choisir la définition de la caméra que vous utilisez. Après la validation du choix, une fenêtre s’ouvre.

Passez quelques symboles dans le champ de la webcam. Vous verrez que l’image est bien mieux définie autour de ces marqueurs que sur le reste du champ. Normal, reactivision traque ces marqueurs. Si votre marqueur est trop loin de la webcam, le logiciel ne pourra le reconnaître correctement ; je vous conseille donc une soixantaine de centimètre au plus entre la webcam (définition 480x680) et les symboles.

Fenêtre de reactivision - 80.3 ko
Fenêtre de reactivision
 

Bon, pour le principe, à chaque fois que vous passez ou bougez un symbole dans le champ de la caméra, reactivision enregistre 4 paramètres : la présence du marqueur (et donc son identifiant), la position horizontale, la position verticale, l’angle de rotation. Ces informations sont envoyées par le logiciel vers le port 3333 sur locahost (127.0.0.1) ; ce sont des messages TUIO, une façon de transmettre des signaux OSC (Open sound control). Cela vous fait sans doute une belle jambe, comme à moi, mais c’est pour signaler que le flux midi que nous allons sortir tout à l’heure n’est pas le format natif de l’application, et que les gens plus débrouillards que moi en informatique sauront sans doute exploiter les messages délivrés directement par reactivision.

Utiliser le midi

Pour utiliser reactivision en midi, il va donc falloir mettre les mains dans le cambouis. Pour commencer, si ce soft magique n’équipe pas votre machine, téléchargez MidiYoke pour les utilisateurs de PC ou MidiPipe pour Mac ; puis installez. Ces programmes sont capables de recevoir et d’émettre du midi ; ils vont nous servir ici de câbles virtuels pour récupérer le signal issu de reactivision puis à l’injecter dans le logiciel compatible midi de notre choix.

Comme expliqué dans le fichier Readme.txt placé dans le dossier reactivision-1.3, pour émettre du midi reactivision utilise un fichier xml. Ce fichier contient toutes les informations nécessaires pour transformer les déplacements des marqueurs en paramètres utilisables en midi (nous y reviendrons). Il faut donc lancer reactivision avec l’option midi, ce qui nous oblige à ne plus simplement cliquer sur l’exécutable, mais à passer par la ligne de commande.

Sur PC, les amoureux du DOS connaissent déjà tout des commandes que nous allons utiliser ; après avoir cliqué sur le programme "invite de commande" (dans les accessoires de Windows), il nous faut afficher le dossier où est stocké reactivision. Par exemple, « C :\Program Files\reactivision-1.3\ ». Pour ce faire, vous pouvez remonter l’arborescence en cours en tapant « cd.. » et aller dans un sous-dossier en tapant « cd nom_du_dossier ». Je pense que vous pouvez trouver facilement des éléments d’aide sur le DOS sur internet si vous ne vous en sortez pas.

Sur Mac (OS X - 10.4.9 pour ma part), la démarche est plus simple ; lancez le Terminal (placé dans le dossier Utilitaire des Applications). Allez dans le dossier qui contient reactivision, puis faites un Pomme-C (copier) en sélectionnant l’exécutable, et enfin un Pomme-V dans la fenêtre du Terminal. À la suite de la ligne qui est apparue (par exemple « /Users/Dupont/Desktop/reacTIVision-1.3\ 17-05-19/reacTIVision.app/ ») tapez Contents/MacOS/, ce qui donne par exemple « /Users/Dupont/Desktop/reacTIVision-1.3\ 17-05-19/reacTIVision.app/Contents/MacOS/ » ; la démarche est ensuite similaire à celle du PC, sauf que l’extension « .exe » n’est pas à écrire sur Mac.

Repérer le port midi

Une fois arrivés dans le bon dossier, nous allons pouvoir lancer reactivision avec les options qui nous intéressent. Dans un premier temps, nous allons repérer le port midi qui nous intéresse pour y envoyer le signal issu de reactivision. La commande -l midi permet de lister tous les périphériques midi. Il faut donc taper :
-  pour PC : « C :\Program Files\reactivision-1.3\reactivision.exe -l midi »
-  pour Mac : « /Users/Dupont/Desktop/reacTIVision-1.3\ 17-05-19/reacTIVision.app/Contents/MacOS/reactivision -l midi »

Au cours de cette étape, nous pouvons repérer le numéro du port Midi qui nous intéresse (midiyoke ou midipipe) et le noter soigneusement (par exemple 6). Nous allons ensuite télécharger le fichier suivant, le décompresser, puis le placer dans le dossier de reactivision :

Demo xml - 890 octets

Demo xml

Après quoi les choses sérieuses commencent. Nous allons demander à reactivision d’envoyer le signal midi sur le périphérique choisi (--midi-device 6), en prenant en compte la configuration des marqueur définie dans le fichier demo.xml (-m demo.xml). Cela donne :
-  pour PC : « C :\Program Files\reactivision-1.3\reactivision.exe -m demo.xml --midi-device 6 »
-  pour Mac : « /Users/Dupont/Desktop/reacTIVision-1.3\ 17-05-19/reacTIVision.app/Contents/MacOS/reactivision -m demo.xml --midi-device 6 »

Et là, normalement, c’est fini. Le signal midi est envoyé sur le périphérique concerné, en fonction de ce qui est défini dans le xml. Je dis bien que normalement, c’est fini, car sur mon Mac (Macbook OS X, 10.4.9) le fichier xml ne se charge pas (error loading demo.xml). Si d’autres personnes y arrivent, je serai curieux de savoir comment elles ont fait. En revanche, sur PC, pas de problème.

Paramétrer le routage midi

Reste maintenant à paramétrer les différents marqueurs et surtout à savoir à quels contrôles ils correspondent. Ceci est fait dans le fichier xml. Les règles sont assez simples, et clairement expliquées (en anglais) dans l’en-tête du fichier :


<!--
reacTIVision MIDI mapping configuration file
using MIDI each dimension needs to be mapped to an individual control number.
possible dimensions are: x-position, y-position and rotation angle
additionaly the fiducial presence can be mapped to note on/off events.

each mapping tag contains at least the following attributes:
fiducial:        the ID number of the fiducial tag
type:                 the control type
                        hfader=xpos, vfader=ypos, knob=angle, note=presence
control:        the control number (for the hfader, vfader & knob types)
note:                the note number (for the note type)

optional attributes:
channel:        the MIDI channel (defaults to 0)
min:                minimum range (defaults to 0)
max:                maximum range (defaults to 1)

the min/max attribute allow the selection of a subregion in the desired dimension.
for example min=0.1 and max 0.9 will ignore 10% on each side of the image
for the knob type max=1 will map to a full rotation from 0 to 127 in MIDI values.
-->

Dont voici la traduction :


<!--
Fichier de configuration de mapping MIDI de reactivision
Pour utiliser le MIDI, chaque paramètre doit être mappé vers un numéro de contrôle unique.
Les différents paramètres disponibles sont : x-position, y-position, angle de rotation. De plus, la présence du "fiducial" peut jouer le rôle d'un interrupteur pour note.

Chaque mappage peut utiliser les attributs suivants :

fiducial: le numéro ID de chaque symbole ("fiducial")
type: le type de contrôleur (hfader=xpos, vfader=ypos, knob=angle, note=présence)
control: le numéro attribué pour le contrôleur (pour les hfader, vfader & knob)
note: le numéro de la note (si le contrôleur "note" est utilisé)

En option
channel: le canal MIDI utilisé par le contrôleur (par défaut 0)
min: valeur minimum de la plage (par défaut 0)
max: valeur maximum de la plage (par défaut 0)

Les attributs min/max permettent de sélectionner une sous-zone dans la dimension visée ; par exemple, min=0.1 et max=0.9 feront que les 10% d'image de chaque côté seront ignorés. Pour les rotations (knob), max=1 impliquera qu'une rotation complète fera passer de 0 à 127 la valeur midi considérée.
-->

À partir de ces règles, nous pouvons donc comprendre ce qui est écrit dans le fichier demo.xml :


<midi>
<!-- four vertical faders -->
<map fiducial="0" type="vfader" control="0" min="0.1" max="0.9"/>
<map fiducial="1" type="vfader" control="1" min="0.1" max="0.9"/>
<map fiducial="2" type="vfader" control="2" min="0.1" max="0.9"/>
<map fiducial="3" type="vfader" control="3" min="0.1" max="0.9"/>

<!-- one horizontal fader -->
<map fiducial="4" type="hfader" channel="0" control="4" min="0.1" max="0.9"/>

<!-- six knobs -->
<map fiducial="5" type="knob" control="5"/>
<map fiducial="6" type="knob" control="6"/>
<map fiducial="7" type="knob" control="7"/>
<map fiducial="8" type="knob" control="8"/>
<map fiducial="9" type="knob" control="9"/>
<map fiducial="10" type="knob" control="10"/>

<!-- one 3DOF object + note on/off -->
<map fiducial="11" type="hfader" channel="0" control="11" min="0.3" max="0.6"/>
<map fiducial="11" type="vfader" channel="0" control="12" min="0.3" max="0.6"/>
<map fiducial="11" type="knob" channel="0" control="13" min="0.0" max="1.0"/>
<map fiducial="11" type="note" note="70"/>
</midi>

On voit que les premières lignes définissent des faders verticaux, qui seront attribués aux symboles 0, 1, 2 et 3 et seront analysés entre 10 et 90% d’une verticale. Ces informations seront routés respectivement vers les contrôleurs 0, 1, 2 et 3 du canal MIDI par défaut. Vous pouvez ensuite analyser vous-même les autres attributs de ce fichier, puis écrire vos propre xml pour paramétrer l’utilisation des marqueurs à votre guise. À noter qu’un même marqueur peut être utilisé pour tous les types d’information, comme le montre le dernier exemple du fichier demo.xml, avec le "fiducial" 11.

Pour vous aider, je vous donne ici la liste des notes correspondant aux numéros du fichier xml.

Numéros des notes pour reactivision - 22.1 ko

Numéros des notes pour reactivision

Grâce à cette méthode, j’ai réalisé un montage avec une webcam, pour diriger un logiciel Cubase.

installation - 98.5 ko
installation
 

installation - 60.5 ko
installation
 

Mixage - 72.7 ko
Mixage
 

publié le mercredi 31 octobre 2007 à 14h52 par Èffe


Post-Scriptum

Dans un prochain article, j’expliquerai la configuration de Cubase et Reason lors de l’utilisation avec reactivision.

Voici une capture d’écran de ce qui doit apparaître lors de la mise en route de réactivision sous dos :

Article vu 8329 fois

Haut de page


Quelques liens :

 

Site optimisé pour Firefox | Webmestre | Site SPIP