Sites


Performance audiovisuelle et pratique du VJing

Par automatisation

L'automation consiste à faire exécuter une série de tâches par une machine ou un programme sans intervention humaine.

Par l'analyse de données contextuelles

Vision par ordinateur

De gauche à droite, image RVB, masque obtenu par soustraction du fond et soustraction des images consécutives.

Il est également possible d'utiliser les caméras comme capteurs. Pour ce faire, il faut appliquer un traitement algorithmique à l'image pour lui faire produire du sens. Ce procédé technique est appelé vision par ordinateur. La librairie OpenCV et ses diverses implémentations est un très bon outil libre pour ce faire.

Il faut noter ici que pour cette analyse, il est important d'opter pour une caméra débrayable, c'est-à-dire où l'exposition et la mise au point peuvent être mises en mode manuel.

L'analyse par soustraction du fond ou background subtraction permet la détection de présence comme de mouvement. Elle compare le flux vidéo à une image de référence, le fond, capturé une fois au début du processus. Elle permet de détecter les différences entre le fond et cette image, c.à.d. les corps ou objets distinguables, dits blobs, qui s'y meuvent. On pourra ensuite récupérer les positions et tailles de ces blobs dans l'image en utilisant un blobber. En plus de désactiver les réglages automatiques de la caméra, il faut que les conditions d'éclairage de la scène qu'on observe soit constant car si la lumière varie, le fond varie également, cette technique ne s'applique donc que dans des espaces clos sans lumière du jour directe, de nuit ou encore avec un éclairage infrarouge.

L'analyse par soustraction des images consécutives permet uniquement la détection de mouvement. L'image de référence pour la comparaison étant l'image précédente, ce procéder permet de distinguer les pixels où la couleur change. Si un objet ou une personne cesse de bouger, il disparaît. Si une forme de couleur unie s'y déplace seul son contour sera distingué, alors qu'un objet avec de petits motifs sera reconnu intégralement. Si tant est que de petites erreurs soit admissibles dans le processus où sera envoyé la quantité de mouvement ainsi calculée, ce type d'analyse est à préconiser car plus adapté à des conditions d'éclairages moins stables. Il faut noter enfin que cette analyse est souvent utilisée en corrélation avec des masques de zones ou un système de détection par cellules. Cela permet d'observer plusieurs zones en utilisant plusieurs caméras.

De nombreuses autres opérations sont possibles. Il est possible de repérer des objets en fonction de leur couleur, des visages humains, ou encore des marqueurs de réalité augmentée utilisés comme curseurs avec la Reactable.

Enfin il faut citer la Kinect, caméra développée par Microsoft pour sa console XBOX360. cette dernière a la particularité de "voir" en 3D. Libfreenect, outil libre développé par OpenKinect, contenant des drivers et bibliothèques sorti tout de suite après le lancement de la Kinect, permet d'utiliser cette dernière sur Windows, GNU/Linux, and Mac OSX. En plus des couches RVB d'une caméra classique, une couche Z est disponible, où chaque pixel décrit non pas la couleur mais la distance des éléments à l'objectif de la caméra, ce qui ouvre la porte à des tonnes de possibilités.

À gauche la couche Z, à droite l'image RVB, obtenue au moyen de Libfreenect et d'une Kinect.

Programmes libres : Pure Data avec GEM, Gridflow, PDP, Open Frameworks, Oskeleton, Gamuza, TUIO.

Programmes privateurs : ReactiVision, Max/MSP+Jitter, Eyesweb, faceOSC.

Analyse de flux audio

L'analyse du flux audio est bien évidemment un aspect tout aussi essentiel que complexe pour le VJ ou l'artiste désireux de voir ses visuels synchronisés avec ceux provenant de micros, d'un DJ ou d'un instrumentiste. L'une des principales difficultés avec l'analyse audio temps réel réside dans le nécessaire compromis entre la puissance de calcul nécessaire et le temps de latence induit par ce calcul, ainsi que la taille de la fenêtre. Les analyses dites offline sont en général bien plus précises mais c'est un cas de figure qui sort du cadre choisi. L'acoustique est un domaine particulièrement vaste, nous allons donc nous contenter de survoler trois types d'analyses usuelles: la détection du rythme, la détection de hauteur et les analyses FFT de fréquences, avec des exemples d'objets du langage Puredata et de la bibliothèque de fonctions Aubio.

La détection de rythme la plus simple consiste à analyser l'enveloppe de l'énergie du son au cours du temps, en mettant plus ou moins l'accent sur les hautes fréquences. C'est ce que réalise par exemple l'objet [env~] de Puredata. On ne va cependant pas très loin avec ce type d'analyse basé sur la somme de toutes les fréquences, avec de nombreuses analyses fantômes. Une méthode plus efficace consiste à pratiquer l'analyse sur plusieurs bandes de fréquences puis effectuer leur sommation, en tablant sur le ratio de chaque bande plutôt que la différence, ceci afin de normaliser l'analyse. C'est l'approche retenue par Miller Puckette dans l'objet [bonk~] de Puredata.

Avec Aubio, une autre approche est utilisé, puisque la librairie est disponible comme objet pour Puredata, mais aussi comme libraire C ou Python, ou encore comme programme autonome pouvant procéder au slicing, c'est à dire au découpage d'un enregistrement audio en une multitude de petits fichiers audio démarrant juste après la détection d'une attaque.

