développement , 2011

traverse

Journal de bord du travail de recherche technique pendant la création du spectacle traverse

HISTORIQUE DU PROJET :

Le précédent spectacle de la cie arcosm (où je fais la réalisation/régie) “la mécanique des anges” utiilse tapemovie avec un système d’ordinateur synchronisé constamment (voir synoptique). La régie informatique était composé d’une O1V yamaha (son + télécommande midi) 2 ordinateurs avec carte son ADAT. Nous tournons avec une console.

Sur “traverse” le nouveau spectacle jeune public de la cie arcosm nous avons décidé d’utiliser ableton live notamment pour ses intruments de bouclage.
Le choix de la télécommande pour la régie n’est pas encore décidé. Le spectacle doit être léger en son (la régie doit pouvoir prendre l’avion en bagage à main.), et une reprise se fera l’année prochaine
• synoptique de la régie de traverse

CHOIX

L’arrivée de max for live (M4L) a été déterminant dans le choix du logiciel Live.
Cela me permet de me former dessus et de créer des modules.

CAHIER DES CHARGES

Pour pouvoir travailler il me faut :
• une solution de backup en régie (ordinateur ou autre synchronisé et transparent)
• communiquer de manière simple entre live et M4L
• un système de cues qui puisse rappeler des paramètres de live depuis M4L
• un système de mapper qui me permet de contrôler plusieurs paramètres sur live depuis M4L
• un spatialiseur

 

avant la première étape de création – kingersheim

backup

Le système de régie est le suivant :2 ordinateurs une consoles numérique Yamaha (01V96, 02R96, DM1000, DM2000, M7CL) 2 cartes son.
Une télécommande doit piloter les 2 ordinateurs simultanément.
Pour l’instant si je garde l’APC40 en régie, il faudrait trouver le moyen de spliter le signal et le merger en USB. On peut le faire avec du câblage, merge et thru midi, mais en USB cela ne fonctionne pas. Ou alors il faudrait un appareil sur lequel je branche l’USB de l’APC40, je branche le out midi de ce boitier vers le thru midi et je branche le in midi du boitier vers le merge midi. Le soucis est que ce boitier n’éxiste pas… si quelqu’un à des solutions…
Sinon la solution O1V sera de mise.

 

communiquer de manière simple entre live et M4L

La communication de base entre live et M4L n’est pas simple :

Contrôler et observer un paramètre live

le path + id

Il est possible de contrôler une grande partie des paramètres live. Pour cela il faut connaître le chemin du paramètre.
Ce chemin est connu grâce au LOM – The Live Object Model.
En fait, lorsqu’on pointe un paramètre via l’objet live.path, ce dernier attribue de manière arbitraire un id (identifiant) au paramètre.

hierarchie de path :

(je ne me suis interresé qu’aux pistes, on peut faire de même avec certains paramètres de clips)

live_set -> tracks -> 0 -> mixer_device -> volume
1                          -> panning
2                         -> sends -> 0
1
2
-> device -> 0 -> parameters -> 0
1 1
2 2

par exemple:
le paramètre 1 (on/off) du filtre 8 band qui se trouve inséré seul sur la piste 3
path live_set tracks 2 device 0 parameters 0

Attention ! Lorsqu’on quitte le projet live puis qu’on le ré-ouvre l’affectation des id aura peut être changé. Cette affectation est dynamique et en fonction de l’ordre d’appel des paramètres via l’objet live.path
Attention ! si on change de place une piste ou un plug ou instrument, le path change.

contrôler un paramètre

Il est alors possible de piloter le paramètre en envoyant l’id du paramètre à l’objet live.object comme ci-dessous

observer un paramètre

Il est possible d’observer un paramètre, donc de connaître sa valeur comme ci-dessous:

les propriétés du paramètre

Il est possible d’interroger les propriétés d’un paramètre live comme ci-dessous :
A partir d’un path live on peut trouver le nom, la valeur par défaut, le minimum et le maximum d’un paramètre.

Contrôler un paramètre live de manière simple

Mon but était de communiquer les live de la manière osc “/nom_de_la_piste/volume valeur” ou “/nom_de_la_piste/nom_du_device/nom_du_paramètre valeur”

le choix des paramètres pilotables

Je n’ai pas voulu rendre tous les paramètres pilotables. Je me suis limité aux paramètres des pistes audio et midi (volumes, pan, send, et devices), ainsi qu’aux 3 premières pistes de retour d’effet car les suivantes me servent aux spatialiseurs et aux retours des musiciens

la table de correspondance

En m’inspirant du travail de Mathieu Chamagne sur le Mu (émulation d’une APC40 sur un lémur), j’ai fabriquer de manière générative une table de correspondance entre une adresse osc et un path m4l (avec un objet coll max).

Cela permet de piloter un paramètre en utilisant son nom

