Utilisation d'un contrôleur midi avec tapemovie:

scaling

Les précédents spectacles ont été pilotés par des interfaces de type BCF2000 (8 faders motorisés + rotatifs).
Les valeurs des contrôleurs sont envoyées en midi dans tapemovie.

Le module d'entrée midi nous permet de:
  • définir la destination du contrôleur (sur quel paramètre le contrôleur agit)
  • définir une plage d'entrée des valeurs (utilisation de toute la course ou d'une partie de la course du contrôleur)
  • définir une plage de sortie des valeurs (transformation des valeurs midi en valeurs exploitables par le paramètre relié)
  • définir une courbe pour l'interpolation des valeurs (courbe linéaire, logarithmique ou exponentielle)
  • Nous appelons cette opération le scaling

  • exemple :
On veut jouer sur un paramètre de volume (le paramètre de volume dans tapemovie est entre 0 et 2).
Pour relier un fader vers un volume on utilise la syntaxe suivante :
/fader1-> /module/vol 0 127 0 2 0.1

  • explication : la plage d'utilisation du contrôleur midi est de 0 à 127 (utilisation de toute la plage midi standard), ce contrôleur joue sur le volume du module entre 0 et 2 avec une courbe exponentielle de 0.1, cette courbe est choisie afin de s'approcher de l'utilisation d'un fader traditionnel d'une console en terme de résultat sonore.

Cette technique nous permet d'être très réactif pour le mapping des contrôleurs midi.

Scaling

Le rappel des états des faders est cependant archaïque car lors de la mise en place d'une scène, nous envoyons une valeur midi aux contrôleurs concernés.

  • exemple :
Au début d'une scène, nous voulons mapper le fader1 au volume du module, pour ce faire nous écrivons dans une mémoire la ligne décrite précédemment.
Mais le volume du module doit être à 1 au départ de la scène. Comme la bcf2000 possède des faders motorisés, nous rappelons les valeurs du fader 1 via cette syntaxe:
/fader1_ 84.

84 est la valeur du fader pour un volume à 1. Cette valeur n'est pas calculée mais est déterminée par le régisseur.

conclusion

L'utilisation d'une télécommande midi est simple et permet une grande réactivité. L'absence de repères visuels quant à la destination des contrôleurs reste problématique car cette affectation change pour chaque scène.

Utilisation du Lemur avec tapemovie

L'émulation d'une télécommande midi traditionnelle

Dans un premier temps, nous avons essayé de réaliser une télécommande midi avec 8 faders.
Ceci nous a permis de réaliser qu'il fallait dépasser l'émulation d'une télécommande midi car le résultat n'était pas satisfaisant.

L'ergonomie

Le premier intérêt du Lemur est son interface graphique. Contrairement à une télécommande, on peut nommer chaque contrôleur et utiliser des pages différentes pour chaque scène.
Les possibilités de commentaires et de choix d'ergonomie sont déterminantes.
La personnalisation de l'interface de contrôle pose de nouvelles questions à l'utilisateur.
En effet, suivant la scène, on pense aux types de contrôleurs que l'on va utiliser, et surtout quelle est leur place sur l'écran, pour optimiser le jeu en régie.
La taille de l'écran reste cependant un petit peu problématique car des contrôleurs trop petits sont inutilisables en spectacle. Il faut donc optimiser le nombre de contrôleurs par page.
Le principe de tabulation (du module container) n'oblige plus l'utilisateur du lemur à changer de page sans arrêt, et surtout, il permet de rendre constamment accessible certains contrôleurs.

L'adressage

L'utilisation de l'osc permet de dialoguer directement avec les paramètres des modules tapemovie.
Il n'est donc plus nécessaire de devoir passer par un module de conversion de format (comme avec le midi).
Ce système interroge la nécessité des fonctions de scaling et antiscallng dans le logiciel.
Si le Lemur peut discuter directement avec les modules des environnements, il est indispensable qu'il connaisse le bon langage afin que le dialogue s'établisse de la meilleure manière.

La programmation

Le Lemur permet de réaliser des calculs mathématiques. Depuis la version 2, il est possible de scripter des fonctions !
Il est donc possible à présent de réaliser la fonction de scaling à l'intérieur du Lemur ! Cela permet d'alléger les environnements tapemovie en calcul, et de les déporter dans l'outil qui fournit les contrôleurs ! Ce qui semble logique mais qui n'est pas de tout repos.
Pour des utilisateurs de max/msp non-compétents en programmation informatique, la prise en main de ces fonctions est un petit peu rude.
Mais une fois la barrière franchie, les possibilités sont énormes et le manque de repères haptiques passe au second plan.

La physique

L'utilisation de la physique (contrôleurs soumis aux lois de masse-ressort) rend le contrôle des paramètres plus dynamique. Sa mise en oeuvre est simple et permet de minimiser les mouvements linéaires sur le Lemur qui sont plus agréables à réaliser sur une télécommande traditionnelle et qui peuvent s'avérer problématiques sur un Lemur.
Il est nécessaire de scripter la désactivation du mode physique après l'utilisation des contrôleurs concernés, car le Lemur peut s'avérer très bavard.
Cela peut entrainer des problèmes de chargement de tapemovie

Projet Lemur réalisé

Architecture globale

Le projet Lemur pour le spectacle se compose d'un container avec différents tabs (sorte de contenant dont le contenu est rappelé avec des signets). Chaque tab correspond à une scène du spectacle. Nous avons préféré garder tout le spectacle sur une même interface afin de faciliter l'intégration d'objets communs au spectacle comme le go, le volume d'entrée et de sortie, la visualisation des cues etc...
L'appel des différents tab se fait soit via le container soit via un menu qui permet d'appeler la cue de début de scène (mise en place des états de départ de scène des modules)

Filtrage des envois du Lemur

Afin de pas envoyer constamment les données des objets Lemur soumis à la physique, un filtrage a été mis en place. Les objets de chaque container envoient des données à tapemovie uniquement si la ou les bonnes scènes sont sélectionnées.

au début de chaque action on place la phrase suivante

Image

Ici l'objet Lemur en question est utilisé dans 2 scènes, (tab 1 et 2)
ombresel est le menu qui gère les tab

Mise en place d'un scaling

mise en place d'expressions
curve, inmin, inmax, outmin outmax

Image

  • Ces expressions servent dans la formule suivante :
Image
  • Cependant, si le outmin est supérieur au outmax, il faut utiliser une autre formule :
Image

Une fois ces formules trouvées, il a été très facile de rajouter des objets Lemur, et surtout de réaliser des contrôleurs servant à manipuler plusieurs paramètres, chose moins évidente dans tapemovie, car cela nécessite l'utilisation de mappeur ou de patchs spécifiques.

Remarques sur l'utilisation du Lemur

  • Le scaling avec les courbes pourrait être intégré directement dans les objets, car sans cela il difficile d'utiliser un slider. On peut certes faire tout cela dans max , mais cela va à l'inverse de la logique du Lemur qui permet de réaliser tout cela !
  • Nous n'avons pas réussi à scripter le Lemur menu
  • Le Lemur menu est limité à 10 items, ce qui n'est pas suffisant
  • l'objet texte n'aime pas les accents qui viennent de max

Développements futurs

mise en place de le scaling inverse automatique dans le Lemur.
Image
Image
Image
Image