Vous êtes sur la page 1sur 30

Le Guide Ultime et Zen de Max for Live

Maîtriser et utiliser Max for Live pour Ableton Live

Julien Bayle
This book is for sale at http://leanpub.com/le-guide-ultime-et-zen-de-max-for-live

This version was published on 2013-12-05

ISBN 978-2-9546909-0-2

This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing
process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and
many iterations to get reader feedback, pivot until you have the right book and build traction once
you do.

©2013 Julien Bayle


Tweet This Book !
Please help Julien Bayle by spreading the word about this book on Twitter !
The suggested tweet for this book is :
Je viens juste d’acheter Le Guide Ultime et Zen de Max for Live par @julienbayle #ableton
#maxforlive #max
The suggested hashtag for this book is #m4lbook.
Find out what other people are saying about the book by clicking on this link to search for this
hashtag on Twitter :
https ://twitter.com/search ?q=#m4lbook
Also By Julien Bayle
Max for Live Ultimate Zen Guide
Table des matières

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i

À propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Ce guide n’est pas : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Ce guide est : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Vous voulez vous formez sur Ableton Live avec mon DVD . . . . . . . . . . . . . . . . . . v
Vous avez trouvé une erreur dans ce guide . . . . . . . . . . . . . . . . . . . . . . . . . . v
Vous voulez des cours Ableton Live, Max6 ou autres . . . . . . . . . . . . . . . . . . . . . v

1 Bases de Max for Live . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1


1.1 Qu’est ce que Max for Live ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Qu’est ce qu’un environnement visuel et interactif de programmation ? . . . . . . . . 1
Max6 et Max for Live . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Différences Max et Max for Live . . . . . . . . . . . . . . . . . . . . . . . . . 4
L’environnement Max et le runtime Max . . . . . . . . . . . . . . . . . 4
Ableton Live & Max for Live . . . . . . . . . . . . . . . . . . . . . . . . 5
Licences et utilisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Je possède simplement Max for Live . . . . . . . . . . . . . . . . . . . . 7
Je possède uniquement Max . . . . . . . . . . . . . . . . . . . . . . . . 7
Je possède Max et Max for Live . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Ableton Live en bref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Projets & livesets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Pistes / Tracks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Périphériques / Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
MIDI Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
MIDI Remote Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Que sont ces scripts ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Où trouver les MIDI Remote Scripts sur son ordinateur ? . . . . . . . . . . . . 15
Éditer les scripts et hacking . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
.py et .pyc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
TABLE DES MATIÈRES

remonter au code source . . . . . . . . . . . . . . . . . . . . . . . . . . 17


1.3 Les objets spécifiques Max for Live . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Introduction
Je suis Julien Bayle¹ et utilise Ableton Live depuis le début. Je suis certifié² depuis 2010 seulement
et enseigne non seulement Ableton Live Suite³ mais aussi Max6 et Max for Live à des particuliers
passionnés mais aussi des professionnels. J’ai d’ailleurs publié cette année même un DVD de 8h30
de formation sur Ableton Live Suite 9 et Push⁴

Push & Live dans l’herbe

Max for Live a été publié en 2011, et j’ai depuis cette année là beaucoup de demandes quant à
l’écriture d’un guide. Voilà, ça commence maintenant et j’espère qu’après sa lecture, vous serez
complètement conquis et passionné par le fait de construire vos propres effets audio et MIDI, vos
interfaces adaptés à vos besoin et aussi vos générateurs de sons, instruments et même générateurs
de visuels !
Dans une première partie, je vais vous expliquer les bases de Max for Live, ce que c’est vraiment,
quelles sont les différences avec Max6 (anciennement nommé Max/MSP) et aussi comment il
s’articule avec Ableton Live.
Dans une seconde partie, nous parlerons de ce que certains d’entre vous connaissent probablement :
le Live Object Model ou encore LOM. C’est la structure interne de Live que l’on peut atteindre et
contrôler de deux manières, avec Max for Live mais aussi avec les (fameux) MIDI Remote Scripts.
Nous parlerons ainsi de l’API de Live, encore appelé Interface de Programmation de Live.
¹Mon site web : http ://julienbayle.net
²Page officielle sur le site ableton.com : https ://www.ableton.com/en/education/certified-training/france/julien-bayle-marseille
³Mes formations Ableton Live : http ://julienbayle.net/apprendre-ableton-live
⁴DVD de 8h30 sur Ableton Live 9 et Push : http ://www.elephorm.com/audio-mao/formation-ableton-live/ableton-live-9.html#a_aid=julienbayle
Introduction ii