En ajoutant un petit patch il est possible de rappeler des valeurs les unes après les autres

un système de cues

A partir de ce travail il a été relativement aisé d’utiliser des systèmes de cues déjà existants (cuemanager de jamoma et de tapemovie) pour fabriquer et restituer des mémoires.
Après avoir utiliser le cuemanager de jamoma je me suis tourné au final vers celui de tapemovie car cela m’a simplifier les chose lorsque j’ai ajouté le mappeur tapemovie.

le snapshot

Voici l’interface qui permet de créer un snapshot des paramètres de live. Le snapshot est écrit dans une qlist de max

la séquence

Le système de séquence (scènes) dans live est bien fait et permet de déclencher les clips (son ou midi) simplement.
Il est donc important de garder ce système pour déclencher les cues préalablement crées.

J’ai utilisé l’eventmanager de tapemovie car je le connais bien et je je le trouve pratique. Il permet de fabriquer des cues ou event qui peuvent être des snapshot (rappel de valeurs de paramètres) ou des dynamisation de paramètres  (paramètre va à telle valeur en temps de temps)

Afin de lier une scène live à un event tapemovie, j’ai choisi un système de correspondance entre les noms.
Si le nom d’un event est le même que le nom d’une scène live, lorsqu’on déclenche une scène live cela déclenche l’event.

un mappeur

Le choix du mappeur s’est porté sur le mappeur de tapemovie.
Après quelques modifications pour qu’il puisse discuter avec le système de table de correspondance d’adresse, je me suis rendu compte que le système mis en place permettait de discuter qu’avec un seul paramètre à la fois.
Pour que le mappeur fonctionne il est indispensable d’avoir des makeparam tapemovie (objet qui relie un paramètre).
Or dans le cas de live si je veux que chaque paramètre soit pilotable avec un mappeur j’ai besoin d’avoir 900 makeparam. J’ai essayé ce système sans grande conviction, et cela n’est pas gérable car il alourdi considérablement le système.

J’ai préférer spécifier de manière manuelle les paramètres que l’on veut piloter avec le mappeur. On écrit les paramètres désirés dans une liste :
Cette liste permet de fabriquer des makeparams (reprise du systèmes de génération de sample dans tape) et de les retrouver dans le menu du mappeur.

Il est donc possible de piloter plusieurs paramètres à la fois avec un seul contrôleur.
Ce systeme est un contraignant mais c’est la seule solution que j’ai trouvé.

Le spatialiseur

Pour le spatialiseur j’ai copié le travail de Lois Drouglazet qui a créer un spatialieur en mixant le spatialiseur jamoma fabriquer par Pascal Baltazar pour la cie Louis Brouillard et celui de Clément-Marie Matthieu.

le spatialiseur de Pascal

Ce spatialiseur utilise de dbap jamoma. Les sorties audio sont intégrées dans le spatialiseur, il n’est donc pas possible d’effectuer des traitements (delay, égalisation) sur ces sorties dans live.

le spatialiseur de Clément-Marie
Ce spatialiseur utilise les sends de live et l’objet dbap. ces sends sont pilotés en midi. Avec ce principe il est possible de traiter les sorties audio en insérant un effet sur les pistes de retours de live.

le spatialiseur de Lois
Ce spatialiseur utilise les sends de live et l’objet dbap. ces sends sont pilotés avec l’objet live.remote t s’avère plus efficace et plus pratique que le midi.

J’ai juste modifié ce spatialiseur pour l’adapter à ma configuration d’enceintes. J’utilise également le pan afin de minimiser le nombre de send.

 

après la deuxième étape de création – villefontaines

Après avoir été 10 jours en résidence à Kingersheim et 10 jours à Villefontaines, j’ai pu chercher des solutions de diffusion et de microphonie.
Je pense que le dispositif est trouvé.

Nous avons fait peut de sons écrits, mais plus des essais.

Les 10 derniers jours à Villefontaine ont permis de continuer des essais avec des début d’écriture, enchaînement de scénario.
Le dernier jour nous avons fait un filage ce qui m’a permis de tester le conduitage sur live dans le stress.
Ce filage a permit de révéler plein de faiblesses en terme d’environnement logiciel et en terme d’univers sonore.
Live a fait plein de clics à la fin du filage, j’ai du changer ma taille de buffer de 128 à 350 samples.
Il va falloir optimiser tout cela et créer des cues d’init et de dés-init.

 

Systeme de cue

