Le Blog

Affichage de la forme d'onde d'un son dans Lemur

Utilisant le logiciel Lemur pour circuler dans un son, je voulais afficher la forme d'onde de ce son. Après beaucoup de travail avec l'objet canvas, j'y suis parvenu. Le mode d'affichage est un peu inhabituel: plutôt que d'afficher des barres verticales dont la hauteur dépend de l'amplitude du son et le sens de la polarité, j'ai opté pour un affichage modifiant la brillance en fonction de l'amplitude. Cette option permet d'avoir des barres qui occupent toute la hauteur de l'objet MultiBall, utilisé sur deux dimensions. Par voie de conséquence, ce sont les valeurs RMS de l'amplitude qui sont affichées, ce qui est très bien, l'idée étant avant tout d'avoir une indication sur l'énergie du son.

J'ai d'abord tenté de mémoriser l'ensemble des formes d'onde directement dans Lemur, et ce afin d'éviter d'envoyer de grands paquets de données de l'ordinateur à la tablette à chaque changement de son. Pour ce faire, j'ai créé un script JS dans un patch Max qui crée directement du code Lemur dans un objet "text". Le projet Lemur est directement modifié dans un éditeur de texte plutôt que dans l'éditeur Lemur, ce qui accélère grandement le travail (notamment parce que la taille limite des scripts de Lemur empêche de copier-coller des grands paquets de données de Max à Lemur). La tâche est compliquée par le fait que Lemur comporte une limite de 256 élements sur la taille des tableaux, chaque forme d'onde doit donc être scindée en quatre parties. Pour l'instant, cette variante ne fonctionne pas, peut-être parce qu'il faut gérer des tableaux de tableaux ou parce que l'éditeur a du mal a gérer des projets de grosse taille.

Finalement, transférer une forme d'onde affichée sur 944 points entre Max et Lemur via OSC ne semble pas poser de problème, et cela évite de devoir stocker toutes les formes d'onde dans Lemur.

Dans la vidéo, le choix du son est fait sur une tablette, transmis à l'ordinateur, qui lui-même renvoie la forme d'onde correspondante à afficher dans une seconde tablette.

Par contre, le dessin complexe qui doit être rafraîchi à chaque instant (frame) ralentit sensiblement Lemur. Dans la seconde vidéo, on voit que la balle de l'objet MultiBall est plusieurs centimètres derrière le doigt quand celui-ci se déplace à vitesse moyenne alors que sans le canvas à redessiner, la balle suit le doigt de très prés. Pas sûr que ce soit améliorable avec le matériel actuel.

Mots-clés: Max/MSP/Jitter, Lemur, OSC

ImprimerE-mail