4- Interagir avec la musique

Transcription

4- Interagir avec la musique
4- Interagir avec la musique :
Outils pour communiquer des informations musicales
4.1 le V-jing
Dubfire, Quayola
4.2 Le Midi / OSC , protocole de communication
les normes Midi et Osc
Utilisation d'une partition et d'un fichier midi
Utilisation d'outils interactifs
4.3 Etudes de cas dans Touch Designer
(outil dédidé au temps réel : installations/performances)
Interagir avec un piano
Communication entre logiciels
Utilisation d'un capteurs via Arduino
4- Interagir avec la musique
4.1 Le Vijing
Dans les années 1960 à San Francisco, des spectacles visuels donnés par des collectifs d'artistes
comme The Joshua Light et The Brotherhood of Light, inspirés par la Beat Generation, ont
accompagné les concerts de The Grateful Dead. The Exploding Plastic Inevitable, organisé
par Andy Warhol, a également contribué à la fusion de la musique et de l'image dans un
contexte festif.
Dans les clubs et les évènements privés « les gens utilisaient des liquides rétroprojetés, des
boules disco et des projections de lumière sur de la fumée pour donner de nouvelles
sensations au public. Certaines de ces expériences étaient liées à la musique, mais la plupart
du temps elles n'étaient que des décorations4 ». Elles furent appelées « liquid light shows ».
À la fin des années 1970 la collaboration entre la musique et la vidéo devint plus proche. Des
groupes comme Cabaret Voltaire commencèrent à utiliser du matériel de montage vidéo peu
cher pour créer leurs propres visuels pour leurs travaux sonores. Quelques groupes
commencèrent à régulièrement montrer des images pendant leurs concerts.
L'usage écrit du terme « vidéo-jockey » a fait son apparition sur la fiche de paye de
Merrill Aldighieri en mai 1980 dans une boite de nuit à New York, appelée HURRAH. Elle a
improvisé en interprétant la musique du DJ en temps réel avec l'aide d'une installation vidéo,
de projections de caméras vidéo live, de cassettes vidéos variées, et de trucages multimédia
avec les miroirs et projections de boucles 16 mm.
4- Interagir avec la musique
Quelques artistes
Mira Calix
https://www.youtube.com/watch?v=N5WjlTOAyOY&index=1&list=RDN5WjlTOAyOY
Festival VisionSonic à Main d'Oeuvre trailer
1024 architecture Crise - Live
Murmur Chevalvert
Agence Cumulus Vjing classique
MemoAkten
Toca 8'
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
4.1 Le Midi / OSC , protocole de communication
Le Musical Instrument Digital Interface ou MIDI est un protocole de communication et
de commande permettant l’échange de données entre instruments de musique
électronique, un ou plusieurs de ces « instruments » pouvant être des ordinateurs. Il
est géré par l’International Midi Association.
La liaison est unidirectionnelle (simplex). Le grand atout de ce protocole est son
interactivité : il sert à la fois pour la commande et pour l’enregistrement. Sous ce
terme sont regroupées plusieurs normes, relatives au protocole logique, à l’interface
physique, au format de fichier et à l’attribution des sons (GM).
Open Sound Control
L'Open Sound Control est un format de transmission de données entre ordinateurs,
synthétiseurs, robots ou tout autre matériel ou logiciel compatible, conçu pour le contrôle en
temps réel. Il utilise le réseau au travers des protocoles UDP ou TCP et apporte des
améliorations en termes de rapidité et flexibilité par rapport à l'ancienne norme MIDI.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Le Midi
Le système apparait en 1982 pour que les fabriquant et devellopeurs d'instruments de
musique electroniques incluent un set d'hardware dans leur matériel. En 1983, le
MIDI 1.0 est officielement sorti par the International MIDI Association
La première démonstration publique eut lieu lors du NAMM de 1983, entre un Jupiter6 (Roland) et un Prophet-600 (Sequential Circuits), par leurs deux représentants et
fondateurs, Mr K pour Roland et Dave Smith pour Sequential Circuits. Dave Smith est
un des concepteurs de la norme MIDI.
L'ordinateur Atari ST est considéré comme la machine ayant popularisé la norme MIDI
auprès du grand public, et plus particulièrement des musiciens, notamment en raison
de ses prises MIDI intégrées et de la qualité de ses séquenceurs1.
Le MIDI est un protocole de transmission unidirectionnelle d'informations sous forme
numérique en temps réel utilisé par les instruments électroniques pour communiquer
entre eux. Mais attention, le MIDI ne transmet pas de signal audio mais uniquement
des données de commande destinées au pilotage d'appareils répondant à ce standard.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Le protocole Midi permet de communiquer très facilement avec
16 destinataires différents
(Channel 1-16). Ces 16 canaux véhiculent des informations
indépendantes, ou chaque récepteur interprète les données
du canal qui lui est affecté.
Physiquement, il s'agit d'un connecteur DIN à 5 broches
(IN - OUT - THRU).
Les signaux restent valides pour des courtes distances
(inférieur à 15m); une interface
est nécessaire pour les longueurs plus importantes.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Il est possible de connecter en série de nombreux appareils à l'aide des prises Thru pour
contrôler à l'aide d'un seul emetteur l'ensemble des appareils.
Il était possible d'avoir une prise Midi que l'on branche sur notre carte son avec le port
Joystick, on utilise aujourd'hui l'usb.
Le Midi va aussi nous permettre de communiquer entre deux logiciels sur un même
ordinateur ou eventuellement entre deux ordinateurs. Pour synchroniser image et son
ou parfois pour traiter des informations dans un logiciel externe
(reconnaissance/tracking/analyse sonore)
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
MIDI Data Format
La majorité des communications MIDI consistent en des packages de byte, un de statut
suivit d'une ou deux données. Status bytes commencent par un 1, Data bytes par 0.
Exemple de message : Note Off, Note On, Poly Key Pressure, Controller Change,
Program Change, Channel Pressure, Pitch Bend
Par exemple:
144 60 127 - turn ON note #60 on MIDI channel 1 with a velocity of 127
144 60 0 - turn OFF note #60 on MIDI channel 1
La vélocité correspond à la vitesse mais elle traduira la force du son (le volume). Sur les
vieux synthétiseur au moment de la création de cette norme, les synthétiseur n'ont
pas de capteurs de pression, la vitesse d'attaque permettra de définir la force sur la
touche.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Les informations sont envoyées de manière numérique (c’est-à-dire non analogique), en
série, à une vitesse de 31 250 bauds, soit approximativement 3,8 Ko/s. Chaque
connexion envoie des messages musicaux standard, comme note-on (début de note),
note-off (fin de note), volume, pitch-bend (modulation de la hauteur de la note) et des
signaux de modulation codés avec un identificateur de canal (il peut y en avoir jusqu’à
16).
Les messages de note vont du C-1 (note 0, située 5 octaves en dessous du C4 situé sous
la partition en clé de sol, soit 8,175 Hz) au G9 (note 127, soit 5 octaves au-dessus du
sol moyen soit 12 557 Hz) avec une résolution d’un demi-ton. Le pitch peut être réglé
de ± 1/2 ton avec une précision d’ 1/4 096 de demi-ton au moyen du message pitchbend. On trouve ainsi des convertisseurs MIDI pour la plupart des instruments de
musique (trompettes, guitares, etc.). Cela permettra, par exemple, de jouer du piano
avec une guitare ou encore du synthétiseur avec une trompette.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Contrôleur MIDI
Les contrôleurs MIDI sont des surfaces de contrôles pouvant posséder des touches, des fader, des
pads ou des boutons rotatifs. Ces contrôleurs ne sont pas des périphériques de gestion du son
ou de restitution ; ils ne produisent que des données MIDI. Jean Michel Jarre utilisait une
harpe virtuelle, faite de lasers, comme surface de contrôle. Ces contrôleurs peuvent avoir un
écran LCD rétro-éclairé. Quels que soient les éléments qui composent la surface de contrôle,
tous les boutons, curseurs, faders, touches, pads sont assignables à chaque élément de
l’interface visuelle du logiciel grâce à des setups (fichiers de configuration). En concert pour
l’éclairage, le MIDI laisse place au protocole de communication basé sur câble XLR : le DMX
(voir X10).
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Format de fichier MIDI
Le format de fichier MIDI SMF (standard MIDI file) a été défini en 1988, pour stocker
les commandes MIDI sur disquettes en y ajoutant des informations temporelles.
On peut les créer soit en connectant un instrument MIDI à l’entrée MIDI d’un
ordinateur, soit à l’aide d’un logiciel séquenceur. Le format MIDI est très compact.
Il y a 3 formats différents de fichiers MIDI :
0 : une seule piste contenant les messages des 16 canaux ;
1 : plusieurs pistes jouées simultanément ;
2 : plusieurs pistes jouées séquentiellement (rarement utilisé).
Les fichiers sont le plus souvent de type « 1 », car il est plus pratique de séparer les
pistes, mais certains synthétiseurs ne supportent que le format 0. Des logiciels divers
permettent de convertir un format en un autre.
Actuellement, un fichier midi standard se présente avec l’extension .mid ou .midi.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
The Open Sound Control 1.0 Specification Version 1.0, March 26 2002, Matt Wright
Introduction
Open Sound Control (OSC) est ouvert, indépendant, protocol de communication
dévellopé pour la communication entre ordinateur, synthétiseur, et autres appareils
multimédias.
Il ya de nombreuses implémentations de l'OSC (ex: dans TouchDesigner) pour des
applications musicales temps réel, des outils webs interactifs, dans de nombreux
langages de programmation mais aussi pour gérer des capteurs et de l'hardware.
Il permet de communiquer n'importe quel type de donnée contrairement à la norme
Midi : int, float, string,....
Il utilise les ports réseaux au travers des protocoles udp et tcp.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
la communication série : RS-232
Disponible sur presque tous les PC jusqu'au milieu des années 2000, le port RS-232est
communément appelé le « port série ». Sur les systèmes d'exploitation MS-DOS et
Windows, les ports RS-232 sont désignés par les noms COM1, COM2, etc. Cela leur a
valu le surnom de « ports COM », encore utilisé de nos jours. Cependant, il est de plus
en plus remplacé par le port USB.
On fixe un nombre de bits par seconde lorsque l'on ouvre la communication.
C'est la communication que l'on utilise depuis l'Arduino (pour communiquer avec des
capteurs, moteurs,...). On pourra directement récupérer cette information dans
certains logiciels sinon il faudra générer un signal midi ou osc depuis le langage de
programmation Arduino.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Animer à partir d'une partition Midi (avec le logiciel Houdini)
On peut récupérer la partition d'un morceau en .midi, en la synchronisant avec un
fichier audio on va pouvoir récupérer toutes les informations nécessaires à une
animation sur la musique.
Exemple de données accesible, on va pouvoir identifier :
- le rythme : un évenement marquant le début de chaque mesure
- On pourra en déduire le temps passé et restant au sein de cette même mesure
- les débuts et fin de phrases mélodiques
- la durée des phrases pour anticiper la fin d'une phrase
- les notes de tensions et les notes de résolutions
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
À partir de ces informations, il va alors être possible d'animer nos éléments :
1- “Mapper” une information sonore avec un attribut : de position, de déformation, de
vitesse,...
On utilisera des fonctions de type fit( value, min , max, NewMin, NewMax)
(linear dans after effects)
2- lire une animation à partir d'un évenement -le lookup
3- créer une force à l'aide d'évenements, les systèmes dynamiques (type particules) vont
créer l'animation
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Générer un fichier midi à partir d'un logiciel d'animation
Il va aussi être possible de générer un fichier midi à l'intérieur même d'un logiciel
d'animation 3D comme Houdini.
Cela va par exemple pouvoir permettre :
- de synchroniser des sons avec l'animation :
- un bruit de pas avec un personnage qui marche
- des impactes de balles ou divers bruitages
- de spatialiser le son :
- il va être possible de prendre en compte la position d'un son pour exporter son
volume sur différents “micro” virtuels, cela fonctionne avec la stéréo mais ça sera
encore mieux avec un son 5.1 ou mieux...
En production, ces systèmes sonores sont très peu utilisé car le designer sonore passe
autant de temps à positionner lui même ces bruitages qu'à utiliser un fichier midi.
Cependant ces systèmes peuvent permettre de proposer une bande sonore très riche à
vos films, projets... Car il serait fastidieux de positionner des centaines, milliers de
sons.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Utiliser un capteur Midi dans Touch Designer
De nombreux capteurs vont passer par des protocoles de communication, que ce soit
des capteurs de pressions, capteurs de distance, capteurs de température, qui n'ont
rien à voir avec la musique. Pour interfacer un capteur, on utilisera le plus souvent
par une carte Arduino qui permet en Usb de connecter et controler différents
périphérique en convertissant et controlant des courants électriques.
Le synthétiseur sera alors considéré comme un capteur comme un autre. L'interface
Midi ou Osc va nous permettre de récupérer ces informations.
N'ayant pas de cable Midi sous la main on va simuler le synthétiseur à l'aide d'un
logiciel de musique.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Communiquer entre deux logiciels
De la même manière on va pouvoir communiquer entre deux logiciels à l'aide de ses
protocoles de communication.
On va devoir installer un driver de Midi virtuel qui va permettre d'envoyer des
informations comme si elles venaient d'un instrument externe. Certains logiciels
permettent même d'envoyer ces informations sur le réseaux pour communiquer entre
différents ordinateurs. Certaines installations nécessitent plusieurs machines.
Ici on va pouvoir par exemple controler Touch Designer un logiciel d'image à partir d'un
logiciel Audio où sont par exemple composer nos morceaux.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Petite presentation Arduino
Arduino est un circuit imprimé en matériel libre sur lequel se trouve un microcontrôleur
qui peut être programmé pour analyser et produire des signaux électriques, de manière à
effectuer des tâches très diverses comme la domotique (le contrôle des appareils
domestiques - éclairage, chauffage…), le pilotage d'un robot, etc. C'est une plateforme
basée sur une interface entrée/sortie simple. Il était destiné à l'origine principalement
mais pas exclusivement à la programmation multimédia interactive en vue de spectacle
ou d'animations artistiques. C'est une partie de l'explication de la descendance de son
interface de programmation de Processing.
Arduino peut être utilisé pour construire des objets interactifs indépendants (prototypage
rapide), ou bien peut être connecté à un ordinateur pour communiquer avec ses logiciels
(ex. : Macromedia Flash, Processing, Max/MSP, Usine Hollyhock, Pure Data,
SuperCollider).
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Récupérer des informations d'un capteur Arduino
Depuis un code Arduino il est possible d'envoyer des
informations Midi ou Osc. Mais dans le cadre du
logiciel Touch Designer il est possible de directement
avoir acces aux différents port de communication
COM1/COM2/...
On va alors regarder comment récupérer les
informations d'un capteur quelqueconque, ici une
photorésistance. (en lien avec le cinéma optique)
On envoie un courrant de 5V sur la photorésistance et
l'on peut venir récupérer ce courrant pour mesurer la
tension grace aux entrées ANALOG IN.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Quelques type de capteurs :
http://www.selectronic.fr/
- Micro / Caméra
- interupteur 0 / 1
- capteurs de pression
- capteur tactile : detecte un contact avec une surface
- accéléromètre : mesure l'accélération -> déplacement
- GPS
- température
- ultrasons /infrarouge
- boussole/inclinomètre
- gaz
...
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Presentation de Processing
Equivalent C++ OpenFrameWorks ou Cinder
Processing is a programming language, development environment, and online
community. Since 2001, Processing has promoted software literacy within the visual
arts and visual literacy within technology. Initially created to serve as a software
sketchbook and to teach computer programming fundamentals within a visual
context, Processing evolved into a development tool for professionals. Today, there
are tens of thousands of students, artists, designers, researchers, and hobbyists who
use Processing for learning, prototyping, and production.
» Free to download and open source
» Interactive programs with 2D, 3D or PDF output
» OpenGL integration for accelerated 3D
» For GNU/Linux, Mac OS X, and Windows
» Over 100 libraries extend the core software
» Well documented, with many books available
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Presentation de Processing :
SoundMachines by The Product, a berlin-based studio for spatial and media-related
design
FINE COLLECTION OF CURIOUS SOUND OBJECTS
from Georg Reil
kinograph.cc by Matthew Epler, 2013
mycelium_leedsmind_ben from Ryan Alexander
Strata 1-4 by David Quayola
FerroFluid by flight404
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Faire un petit programme Processing
Fonction setup and Draw
Fonction setup appellé 1 fois pour initialiser
Fonction Draw appellé à chaque image (20 à 100 fois par secondes)
Exemple : dessiner avec la souris
Utiliser le protocole de communication OSC
Regardons à quoi ressemble la communication OSC.
On utilise une librairie,
J'ai choisi d'utiliser le logiciel Processing (logiciel de programmation d'image gratuit)
et toujours TouchDesigner.
Ici je peux envoyé n'importe quel type de message : un nombre, un texte, un réel,... et
j'utilise un port udp.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Travailler avec un fichier audio dans Processing :
Minim librairie :
AudioPlayer: Mono and Stereo playback of WAV, AIFF, AU, SND, and MP3 files.
AudioMetaData: An object filled with metadata about a file, such as ID3 tags.
AudioRecorder: Mono and Stereo audio recording either buffered or direct to disk.
AudioInput: Mono and Stereo input monitoring.
AudioOutput: Mono and Stereo sound synthesis.
FFT: perform a Fourier Transform on audio data to generate a frequency spectrum.
BeatDetect: a class for doing beat detection.
A real-time synthesis framework based around unit generators, which we call UGens.
4- Interagir avec la musique
4.1 Le Midi / OSC , protocole de communication
Court metrage : Folimage
Conférence
TouchDesigner Resonate 2013 – 39'
Klaus Obermaier
Resonate 2013 45'
Golan Levin
Ted 15'
Resonate 2013 – 57'