Dans une troisième partie, je vous parlerai de JavaScript qui permet, au sein de Max for Live
d’atteindre directement l’API de Live et d’avoir du feedback et du contrôle de manière assez simple.
Dans une quatrième partie, je vous montrerai comment on peut facilement créer ses propres
périphériques dans Live tels des instruments MIDI et générateurs de son, mais aussi effets MIDI,
effets audio ou autres interfaces qui observent par exemple l’état de tous les clips du liveset.
Il est possible de me suivre sur twitter⁵ & facebook⁶
Prêt ? On y va !
⁵https://twitter.com/julienbayle
⁶https://www.facebook.com/julien.bayle
À propos
Ce guide est publié et disponible par le biais de la plateforme leanpub.com mais l’ensemble des droits
est réservé à Julien Bayle.
Cette publication est © Julien Bayle 2013
Toute reproduction intégrale ou partielle n’est pas autorisée, pour l’instant.

Ce guide est publié sur leanpub.com⁷ et sera donc révisé et mis-à-jour en continu ou
presque et vous serez donc informés automatiquement des mises à jour au fur et à
mesure.

Restez connecté !
⁷https://leanpub.com/le-guide-ultime-et-zen-de-max-for-live
FAQ
Version
La version de ce guide est 1.02

Changelog
1.02

• ajout du sous-chapitre Modifications déclenchées sur Observations


• ajout du sous-chapitre Persistence des ID
• quelques corrections mineures d’orthographes

Ce guide n’est pas :


• un cours sur l’environnement Max6
• un cours sur Ableton Live
• un cours tout court (rien ne remplace un cours véritable par skype ou même en présence,
demandez à mes stagiaires)

Ce guide est :
• un fil directeur dans le monde de Max for Live
• LE guide qu’il vous faut pour pouvoir comprendre ce qu’est Max for Live et comment il
s’intègre à Ableton Live
• LE tutoriel qui vous permettra de créer vos propres périphériques Max for Live parfaitement
intégrés à vos livesets (sauvegardes de presets, automation de paramètres, Live API etc)
• LE SEUL tutoriel publié et en français fait par un formateur certifié par Ableton
FAQ v

Vous voulez vous formez sur Ableton Live avec mon


DVD
J’ai enregistré pour ELEPHORM 8h30 de formations sur Ableton Live 9 et Push⁸.
Retrouvez là ici⁹

¹⁰

Vous avez trouvé une erreur dans ce guide


Merci de m’écrire directement : par le biais de cette page : http ://julienbayle.net/contact¹¹

Vous voulez des cours Ableton Live, Max6 ou autres


Merci de m’écrire par le biais de cette page : http ://julienbayle.net/contact¹²

⁸http://www.elephorm.com/audio-mao/formation-ableton-live/ableton-live-9.html#a_aid=julienbayle
⁹http://www.elephorm.com/audio-mao/formation-ableton-live/ableton-live-9.html#a_aid=julienbayle
¹⁰http://www.elephorm.com/audio-mao/formation-ableton-live/ableton-live-9.html#a_aid=julienbayle
¹¹http://julienbayle.net/contact
¹²http://julienbayle.net/contact
1 Bases de Max for Live
Max for Live n’est pas juste un concept ou une formule magique. De nombreux tutoriels vidéos
n’expliquent pas grand chose à son propos, je vais vous dire précisément ce qu’il en est.

