Vous êtes sur la page 1sur 9

TRANSFERT DE CONNAISSANCE ET

FORMATION EN ART TECHNOLOGIQUE

Max/MSP Introducion ::
création audio et visuelle en temps réel
Cours 2 : introduction audio

ENSEIGNANT:
Alexandre Quessy

2008/2009

Société des arts technologiques


1197 boulevard Saint-Laurent
C.P. 1083 Succursale Desjardins
Montréal (Québec) H5B 1C2
2

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 :

 Prendre connaissance des possibilités offertes par le dataflow;


 Comprendre le flot des données entre les objets dans Max/MSP;
 Apprendre à concevoir des programmes interactifs;
 Se familiariser avec les principaux objets de création audio et musicale;
 Se familiariser avec la création vidéo, visuelle et d’images générées;
 Expérimenter la capture vidéo et la catpure sonore en direct;

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.

Cours 2 : Introduction audio

Objectifs :

 Se familiariser avec les objets de l'audio utilisés dans Max/MSP;


 S’introduire aux échantillonneurs, aux oscillateurs, synthétiseurs et séquenceurs;
 Comprendre la communication MIDI;

Prérequis : Max/MSP Introduction

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.

La configuration du chargement des fichiers dans Max/MSP


Les externals sont des objets qui sont ne font pas partie de la distribution de Max/MSP, et
qui peuvent être trouvés sur Internet. Les sous-patches [patcher], ou [p] sont des sous-
fenêtres à l'intérieur d'une patche. Une abstraction est une patche qui est utilisée comme
un objet dans dans d'autres patches. Les abstractions, externals et documents médiatiques
doivent se trouver dans un « path » où Max/MSP cherche afin d'être trouvé et chargé. On
peut ajouter le chemin d'un répertoire dans un « path » de Max/MSP en utilisant le
dialogue « File preferences... » du menu « Options ». Max/MSP cherche également les
fichiers à charger dans le dossier de la patche en cours.

La configuration audio dans Max/MSP


L'item « DSP Status... » du menu « Options » de Max/MSP est l'endroit où se configure
le traitement de signal audio. Le traitement de l'audio peut être activé ou non, et on peut y
choisir le pilote, ainsi que l'interface audio à utiliser pour les entrées et les sorties. Le taux
d'échantillonnage est habituellement de 44100 Hz et devrait rester bas si l'on fait des
calculs audio très complexes ou l'on dispose d'un ordinateur qui ne soit pas très puissant.
Il est une bonne pratique que d'utiliser un ordinateur différent pour le traitement du son et
celui de la vidéo si l'on fait les deux dans le cadre d'un même projet.
L'option « I/O Vector Size » correspond au nombre d'échantillons qui sont transférés à la
fois en entrée et en sortie à l'interface audio. Diminuer ce nombre pourrait donner une
latence plus courte, et donc plus de rapidité entre l'entrée d'un son par le micro et la sortie
du son traité dans les enceintes audio. Cependant, si l'ordinateur utilisé n'est pas assez
rapide pour traiter ces échantillons, ou si l'interface audio est d'une qualité discutable, il
se peut que des « clics » soient entendus si la taille du tampon est trop petite. Dans ce cas,
il faut augmenter ce nombre.

Les séquenceurs : une série d'événements dans le temps


En musique, le temps est habituellement divisé en mesures, elle-même divisées en temps.
Le plus souvent, on trouvera des mesures comportant 4 temps. En musique électronique,
les séquenceurs sont des appareils qui servent à disposer le déclanchement de sons dans
le temps. Ils ont la plupart du temps 16 « steps ». Seize cases où l'on peut y placer un son.
Construire un séquenceur est très facile avec Max/MSP. Il suffit de créer un objet [metro]
avec comme argument une durée en millisecondes. On peut alors connecter celui-ci dans
un objet [counter] avec un argument comme « 7 », pour qu'il compte 8 temps. Ce
compteur comptera de 0 à 7 sans arrêt une fois que le métronome sera activé en lui
envoyant le chiffre « 1 ». Si on branche la sortie de ce compteur dans un objet « select »
avec les argument « 0 1 2 3 4 5 6 7 », chacune des sorties de ce dernier objet, sauf la
dernière, donneront un « bang » quant le chiffre sera à l'index correspondant. On peut
alors activer toutes sortes d'événements selon notre désir.

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.