L'étape suivante après la détection des attaques, consiste à faire découvrir au programme si le rythme joué correspond à un motif déjà connu. C'est là qu'intervient la connaissance musicale de l'artiste.

Spectrogramme représentant la note La, de gauche à droite, jouée  par un piano, par une guitare, par un vibraphone et par une harpe. L'axe des abcisses représente la durée, l'axe des ordonnées la fréquence donnée en Hertz. Les couleurs chaudes représentent des fréquences plus intenses. Source: Paul M. Brossier.

Le but de la détection de hauteur (ou pitch tracking) est de déterminer la fréquence exprimée en Hertz perçue par l'auditeur comme la hauteur d'un son. Nombre de sons, y compris certains sons percussifs, sont perçus comme dotés de cette hauteur. Certains, comme une cymbale crash et autres timbres percussids, ne sont pas perçus comme ayant une hauteur. Les sons musicaux sont souvent un alliage de sons dépourvus comme dotés d'une hauteur, qui peuvent se retrouver articulés en une suite de variations très rapides. Le but d'un système de détection de hauteur est donc d'identifier les sons qui donnent une sensation de hauteur, de suivre la fréquence correspondant à cette hauteur perçue, et d'éviter les sons dépourvus de hauteur. Autant cela est une tâche abordable avec un son monophonique, autant c'est une tâche complexe dans un contexte polyphonique, qui est le cas le plus familier. Elle consiste à identifier avant tout une fréquence fondamentale, puis ses harmoniques, en essayant de ne pas se retrouver trompé par les sons transitoires.

Exemple de patch Puredata faisant appel à l'objet [sigmund~]. Source: Dan Ellis, CC BY SA.

Le dernier type d'analyse envisagée ici l'analyse spectrale, qui consiste à analyser la hauteur d'ensemble de bandes de fréquences, le plus souvent 12, avec l'aide de la transformation de Fourier, connu sous le nom de FFT.

Illustration de l'article "Working with sound" de Thor Magnusson tirée de l'ouvrage "Digital artist's Handbook"

Une fois ces analyses effectuées, il est particulièrement aisé de transmettre leurs résultats aux programmes vidéo par une liaison MIDI ou encore en OSC.

Sources: Music signal processing, cours de Dan Ellis, Université de Colombia. Automatic Annotation of Musical Audio for Interactive Applications, PhD de Paul Brossier, Centre for Digital Music, Queen Mary University of London.

Capteurs à distance

Les capteurs constituent la première étape, dans la chaîne de l'interactivité, celle de l'acquisition. Leur fonction est de convertir des grandeurs physiques en valeurs mesurables et exploitables dans un circuit électronique et/ou informatique. Les capteurs sont présents partout dans la vie courante, de la cellule photo-électrique ouvrant la porte d'un magasin, aux RFID incrustées dans les passeports. On les trouve également sur scène ou dans les installations, que ce soit des capteurs propriétaires comme ceux construits par les Parisiens d'Interface-Z, ou des éléments distribués en licence Open Hardware produits par les toulousains de Snootlab, qui se greffent sur un Arduino.

On ne peut plus travailler en matériel électronique libre aujourd’hui sans évoquer cette dernière carte, conçue dans un but pédagogique par l'enseignant italien Massimo Banzi, une carte micro-contrôleur à bas prix permettant d'interfacer un ordinateur avec le monde physique. Elle a connu un succès fulgurant parmi les étudiants en design et en arts, comme parmi les performeurs de tout poil et les accros du DIY.

2 shields sur un arduino

De bas en haut : un Arduino, un shield Ethernet, un Shield lecteur audio avec une carte SD

Elle peut être connectée à 13 entrées ou sorties numériques, dont 3 PWM (pouvant donner 3 sorties analogiques : cf l’article PWM sur wikipédia) et 6 entrées analogiques convertissant en 10 bit. Dans la version la plus courante, la communication avec l’ordinateur se fait par un port USB. Il existe plusieurs versions de l’Arduino, dont une version miniaturisée, et de nombreux autres clones comme le Seeeduino. La carte dispose d’un logiciel système interne (modifiable) et de programmes utilisateurs.

La carte Arduino peut être autonome: elle dispose de sa propre alimentation électrique et fonctionne en exécutant le programme autonome écrit avec l'IDE libre Arduino ou encore l'IDE propriétaire AVR Studio. On peut également l'utiliser comme simple interface relié à un ordinateur via le port série ou plus communément un port USB. On flashe alors sur la carte un programme standard baptisé Firmata permettant de communiquer avec de nombreux programmes exécutés sur le PC comme les logiciels libres Processing, Pure Data, SuperCollider, mais aussi des programmes propriétaires comme Max/MSP, Macromedia Flash, etc.

Les Arduino peuvent être équipées de cartes d'extensions nommées shields qui étendent leurs capacités et leur permettent d'avoir des sorties vidéos, des capacités de lecture de système de fichiers sur carte SD, des capacités de réseaux filaire (Ethernet) ou sans fil (Bluetooth, Zigbee, Wifi), etc.

Sources : Jean-Noël Montagné, CRASlab, 2006. http://www.ci-diguente.net/cat/decouvrir/technologies-decouvrir/

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.