Je me suis aperçu que le système de cue n’est pas fiable, car il est indispensable d’insérer un petit temps entre chaque envoie d’information.
En effet, lorsque qu’un message est envoyé à live, il parcours le chemin suivant :
-> la cue envoie la ligne /tolive /vibra/volume 1
-> passe dans l’objet receive /tolive
-> /vibra/volume est converti en path live via l’objet live.path, live.object et le traducteur (cela prend un petit temps)
-> la valeur 1 est envoyé au paramètre live.
-> la cue attends 10ms
-> la cue envoie la ligne suivante
L’opération de  traduction et de la référencement du pathlive n’est pas rapide. Il faut du temps entre chaque opération.
J’ai eu l’occasion d’en parler avec Tom Mays et Renaud Rubiano qui m’ont guidé vers une solution.
A présent voici le chemin d’un message envoyé à live :
-> la cue envoie la ligne /vibra/volume
-> la cue fait pause, /vibra/volume 1 est converti en path live via l’objet live.path, live.object et le traducteur
-> la valeur 1 est envoyé au paramètre live.
-> la cue reprend et passe à ligne suivante.

Graàce à l’aide Renaud Rubiano le système interprète tout seul si un paramètre est adressé à live ou à m4l.

 

Séquence

La séquence est à présent géré avec l’ordre de 1  à x des cues qui se trouvent dans le menu play.
Pour les déclancher il suffit de jouer un clip midi avec une note dont le numéro correspond au numéro de la cue.

 

MakeState

Le système du “makestate” a été améliorer.
Précédemment on pouvait cliquer sur un bouton est d’optenir l’état de tout l’environnement.
Cette solution était un peut lourde surtout qu’on ne veut pas optenir toutes les valeurs mais que certaines valeurs de certains paramètres.
Ces paramètres recherchés sont souvent l’état d’une piste, l’état d’un instrument, l’état de plusieurs pistes.
J’ai mis en place un petit système simple de navigation :
On choisi soit
le contenu d’une piste
le contenu d’une piste de retour
le contenu d’un groupe de piste défini dans dans un fichier texte

Une fois la catégorie choisie, il suffit de cliquer et d’obtenir les valeurs de chaque paramètres présent dans la ou les pistes choisies.
Ensuite il faut copier le contenu du make state et le coller dans une cue.

 

Liste des paramètres lives

Les paramètres mute et monitor sont apparus, leur intégration n’a pas été simple car ils ne répondent pas aux mêmes logiques de path que les autres paramètres

 

Mapper

Les mappeurs ont été simplifiés et n’ont plus d’édtieurs. Tout se fait par texte
Pour le fader : /ctlf.1/1
/ctlf.1/1 /nom/du/paramètre inmin inmax outmin outmax curve valeurdedépart tempsdeligneenms
/ctlf.1/1 /vibravolume 0 127 0. 0.85  0.1 0 10
/ctlf.1/1 à /4 -> on peut contrôleur jusque 4 paramètres de live avec un même controleur
/ctlf.1/5 -> le /5 signifie que le contrôleur pilote un paramètre de m4l et non live
Pour les toggle : /ctlt.1/1
Pour les capteurs (sensor) : /ctls.1/1

Les mappeurs sont configurés pour travailler avec 4 fader, 9 rotatifs, et 9 toggles

 

Rampes

Jusqu’à présent je ne pouvait pas dans mon set réaliser une rampe : dire à un paramètre d’aller de telle valeur à telle valeur en temps de temps
J’ai réaliser un petit module qui permet de faire cela avec une syntaxe proche de celle des mappeurs:
Pour que le volume de la piste vibra aille de 0 à 0.85 :
/line.1/1 /vibra/volume 0. 0.85 3000 0.1;
/line.1/1 /nom/du/paramètre valeur_départ valeur_arrivée temps_pour_arriver curve

Télécommande

Actuellement je prépare le set pour la prochaine résidence au Luxembourg et la console là-bas sera analogique, j’ai envie de rester léger et de travailler avec une uc33

 

la troisième étape de création – luxembourg

Le luxembourg a permis de réellement tester tout le dispositif et surtout de pouvoir jouer avec les artistes nottement les percucisonnistes.
Cela a été réellement la première phase de travail avec les musiciens, et un test de la diffusion.

 

musique Reich

La scène nommée reich a été travaillée.
Dans cette scène 2 percussionistes (vibraphone, marimba, percu sur décors) enchainent une série de phrases musicales. Ils ont un clic dans les oreilles.
Il faut envoyer à tour de rôle en ouvrant les bons microphones les instruments dans un delay dont le feedback dure 1 min. Il faut que le niveau de delay et d’instruments en direct soit le même.

musique Pulse

Une fois les phrases jouées, il faut looper la dernière phrase et lui faire une transformation une fois looper. Cette transformation découpe les temps et donne l’effet d’une synthèse granulaire liée au tempo.
Une fois cette nouvelle boucle installer, les artistes (2 percu+ mime + danseuse) font des phrases de percussion sur le décors. Il faut boucler ces phrases afin de créer un rythme complexe.

Looper