1.1 Qu’est ce que Max for Live ?


Ma propre définition de Max for Live est :

Max for Live est un environnement visuel et interactif de programmation que l’on
utilise au sein même d’Ableton Live pour créer des périphériques.

Nous parlons et révisons un peu Ableton Live dans la suite du texte mais d’abord, définissons
précisément ce qu’est un environnement visuel et interactif de programmation.

Qu’est ce qu’un environnement visuel et interactif de


programmation ?
Il existe beaucoup de langage de programmation. Chacun d’eux a des caractéristiques qui constituent
leurs règles d’utilisation, en quelque sorte.
Ici, par exemple, un programme que j’ai codé en C++ pour une installation générative¹ :
¹L’installation générative The Village ou Where2Now :http ://julienbayle.net/works/collaboration/the-village
Bases de Max for Live 2

Le langage de programmation C++ est un langage textuel

Ce type de langage de programmation nécessite un workflow de programmation particulier :

• on écrit le code
• on inclut des librairies de programmation
• on compile
• on teste

Ces différentes opérations sont souvent cycliques : on modifie, on compile, on remodifie etc. Il y a ce
que j’appelle une rupture de conception avec cette étape de compilation obligatoire qui nécessite
de ne pas coder mais de compiler et tester avant de recommencer à coder.
Un environnement interactif de programmation est intéressant car il n’y a pas de rupture de
conception. Dès que l’on modifie notre programme, on voit directement l’action de la modification.
Un environnement visuel permet aussi d’apprendre à programmer plus simplement et de manière, a
priori, moins abstraite. En effet, on ne crée pas de structure complexe avec du texte telle les fonctions
que l’on peut appeler uniquement depuis telle ou telle partie du reste du code, mais on déplace des
objets que l’on connecte entre eux.
Voici un exemple de mon propos, en image :
Bases de Max for Live 3

Un script textuel JavaScript et son équivalent visuel

À gauche, du code JavaScript. On déclare une fonction qui s’appelle add_five et qui prend un
argument. Cette fonction est ensuite appelée avec 2 en argument et son résultat est stocké dans
la variable result qui est ensuite affichée avec une fonction display() qui n’est pas visible ici mais
qui est simplement là pour montrer qu’il n suffit pas de stocker un résultat dans une variable pour
l’afficher. Il faut explicitement l’afficher.
À droite, la même chose avec Max6. Deux objects d’interface utilisateur (UI pour user interface) qui
permette à la fois d’afficher mais aussi de modifier des valeurs. L’objet [+ 5] est l’équivalent de la
fonction add_five et ajoute 5 à toute valeur qui lui est envoyé par en haut. Ensuite, par en bas, il
transmet le résultat.

Attention
L’un n’est pas meilleur que l’autre.
L’un n’est pas plus simplifié et réduit que l’autre.
La programmation interactive visuelle est simplement beaucoup plus simple à apprendre et
à visualiser (c’est le cas de le dire) que l’autre qui restera abstraite pour ne pas dire absconse
à la plupart des utilisateurs non-programmeurs à la base.

Max6 et Max for Live


Certains d’entre vous ont entendu parlé de Max, encore nommé Max/MSP.
Max6 est la dernière version de ce que les anciens appellent Max/MSP.
Bases de Max for Live 4

J’utiliserai donc aussi bien Max que Max6 pour désigner l’environnement Max6. Mais j’utiliserai
Max for Live aussi car ce n’est pas la même chose que Max !

Différences Max et Max for Live

Je vais vous expliquer pourquoi Max n’est pas équivalent à Max for Live.