Les bases de la théorie musicale


Dans la théorie musicale occidentale classique, les notes sont séparées en octave. Une
octave comporte 12 demi-tons. Dans le système tempéré, comme c'est le cas en MIDI, les
12 demi-tons sont égaux. Le système tonal sépare l'octave en 7 notes de musique qui
constituent la gamme. Une gamme est soit majeure, soit mineure, est est identifiée par sa
tonique – par exemple, la gamme de do majeure est constituée des notes blanches sur un
clavier de piano. Il y a également d'autres systèmes comme les modes que je vous laisse
le soin d'explorer. Une gamme pentatonique comporte seulement cinq sons et peut être
très intéressante à explorer pour les débutants. Les accords consistent en plusieurs notes
entendues simultanément. Un accord parfait majeur comporte trois sons. Par exemple, un
accord de do majeur comporte les notes do, mi et sol.

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

Effets sonores temporel


L'objet [delay~] sert à appliquer un délai sur un signal audio. Avec [tapin~] et [tapout~]
connectés d'une certaine manière, on peut réaliser un écho. Pour de la reverbération,
l'external [freeverb~] est à considérer. Les VST sont des greffons (« plugins ») audio qui
peuvent être utilisés avec Max/MSP grâce à l'objet [vst~].

Synthèse audio : le domaine spectral


Le domaine des fréquences audibles est traditionnellement séparé en ses composantes
graves, (autour de 80 Hz) moyennes et aigües. (autour de 12 kHz) On peut sculpter le
timbre d'un son en diminuant ou en augmentant l'amplitude d'une de ces régions. Un filtre
passe-bas, comme [lores~] ou [onepole~], laisse passer uniquement les fréquences plus
graves qu'un certain seuil. Un filtre passe-haut permet l'inverse. Des filtres plus
complexes, comme [reson~], [comb~] ou [biquad~] permettent de choisir une ou
plusieurs bandes de fréquences à laisser passer.
La forme d'une onde sonore détermine son timbre. Les sons musicaux sont ceux qui
peuvent être identifiés par une note de musique. Il ont comme caractéristique d'avoir une
forme d'onde périodique, c'est à dire que le contour de leur onde se répète à intervalle
régulier dans le temps. Par exemple, un son musical de 60 Hz aura une période de 1/60 de
seconde. La forme d'onde la plus simple est l'onde sinusoïdale. Tout son musical
complexe peut être décomposé en une série d'ondes sinusoïdales simples. Ces ondes
partielles se nomment les harmoniques d'un son fondamental. On trouve habituellement
une harmonique d'un son musical à chaque multiple entier de sa fondamental. Par
exemple, un son musical de 60 Hz aura une harmonique à 120 Hz, une à 180 Hz, puis à
240 Hz, et ainsi de suite. L'amplitude relative de ces partielles déterminent le timbre du
son.
Dans Max/MSP, on obtient une onde sinosoïdale au moyen de l'objet [cycle~] avec
comme argument une fréquence. On peut alors additionner plusieurs partielles grâce à
l'objet [+~], et ainsi obtenir une forme d'onde plus complexe, et donc plus riche en
harmoniques. C'est ce que l'on nomme la synthèse additive. On peut obtenir différentes
formes d'ondes complexes directement au moyen d'objets comme [phasor~] ou [sah~].
On peut faire l'analyse des partielles d'un son ou même de la synthèse au moyen de la
transformée de Fourier. Les objets [fft~] et [ifft~] sont les amis des mathématiciens et des
musiciens. Il y a aussi de nombreux objets qui permettent d'obtenir une représentation
graphique du spectres d'un son.
Les bruits sont des sons non-musicaux. Leur partielles ne sont pas disposées selon la série
harmonique. Le bruit blanc est un bruit où toutes les fréquences du spectre audible sont
représentées avec une amplitude égale. L'objet [noise~] nous donne un bruit blanc.

