Académique Documents
Professionnel Documents
Culture Documents
Max/MSP Introducion ::
création audio et visuelle en temps réel
Cours 2 : introduction audio
ENSEIGNANT:
Alexandre Quessy
2008/2009
DESCRIPTION DU COURS
Descriptif :
Une formation de 18 heures en trois cours animée par Alexandre Quessy. Les cours
permettent de s’introduire à l’utilisation de Max/MSP, un logiciel de création audio et
visuelle en temps réel. La formation complète est divisée en trois sessions de 6 heures :
introduction générale, introduction à l'audio (la composante « MSP » du logiciel),
introduction à la vidéo avec Jitter.
Contenu :
Matériel requis :
Aucun matériel n’est requis. Les étudiants sont invités à apporter leur ordinateur avec le
logiciel Max 5 installé (http://www.cycling74.com). Max 5 est compatible avec Mac OS
X et Windows. Il est gratuit pour les 30 jours, et il est possible par la suite de l'acheter.
Des forfaits spéciaux sont disponibles pour les étudiants : il suffit d'envoyer l'image de
notre carte étudiante par courriel à la compagnie pour en bénéficier.
Objectifs :
Durée : 6 heures
SAT[TransForm] transform.sat.qc.ca
2007/2008
3
Théorie
Les bases de Max/MSP : objets et messages
Lorqu'on utilise une patche, on peut cliquer sur les boîtes de message, les boutons et les
chiffres. Quand on dévérouille la patche, il est possible de modifier les connexions entre
les objets et les autres éléments dans la patche. On peut également ajouter d'autres
éléments. C'est ce qu'on peut appeler le mode d'édition.
Les boîtes de message ont comme couleur de fond le gris ou une autre couleur. Les
objets, eux, ont toujours le fond blanc.
Les connexions peuvent communiquer des messages, du signal sonore ou des matrices
Jitter. Les lignes qui communiquent du signal audio sont jaune et noir, et celles qui
communiquent des matrices sont vert et noir. Les autres sont simplement plus minces.
Les entrées des objets sont situées sur le dessus de leur boîte rectangulaire. Leur sorties
sont situées en-dessous. Les messages vont donc de haut en bas. Pour connecter deux
objets ou boîtes de messages, il faut être en mode d'édition et cliquer sur la sortie d'un
objet, puis déplacer la sortie au-dessus de l'entrée d'une autre objet en gardant le bouton
de la sortie enfoncé. Lorsque l'on relâche le bouton de la souris, une nouvelle connexion
est née !
Dans la boîte d'un objet, le premier mot est le nom de l'objet comme tel. Ce mot définit
son comportement. Les mots suivants sont des arguments de création de cet objet et
influencent également, dans une moindre mesure, son comportement. Certains de ces
arguments sont des attributs dont on peut changer la valeur au moyen de messages
spéciaux. On peut savoir comment utiliser un certain objet en consultant sa patche d'aide
au moyen de l'aide contextuelle (un clic droit) et en choisissant d'ouvrir sa patche d'aide.
Les menu « Help » de Max/MSP contient également des tonnes de ressources utiles. Le
bouton « i » en bas de chaque patche permet d'ouvrir l'inspecteur, une fenêtre qui en dit
long sur l'objet qui est sélectionné au moment d'appuuyer sur ce bouton. On peut copier-
coller un ou plusieurs objets d'une patch à l'autre, un peu comme dans un logiciel
d'illustration vectorielle.
La plupart des objets qui gèrent des messages ont une seule entrée qui, lorsqu'elle reçoit
un message, active l'envoi d'un autre message résultant d'un calcul par un de ses sorites.
L'entrée active est celle à l'extrême gauche, et les autres ne sont pas actives. Elles ne font
que changer les valeur stockées à l'interne par l'objet. Tout les objets ne suivent pas ces
critères. À la sortie, les messages sortent habituellement de la sortie la plus à droite en
premier, et ensuite des autres. Si plusieurs objets sont connectés à une même sortie, c'est
celui situé le plus à droite dans la patche qui reçoit le message en premier.
Les messages peuvent être des nombres entiers ou à virgule flottante, des « bang » ou
encore des symboles. (du texte) Il peuvent également être des listes comportant plusieurs
atomes de l'un de ces types. Les objet de base pour gérer des listes de messages sont
[pack] et [unpack]. Les messages comportant les symboles spéciaux « $1 », « $2 », etc.
peuvent servir au même genre d'opération que [pack]. Les objets [select] et [route]
servent à rediriger un message selon sa valeur ou celle de son premier atome. L'objet
SAT[TransForm] transform.sat.qc.ca
2007/2008
4
[trigger] permet de séquencer et des convertir le type d'un message vers ses différentes
sorties. Ses sorties sont activées de droite à gauche, tel que l'ordre standard des messages
dans Max/MSP le stipule.
SAT[TransForm] transform.sat.qc.ca
2007/2008
5
Il s'agit ici d'un séquenceur très simple, mais qui peut être la base d'une patche très
évoluée. Pour enregistrer des séquences d'événements dans le temps et les faire rejouer
par la suite, les objets [seq] et [mtr] peuvent être très utiles. Leur usage est cependant un
peut plus complexe. L'objet [coll], quant à lui, pourrait être utilisé pour stocker n'importe
quelle collection de données, comme une liste de fichiers, ou un liste d'événements dans
le temps.
Le protocole MIDI
Depuis 1982, le protocole MIDI est le standard le plus courant pour la communication
entre les instruments de musique électronique et les ordinateurs. Les messages sont des
chiffres qui correspondent à des événements comme note-on (début de note) et note-off.
(fin de note) Il y a également le message pitch-bend qui permet de changer avec finesse la
hauteur de la note, ainsi que des message de contrôle. Chaque message a un identificateur
de canal, ce qui permet d'utiliser jusqu'à 16 instruments différents à la fois sur un seul
câble. Les notes sont numérotées de 0 à 127 avec une résolution d'un demi-ton. Le do
central correspond au chiffre 60. Les objets [notein], [ctlin] et [bendin] permettent
d'obtenir les messages MIDI d'un instrument grâce à Max/MSP. Les objets [mtof] et
[ftom] sont utiles pour convertir une note MIDI en fréquence, et l'inverse. L'objet [poly]
rend plus facile la gestion de plusieurs notes MIDI dont on reçoit les signaux de début et
de fin de note.
L'échantillonnage
L'échantillonnage consiste à stocker une série d'échantillons sonores dans un tampon en
mémoire vive. L'objet [buffer~], auquel on attribue un nom unique sert à stocker ces
échantillons. Il contient donc un son. On peut y enregistrer un son grâce à l'objet
[record~] en lui fournissant le nom du tampon dans lequel il doit enregistrer les
échantillons. On peut ensuite le faire jouer au moyen des objets [play~] ou [groove~],
plus flexible. Il est possible de sauvegarder le contenu d'un tampon sur le disque dur en
format AIFF, qui n'est pas compressé, contrairement au format MP3, qui lui est
compressé avec perte de qualité. On peut charger un fichier sonore du disque dur en
envoyant au [buffer~] les bons messages.
SAT[TransForm] transform.sat.qc.ca
2007/2008
6
SAT[TransForm] transform.sat.qc.ca
2007/2008
7
puis un chute vers le silence. Cela est possible un utilisant la sortie de [line~] pour
multiplier [*~] le volume sonore d'un son par ce facteur. La série de messages que l'on
donnera à [line~] pourrait être un « 1 » suivi d'un liste de deux chiffres : « 0 1000 ». Cela
donne une attaque très brusque suivie d'une baisse de volume vers le silence qui dure
exactement 1 second. (1000 millisecondes) Un moyen plus avancé de faire de belles
enveloppes est d'utiliser l'object [adsr~] qui signifie « attack, decay, sustain, release ».
La compression dynamique
La compression dynamique permet de contrôler le volume de la sortie sonore. Le volume
sonore d'un enregistrement peut varier grandement dans le temps, et il peut s'avérer
essentiel d'utiliser un compresseur ou un limiteur. Le cas le plus simple est le limiteur, qui
ne fait que s'assurer que le volume sonore ne dépasse pas un certain seuil. À l'interne, le
limiteur mesure le volume sonore entrant, puis lui applique un gain afin de s'assurer qu'il
ne dépasse pas le seuil désiré. Concrètement, si l'amplitude d'un son à la sortie audio
dépasse l'unité, (1.0, soit 0 dB) toute la crête de l'onde sonore qui dépasse sera coupée. Le
son sera distorsionné. Dans le moins pire des cas, quelques « clics » audio vont rendre
l'écoute désagréable. Utiliser un compresseur, ou plus simplement un limiteur comme
[omx.PeakLim~] permet de diminuer ce phénomène. Les tutoriels Max/MSP sur la
compression en disent long sur ce sujet. Dans tous les cas, rien ne remplace un bon
mixage des niveaux de volume. L'objectif est de s'apporcher de 0 dB à la sortie afin de
s'assurer une bonne qualité de conversion numérique-analogique [dac~], mais sans jamais
le dépasser.
variant l'amplitude du son pour chacune des enceintes. Les systèmes les plus avancés
vont également introduire de très courts délais dans le son, ainsi que de la reverbération et
des filtres sur les fréquences.Cela peut très rapidement devenir difficile à maîtriser, mais
peut donner un résultat convainquant. La technologie Ambisonic est à mon avis la plus
simple à utiliser. Des externes pour Max/MSP existent.
Voici un petit résumé de la chaîne des opéations qui peuvent être appliquées sur le son.
L'objet [adc~] sert d'entrée aux sons captés grâce à un microphone. Ensuite, ces sons
peuvent être enregsitrés, séquencés et rejoués grâce à l'échantillonage. On peut également
faire de la synthèse sonore. Les différents canaux audio sont alors mixés grâce à des
objets [+~] et leur volume peut être contrôlé avec l'objet [*~] et la génération
d'enveloppes. Avant la sortie finale dans l'objet [dac~], il peut s'avérer indispensable de
limiter le volume au moyen d'un limiteur, ou mieux, d'un compresseur. Les échantillons à
la sortie finale ne devraient jamais dépasser l'unité, positive ou négative. (0 dB)
SAT[TransForm] transform.sat.qc.ca
2007/2008
TRANSFERT DE CONNAISSANCE ET
FORMATION EN ART TECHNOLOGIQUE