L’environnement Max et le runtime Max Max est un environnement que l’on peut acquérir en
l’achetant sur http ://cycling74.com/shop²
Max un environnement autonome qui ne nécessite pas de posséder une licence Ableton Live et
quand bien même vous en auriez une, il ne serait pas nécessaire de lancer Live pour pouvoir utiliser
Max.
Lorsque l’on programme avec Max, on crée des patches (ensemble d’objets connectés) que l’on édite
et modifie. Si on veut qu’un autre utilisateur se serve de notre patch alors qu’il n’a pas de licence
Max, il est possible de crée ce que l’on appelle une application Max autonome qui consiste en notre
patch auquel s’ajoute ce que l’on appelle un runtime.
Il est possible de télécharger le runtime gratuitement ici : http ://cycling74.com/downloads/runtime³
dans le cas où vous souhaitez exécuter un collective. Le collective est en quelque sorte une
compilation de notre patch et des objets dont il a besoin pour fonctionner (ses dépendances, dit-
on)
Regardez bien le schéma suivant, il explique tout cela :
²http://cycling74.com/shop
³http://cycling74.com/downloads/runtime
Bases de Max for Live 5

Max, Max Runtime, Patch, Collective and Application

Ableton Live & Max for Live Si vous avez compris le schéma précédent, vous n’aurez pas de mal
à comprendre ce qui suit.
Max for Live ne propose pas de runtime. Plus exactement, le seul logiciel capable de lire, modifier
et exécuter les patches Max for Live est Ableton Live.
On parle en réalité de device Max for Live (ou encore périphériques. Ces devices sont des fichiers
qui contiennent les patches nécessaires à leur bon fonctionnement dans Live mais aussi l’ensemble
des dépendances nécessaires notamment si ces devices là ont été gelés, nous le verrons un petit peu
plus loin.
Pour l’heure, regardez bien le schéma suivant pour bien vous figurez ce que sont :

• liveset (fichier .als stockant toutes les données de votre liveset, paramètre des clips, des devices
et plus)
• projet de liveset (répertoire contenant le ou les livesets et bien d’autres choses)
• device (fichier .amxd contenant l’ensemble des éléments nécessaire à l’exécution du patch)
Bases de Max for Live 6

• device en mode édition (on dirait bien Max, tout simplement)

Max, Max Runtime, Patch, Collective and Application

On a coutume de dire que le runtime de Max for Live est Ableton Live et que l’éditeur de
Max for Live c’est Max, mais lancé par Live.

Une des conséquences directe est que dès l’instant où l’on peut utiliser un device Max for Live, on
peut aussi l’éditer !
Clickez vous aussi sur le bouton edit d’un device Max for Live et vous verrez une fenêtre Max
s’ouvrir avec le contenu du device qui sera en mode édition.
Bases de Max for Live 7

Le bouton EDIT des devices Max for Live

C’est une bonne approche pour comprendre les choses et notamment les modes de licence.

Licences et utilisations

Pour utiliser Max for Live, il est nécessaire (mais non suffisant) de posséder une licence Ableton
Live.

Je possède simplement Max for Live Pour utiliser les devices max for live, il est nécessaire de
posséder une licence Max for Live
Dans ce cas, on ne peut se servir de Max en dehors d’Ableton Live.

Je possède uniquement Max On ne peut pas utiliser les devices Max for Live avec Ableton Live.
Évidemment, on peut se servir de Max indépendamment de Live ou même en relation avec Live par
le biais de MIDI notamment, ou encore faire transiter l’audio de l’un vers l’autre avec des routeurs
audio comme Soundflower⁴ sur OSX ou Jack⁵ sur OSX ou window.

Je possède Max et Max for Live On peut utiliser les devices Max for Live avec Live.
On peut aussi utiliser des patches indépendamment de Live, et faire communiquer ceux-ci (ou pas)
avec les devices Max for Live par OSC, par exemple
⁴Soundflower route l’audio entre applications : http ://cycling74.com/products/soundflower
⁵JACK permet aussi le routage audio inter-applications : http ://jackaudio.org
Bases de Max for Live 8

1.2 Ableton Live en bref


Ableton Live est une station de travail audio et MIDI. On appelle cela un DAW (Digital Audio
Workstation) aussi.
Décrivons (brièvement) les éléments constitutifs de Live.

Projets & livesets


Un projet est un répertoire dans lequel on peut sauvegarder ses livesets.
Il peut contenir plusieurs livesets.
On y trouve aussi les fichiers samples importés ou travaillés/crées dans le liveset lui-même ainsi que
d’autres fichiers tels les presets de périphériques si on les a sauvegardés à avec le liveset ou si on a
utilisé la fonction Réunir et Sauvegarder qui a pour but de ne plus avoir de dépendances et de copier
physiquement tout ce dont a besoin le liveset dans le répertoire de ce liveset.
Ouf.
Je vous engage à jouer avec ces notions et à consulter le manuel de Live pour plus de détails.

Pistes / Tracks
Live organise ses livesets en série de pistes, que l’on soit dans le mode session ou le mode
arrangement.
Une piste peut être une piste audio ou une piste MIDI.
Chaque piste contient un ensemble de clips, unités de base de séquences MIDI ou audio dans Live.
Un seul clip peut être lu à la fois dans un piste.
Chaque piste contient aussi un mixer, une section de départ d’effets (SEND) ainsi qu’une chaîne de
périphériques.
Une piste audio peut donc contenir :

• des clips audio dans sa section emplacements de clip


• des effets audio dans sa chaîne de périphériques

Une piste MIDI peut ainsi contenir :

• des clips MIDI dans sa section emplacements de clip


• des effets MIDI
• un instrument MIDI
• des effets audio
Bases de Max for Live 9

Périphériques / Devices
Nous parlons ensemble des périphériques depuis le début de ce guide.
Les périphériques sont ce que l’on glisse dans les chaîne de pistes.
On peut voir dans la partie browser de Live (vue à gauche) un certains nombre de catégories. La
version 9 peut paraître confuse.

Le browser de Live

On trouve les périphériques dans les catégories :

• Instruments
• Audio Effects
• MIDI Effects
• Max for Live
• Plug-ins

Les noms des catégories parlent par eux-mêmes.


On trouve dans la catégorie instruments : les instruments natifs de Live tels Operator, Analog,
Sampler. Il reçoivent des messages MIDI (depuis l’extérieur de Live que ce soit une autre application
ou bien physiquement de l’extérieur de l’ordinateur, ou bien directement des clips MIDI de la piste
concernée) et savent produire selon ces messages là de l’audio
Bases de Max for Live 10

On trouve dans la catégorie Audio Effects : les effet audio natifs de Live tels les delay, les
compresseurs et autre beat-repeat.
La catégorie MIDI Effect fait référence aux effets MIDI natifs de Live tel Pitch, Chord etc.
Les plug-ins correspondent aux plug-ins VST (osx & windows) et AU (osx). Ce sont des add-on, des
périphériques utilisables dans Live mais qui ne sont pas livrés avec Live ou même conçu par Ableton.
Enfin, la catégorie Max for Live.
On constate qu’il y a 3 types de périphériques Max for Live :

• Max MIDI Effect


• Max Instrument
• Max Audio Effect

On retrouve la classification Instruments, effets MIDI et audio.

Les trois types de périphériques Max for Live

Pourquoi ?
Car un périphérique doit se trouver dans une chaîne de périphériques pour être utilisé. Et, souvenons-
nous, une chaîne de périphériques appartient à une piste et une piste possède une nature : MIDI ou
audio.
Bases de Max for Live 11

Quand j’explique à mes stagiaires ou élèves les différents types en faisant ce schéma, cela fonctionne
assez bien. Regardez :

MIDI & Audio dans Live

Les LED Bars représentent les signaux MIDI et les Vu-mètre les signaux audio.
Si on part de la gauche, point d’entrée du signal dans la chaîne de périphériques (signal pouvant
venir, je répète, de l’extérieur de Live OU des clips de la piste), on voit un LED Bar. Ensuite on voit
un périphérique et un autre LED Bar.
Comme ce périphérique possède un LED Bar avant et après, cela signifie que nous somme en
présence d’un effet MIDI. Il prend un signal MIDI en entrée et produit un signal MIDI : définition
élémentaire de l’effet MIDI.
Avec le même raisonnement, on voit que le périphérique suivant possède un LED Bar en entrée et
un Vu-mètre en sortie. Ne serait-ce donc pas un Instrument ? Évidemment : il reçoit un signal MIDI
et produit un signal audio.
Enfin, le dernier périphérique possède des Vu-mètre en entrée et en sortie : c’est un effet audio !
De la même manière, nous verrons dans la suite que les périphérique Max for Live, qui ne sont rien
d’autres que des périphériques Live un peu particuliers et éditables, doivent eux aussi posséder un
type. Car sans cela, comment distinguer leur nature.

Nous verrons aussi que dans le cas d’un périphérique Max for Live qui ne doit ni traiter
du MIDI ni de l’audio mais par exemple servir d’interface entre une Wiimote et Live, nous
pouvons aussi bien utiliser un périphérique Max for Live de type MIDI effect, audio effect
ou instrument. Cela n’aura pas d’importance si ce n’est que nous ne pourrons l’inclure que
dans un type de piste particulier selon sa nature.

Poursuivons les rappels sur Live.


Bases de Max for Live 12

MIDI Mapping
Le MIDI Mapping permet d’associer des messages MIDI de type Note ou Control Change à des
fonctions de Live au travers de son interface graphique (= Graphical User Interface = GUI).

MIDI Mapping Edit Mode activé

On l’active en clickant sur le bouton MIDI en haut à droite (ou en tapant CMD + M sur OSX et
CRTL + M sur Windows)
Une fois activé, on sélectionne à la souris un paramètre, un éléments (clipslot, sélecteur de scène..)
et on agit sur le contrôleur MIDI. Ce mode correspond au mode Learning que l’on retrouve sur
d’autres logiciels.

ATTENTION
Le MIDI mapping d’un liveset est sauvegardé avec le liveset et nulle part ailleurs !

Avant de passer à la suite, je pose une question : comment faire en sorte, par exemple, que tel boutons
ou encodeurs rotatifs de mon contrôleur MIDI puisse toujours être mappé à tel paramètre de Live ?
Nous qui jouons souvent en live avons besoin de pouvoir retrouver nos réglages lorsque l’on
travaille d’un live à un autre, à un morceau même, pourquoi pas, sans devoir toujours réaffecter
nos paramètres à nos contrôleurs.
Évidemment, on peut garder le même liveset qui comporte les affectations MIDI déjà faites et le
copier-coller, le réutiliser à chaque fois… oui. La plupart des gens font ça, mais on peut faire mieux
avec les MIDI Remote Scripts.
Au fait, patience, Max for Live arrive… Mais il faut que vous ayez tout cela bien à l’esprit avant de
plonger !
Bases de Max for Live 13

MIDI Remote Scripts


Certains d’entre vous doivent déjà connaître ces MIDI Remote Scripts.
On parle de script pour des langages de programmation pour lesquels il n’y a pas à proprement parlé
d’étape de compilation.
Lorsque l’on tape un script en JavaScript par exemple, on ne doit pas le compiler puis l’exécuter, on
a directement une exécution par ce que l’on appelle un interpréteur. JavaScript est souvent utilisé
dans les pages web, notamment avec HTML5 et dans ce cas, c’est votre navigateur web qui contient
l’interpréteur.

Que sont ces scripts ?

Les MIDI Remote Scripts sont des scripts en langage Python qui sont interprétés par Ableton Live
directement et qui permettent de :

• contrôler Live (agir sur Live)


• récupérer du feedback de Live (connaître les paramètre de Live)

En allant dans les préférences de Live dans l’onglet MIDI Sync, on peut voir dans la partie haute les
paramètres qui concernent les surfaces de contrôle (parfois référencées dans Live comme Remote
Surfaces)
Bases de Max for Live 14

Activer/Désactiver les MIDI Remote Scripts

Chaque élément de la liste correspond à un MIDI Remote Script présent dans les répertoires
d’installation de Live.
Chacun porte le nom d’un contrôleur. On y voit APC20, APC40 etc. On y voit aussi LividCode qui est
un script sur lequel je suis en train de travailler pour Livid Instruments (chutt, c’est encore secret !)
En effet, ce sont des script qui ont été conçus, la plupart du temps, par les constructeurs eux-mêmes
et dans lesquels ils ont codé des fonctions spécifiques et dédiées à leur contrôleur.
Par exemple, l’APC 40 possède un script qui permet de contrôler la matrice de clip elle même et de
pouvoir aussi récupérer les états des clips.
Ces scripts servent d’interface entre les contrôleurs MIDI et Live lui même.
Voici un schéma minimaliste qui résume cela.
Bases de Max for Live 15

Livid Code contrôlant Live par le biais des scripts ou du MIDI mapping classique

Les flèches noires font le lien entre les concepts de MIDI Mapping et MIDI Remote Scripts ET la
fenêtre de préférences de Live.
En bleu, on voit les control/feedback eux mêmes.
Dans le cas des MIDI Remote Scripts, on voit bien que la configuration est liée à Live lui même
alors que dans le cas du MIDI Mapping, on se base sur un liveset (avec évidemment un paramétrage
général des interfaces MIDI dans la fenêtre préférences MAIS dans laquelle le mapping n’intervient
pas comme c’est le cas des scripts qui contiennent ce mapping)

Où trouver les MIDI Remote Scripts sur son ordinateur ?

Les MIDI Remote Scripts se trouvent dans l’arborescence de Live sur les systèmes Windows dans :

• C :ProgramDataAbletonLive xResourcesMIDI Remote Scripts\ sur Windows 7 & Vista


Bases de Max for Live 16

• C :Documents and SettingsAll UsersApplication DataAbletonLive xResourcesMIDI Remote


Scripts\ sur Windows XP.

Sur OSX, il faut repérer le fichier Live.app dans Macintosh HD/Applications/Live x.x.x./Live.app
et faire un click-droit dessus et choisir Show Package Contents. Ensuite si on regarde dans
Contents/App-Resources/MIDI Remote Scripts, on voit cela :

Les MIDI Remote Scripts sur un système OSX

Cela ne ressemblerait-il pas étrangement à la liste de surfaces de contrôle que l’on avait vu dans la
fenêtre préférence ? Oui en effet, cela est directement lié.

Éditer les scripts et hacking

Dans la capture d’écran précédente, on peut voir dans le répertoire ouvert LividCode des fichiers
avec les extensions .py et .pyc

.py et .pyc Les .py sont associés aux codes sources en python. Cela signifie que l’on peut lire et
même modifier le code python.
En réalité, si vous regardez ce qu’il y a dans ces répertoires, vous n’aller voir que des .pyc qui ne sont
pas éditabes. Enfin, si vous essayez, vous n’allez voir que des signes incompréhensibles. En effet, les
.pyc correspondent à ce que l’on appelle un bytecode.
Le bytecode peut être assimilé à un binaire, pour l’heure. Au cours de l’interprétation des scripts par
Live lui même qui, je le rappelle, joue le rôle d’interpréteur, Live regarde si il y a un .py ou un .pyc .
Si il n’y a qu’un .py, il fait une pré-interprétation et crée un .pyc qui sera ensuite interprété.
Cela ressemble un peu à une compilation. Cela permet surtout d’augmenter les performances à
l’interprétation.
Bases de Max for Live 17

remonter au code source Évidemment les quelques hackers que nous sommes ont eu envie de
regarder et lire les codes sources (les .py) des MIDI Remote Script déjà existant et livrés avec Live
afin de mieux comprendre comment on pouvait faire les notres.
Ayant été beta-testeur du contrôleur PUSH d’Ableton/Akai très tôt en 2013, j’ai souhaité comprendre
un peu mieux les choses et ai décompilé en février 2013 l’ensemble des scripts pré-interprétés (les
.pyc) pour remonter aux codes sources.
L’ensemble de ces scripts est mis à jour dès qu’une version nouvelle de Live sort et tout est publié
sur mon compte github : https ://github.com/gluon/AbletonLive9_RemoteScripts⁶
Je sais que cela a beaucoup aidé certains d’entre-vous et même des concepteurs d’application pour
tablettes telle Conductr⁷.
Tout cela n’est pas documenté officiellement alors j’ai aussi fait ma propre documentation.
Voici les liens à retenir pour cela :

• Push et hacks⁸
• Les MIDI Remote Scripts⁹
• Docs objet python Live¹⁰
• Docs _Framework & _Tools objets¹¹

Nous n’apprendrons pas ici comment programmer en python ces MIDI Remote Scripts mais
comment faire les mêmes choses avec des interfaces que nous programmerons dans des devices
Max for Live.
Entrons de ce pas dans le vif du sujet.

1.3 Les objets spécifiques Max for Live


Max for Live apporte un set d’objets Max spécifique. Certains ne sont utilisables que dans Max for
Live.
Voici un aperçu de l’ensemble des objets spécifiques Max for Live.
⁶https://github.com/gluon/AbletonLive9_RemoteScripts
⁷Application Conductr pour iOS : http ://www.conductr.net
⁸http://julienbayle.net/ableton-push
⁹http://julienbayle.net/ableton-live-9-midi-remote-scripts
¹⁰http://julienbayle.net/ableton-live-9-midi-remote-scripts/#liveAPI
¹¹http://julienbayle.net/Ableton-Live-Scripts-Documentation
Bases de Max for Live 18

Les objets spécifiques Max for Live

On voit deux séries d’objets :

• en haut, les objets qui permettent de faire du contrôle/feedback,


• en bas, les objets de l’interface utilisateur graphique (GUI)

Je décrirai les objets du haut dans le chapitre suivant.


live.arrows, live.button, live.text et live.tab sont des objets de type boutons. On appuie, on
sélectionne, on change d’onglet etc.
live.dial est l’équivalent d’un potentiomètre.
live.number permet d’afficher et de choisir une valeur numérique.
live.menu permet de proposer une liste à l’utilisateur dans laquelle il peut sélectionner un élément.
live.drop permet de faire le lien entre un périphérique dans Live et le système de fichier. On peut
glisser-déposer un fichier dessus et cet objet produit en sortie le chemin et le nom du fichier en
question. C’est très pratique pour directement mettre en mémoire un sample avant de le jouer ou le
traiter par exemple.
live.gain∼ affiche le niveau du signal audio entrant et permet aussi d’agir sur ce niveau.
live.meter∼ en revanche ne permet que d’afficher le niveau du signal audio entrant
live.slider est l’équivalent d’un fader.
Enfin, live.grid et live.step sont deux objets qui, combinés à des objets Max permettent de
rapidement les configurer.
Bases de Max for Live 19

Par exemple live.grid fonctionne généralement avec chucker∼ qui met en mémoire un signal
entrant, le découpe en petits morceaux et rejouent ceux-ci dans l’ordre que l’on veut.
live.step est un séquenceur pas à pas (un step-sequencer).
Nous parlerons de l’ensemble de ces objets UI dans la suite car il est important de comprendre
comment les utiliser. Car Live apporte un ensemble de fonctionnalités qu’il faut savoir maîtriser et
je veux qu’après la lecture de guide vous les maîtrisiez ! Par exemple, comment faire pour que l’état
des paramètres d’un device que l’on crée soit bien sauvegardé avec le liveset, ou bien que l’on puisse
bien les automatiser ou les moduler.
Maintenant, concentrons-nous, nous allons parler du fameux LOM !

Vous aimerez peut-être aussi