La synthèse d'enveloppes audio


Un son est déterminé par son spectre et sa fréquence, bien-sûr, mais aussi par son
amplitude. L'enveloppe d'un son est ce qui lui donne un début, un milieu et une fin. C'est
ce qui l'inscrit dans le temps selon nos perceptions. Un des moyens les plus simples de
donner une enveloppe à un son est d'utiliser l'objet [line~] pour faire une attaque brusque,

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 ».

Contrôle de l'amplitude sonore et décibels


L'unité pour mesurer le volume sonore, ou un changement de gain dans le volume sonore
est le décibel. (dB) Un gain de 0 dB sur un signal ne change en rien son amplitude. Dans
Max/MSP, quand on multiplie un signal audio par 2 avec l'objet [*~], c'est un gain de +3
dB que l'on y applique. Cette muliplication doit être en unité RMS, c'est à dire sur une
échelle linéaire, alors que les décibels sont sur une échelle logarithmique. Utiliser les
décibels permet un contrôle plus précis du volume relatif de chaque source lorsque l'on
mélange plusieurs sources audio. Si l'on applique un gain de +3 dB à un signal, celui-ci
aura un amplitude deux fois plus grande une fois ce gain appliqué. Si l'on diminue son
gain de -3 dB, son amplitude sera deux fois moins grande. Un gain de +6 dB rendera un
son quatre fois plus fort. Pourquoi ? Deux multiplié par deux font quatre. Les objets
[dbtoa] et [atodb] permettent de convertir entre les unités RMS et des dB. Plusieurs objets
sont contrôlés directement en dB.

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.

La spatialisation sonore : un aperçu


Le plus simple cas de spatialisation est celui du son stéréo. Le son stéréo étant sur deux
pistes, on peut contrôler la panoramisation du son. (panning) Il s'agit d'une spatisalition
sur une dimension. Si l'on dispose de trois sorties audio ou plus, on peut donner
l'impression que le son est spatialisé sur deux dimensions, c'est à dire que les sources
sonores virtuelles semblent pouvoir provenir d'une direction variable sur le plan
horizontal, par exemple. Avec quatres enceintes et plus, on peut obtenir le même résultat,
mais sur le plan vertical, en plus. Cet effet est obtenu grâce à des calculs trigonométriques
SAT[TransForm] transform.sat.qc.ca
2007/2008
8

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.

En résumé : la chaîne de traitement audio

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

RÉFÉRENCES ET LIENS WEB:

Les tutoriels de la section MSP de l'aide de Max/MSP sont la source préférée


d'informations quant à l'utilisation des objets audio dans Max/MSP. Le site web de la
compagnie Cycling '74 est également riche en informations récentes.
Ambisonic Externals for Max/MSP
Pour la spatialisation sonore sans soucis.
http://www.grahamwakefield.net/soft/ambi~/index.htm

The Max Objects Database


Des patches et des externals
http://www.maxobjects.com/

La page de Max/MSP 5 site de Cycling 74


Là où tout commence...
http://cycling74.com/products/max5

Les forums de la compagnie


Parmi ceux-ci, celui de MaxMSP et celui de Jitter nous intéressent.
http://cycling74.com/forums/index.php

La documentation en ligne de Max 5


Les tutoriels vidéo sont excellents. Les tables des matières des « MSP Tutorials » et des
« Jitter Tutorials » se trouvent à la droite de l'écran.
http://www.cycling74.com/docs/max5/vignettes/intro/docintro.html

Un logiciel libre semblable : Pure Data


Il est plus difficile d'appoche, mais totalement ouvert et gratuit. La version est télécharger
est « pd-extended ».
http://puredata.info/