Après avoir tester à la souris, j’ai télécommander certains paramètres avec l’uc33. Mais la touche pédal de la device live Looper ne voulait pas fonctionner en midi avec l’uc33 alors qu’elle fonctionnait avec osculator.
J’ai tester avec une APC20 dans un magasin et cela marchait. J’ai donc acheter une APC20 pour piloter le tout.
Le looper a un système de synchronisation sur le tempo, on peut choisir combien de mesures il enregistre et quand l’enregistrement intervient.
En pilotage m4l je n’ai pas réussi à faire cette même synchronisation

Une fois que le set marchait j’ai du apprendre à reconnaitres les phrases et à ouvrir et fermer les bons envois des pistes dans le delay et surtout au bon moment. Cela a été long car si on fait une erreur, cette erreur s’entend pendant 1 min.
Il y avait plusieurs paramètres à  utiliser sur 4 pistes, 8 boutons send on / 8 send off / 4 par looper (2 looper en tout).

Mapper

L’APC20 ne possède que 9 fader, il fallait donc utiliser du mapping.
Mais le mapping sur des fader non motorisés est difficile.
D’autant plus que les scènes du spectacle sont nombreuses et s’enchainent très vite.

Cues

Les cues ont fonctionné correctement.

Lourdeur

Nous avons réaliser une présentation publique. Des problèmes de clics sont apparus pendant certaines scènes. Et du coup le mapping ne se faisait plus bien

Bilan

Ces 10 jours ont permis de réaliser que le set est trop lourd, et qu’il manque terriblement d’un univers sonore en dehors des nombreuses musiques.

avant la dernière étape de création

Ces 15 jours entre le Luxembourg et Villefontaines ont permis de faire de nouvelles prises de son et de simplifier le set

 

Le drum Rack

Le drum Rack permet de faiare de la polyphonie de de diffuser plusieurs sons en même temps sur les mêmes sorties. Un son est associé à une note
De plus il permet de donner une enveloppe au volume de la lecture du son. Ainsi on peut faire un fade in sur une boucle sans qu’il soit inscrit dans la boucle, on met un temps  d’attaque de note  à la lecture et un temps de release à la l’arrêt (fade out)

La lecture d’un clip midi en boucle envoie une note on puis une note off.
Cela ne convient pas si on a mis un temps d’attaque et de release.

La confection d’un petit patch max a permis de s’affranchir de ce système
Ainsi j’ai pu réduire des pistes (de 15 à 5).

Simplification de la conduite : reich

En utilisant les capacité d’automation des clics j’ai pu réaliser la conduite du reich au go en programmant des ouvertures et fermeture (fermeture automatisé) d’envois avec des courbes et une synchronisation sur le tempo.
Pour cela j’insère des clips dans les pistes d’entrées. Du coup le son du clip n’est pas joué, mais on a le changement lié à l’automatisation sur le son en entrée (vibra, marimba, décors)

Avec ce système d’automatisation, j’ai pu contrôler le Looper à partir d’un clip audio en ajoutant un petit patch max

Réduction de pistes

Les instruments sont passés en mono et les deux micros du décros sur une piste stéréo.
Les pistes de retous ont été réduite.

 

Abandon du mapper

Du coup le set pouvait à nouveau autre joué avec une UC33, et l’UC33 possède assez de boutons pour piloter les paramètres nécessaires de manière fixe (sans changement d’affectation pendant le jeu).
Ainsi je n’ai plus eu besoin du mapper et du module line

dernière étape de création

La conduite a pu être jouée en vrai.
Les préparations on été bonnes car la conduite a pu passer.

 

Reich plan B

la transformation de la boucle du reich vers pulse ne fonctionnait pas car l’effet utiliser, le beat repeteur ne permettait pas d’être caler sur le premier temps.
Nous avons donc enregistré une boucle modifiée par le beat repeteur et nous jouons cette boucle en fade in.

Pulse

Pulse a commencer à fonctionner correctement 3 jours avant la première, nous avons longtemps chercher les niveaux

Chef d’orchestre et capteurs

La scène du chef d’orchestre a été travaillée pour de vrai avec les capteurs à Villefontaines car les vêtement sont arrivés à ce moment.
La cue m4l de la scène du chef d’orchestre ne passait pas 1 fois sur 3…
La solution d’automatisation avec un clip certains paramètres sensibles a permis un 100% de réussite d’un point de vue logiciel sur les 5 premières représentation.

 

Mise en place des niveaux et affinage des tops

Bilan

La création avec live a été très formatrice.
La méthode a été longue a trouver et au final ce sont les solutions et la logique de Live qui dominent. Les apports de patchs m4l sont ciblés et réduits
Le temps passer à trouver cette méthode et résoudre les problématiques (reich, pulse) n’a pas permis de plus investir la recherche d’un univers sonore.
Cela se fera le long de la tournée.