le guide ultime et zen de max for live

30

Upload: others

Post on 11-Sep-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Le Guide Ultime et Zen de Max for Live
Page 2: Le Guide Ultime et Zen de Max for Live

Le Guide Ultime et Zen de Max for LiveMaî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 Publishingprocess. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools andmany iterations to get reader feedback, pivot until you have the right book and build traction onceyou do.

©2013 Julien Bayle

Page 3: Le Guide Ultime et Zen de Max for Live

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 thishashtag on Twitter :

https ://twitter.com/search ?q=#m4lbook

Page 4: Le Guide Ultime et Zen de Max for Live

Also By Julien BayleMax for Live Ultimate Zen Guide

Page 5: Le Guide Ultime et Zen de Max for Live

Table des matières

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

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

FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ivVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv

Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ivCe guide n’est pas : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ivCe guide est : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ivVous voulez vous formez sur Ableton Live avec mon DVD . . . . . . . . . . . . . . . . . . vVous avez trouvé une erreur dans ce guide . . . . . . . . . . . . . . . . . . . . . . . . . . vVous voulez des cours Ableton Live, Max6 ou autres . . . . . . . . . . . . . . . . . . . . . v

1 Bases de Max for Live . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 Qu’est ce que Max for Live ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Qu’est ce qu’un environnement visuel et interactif de programmation ? . . . . . . . . 1Max6 et Max for Live . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Différences Max et Max for Live . . . . . . . . . . . . . . . . . . . . . . . . . 4L’environnement Max et le runtime Max . . . . . . . . . . . . . . . . . 4Ableton Live & Max for Live . . . . . . . . . . . . . . . . . . . . . . . . 5

Licences et utilisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Je possède simplement Max for Live . . . . . . . . . . . . . . . . . . . . 7Je possède uniquement Max . . . . . . . . . . . . . . . . . . . . . . . . 7Je possède Max et Max for Live . . . . . . . . . . . . . . . . . . . . . . . 7

1.2 Ableton Live en bref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Projets & livesets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Pistes / Tracks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Périphériques / Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9MIDI Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12MIDI Remote Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Que sont ces scripts ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Où trouver les MIDI Remote Scripts sur son ordinateur ? . . . . . . . . . . . . 15Éditer les scripts et hacking . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

.py et .pyc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Page 6: Le Guide Ultime et Zen de Max for Live

TABLE DES MATIÈRES

remonter au code source . . . . . . . . . . . . . . . . . . . . . . . . . . 171.3 Les objets spécifiques Max for Live . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Page 7: Le Guide Ultime et Zen de Max for Live

IntroductionJe suis Julien Bayle¹ et utilise Ableton Live depuis le début. Je suis certifié² depuis 2010 seulementet enseigne non seulement Ableton Live Suite³ mais aussiMax6 etMax for Live à des particulierspassionnés mais aussi des professionnels. J’ai d’ailleurs publié cette année même un DVD de 8h30de 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 serezcomplètement conquis et passionné par le fait de construire vos propres effets audio et MIDI, vosinterfaces adaptés à vos besoin et aussi vos générateurs de sons, instruments et même générateursde visuels !

Dans une première partie, je vais vous expliquer les bases deMax for Live, ce que c’est vraiment,quelles sont les différences avec Max6 (anciennement nommé Max/MSP) et aussi comment ils’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 etcontrô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

Page 8: Le Guide Ultime et Zen de Max for Live

Introduction ii

Dans une troisième partie, je vous parlerai de JavaScript qui permet, au sein de Max for Lived’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 proprespé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

Page 9: Le Guide Ultime et Zen de Max for Live

À proposCe guide est publié et disponible par le biais de la plateforme leanpub.commais l’ensemble des droitsest 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 oupresque 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

Page 10: Le Guide Ultime et Zen de Max for Live

FAQVersion

La version de ce guide est 1.02

Changelog

1.02

• ajout du sous-chapitreModifications 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 ils’intègre à Ableton Live

• LE tutoriel qui vous permettra de créer vos propres périphériques Max for Live parfaitementinté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

Page 11: Le Guide Ultime et Zen de Max for Live

FAQ v

Vous voulez vous formez sur Ableton Live avec monDVD

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

Page 12: Le Guide Ultime et Zen de Max for Live

1 Bases de Max for LiveMax for Live n’est pas juste un concept ou une formule magique. De nombreux tutoriels vidéosn’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’onutilise 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éfinissonsprécisément ce qu’est un environnement visuel et interactif de programmation.

Qu’est ce qu’un environnement visuel et interactif deprogrammation ?

Il existe beaucoup de langage de programmation. Chacun d’eux a des caractéristiques qui constituentleurs 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

Page 13: Le Guide Ultime et Zen de Max for Live

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 ceque j’appelle une rupture de conception avec cette étape de compilation obligatoire qui nécessitede 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 deconception. 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, apriori, moins abstraite. En effet, on ne crée pas de structure complexe avec du texte telle les fonctionsque l’on peut appeler uniquement depuis telle ou telle partie du reste du code, mais on déplace desobjets que l’on connecte entre eux.

Voici un exemple de mon propos, en image :

Page 14: Le Guide Ultime et Zen de Max for Live

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 unargument. Cette fonction est ensuite appelée avec 2 en argument et son résultat est stocké dansla variable result qui est ensuite affichée avec une fonction display() qui n’est pas visible ici maisqui est simplement là pour montrer qu’il n suffit pas de stocker un résultat dans une variable pourl’afficher. Il faut explicitement l’afficher.

À droite, la même chose avec Max6. Deux objects d’interface utilisateur (UI pour user interface) quipermette à la fois d’afficher mais aussi de modifier des valeurs. L’objet [+ 5] est l’équivalent de lafonction add_five et ajoute 5 à toute valeur qui lui est envoyé par en haut. Ensuite, par en bas, iltransmet le résultat.

AttentionL’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.

Page 15: Le Guide Ultime et Zen de Max for Live

Bases de Max for Live 4

J’utiliserai donc aussi bien Max que Max6 pour désigner l’environnement Max6. Mais j’utiliseraiMax 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 enl’achetant sur http ://cycling74.com/shop²

Max un environnement autonome qui ne nécessite pas de posséder une licence Ableton Live etquand bien même vous en auriez une, il ne serait pas nécessaire de lancer Live pour pouvoir utiliserMax.

Lorsque l’on programme avec Max, on crée des patches (ensemble d’objets connectés) que l’on éditeet modifie. Si on veut qu’un autre utilisateur se serve de notre patch alors qu’il n’a pas de licenceMax, il est possible de crée ce que l’on appelle une application Max autonome qui consiste en notrepatch 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 unecompilation 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

Page 16: Le Guide Ultime et Zen de Max for Live

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, modifieret 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 fichiersqui contiennent les patches nécessaires à leur bon fonctionnement dans Live mais aussi l’ensembledes dépendances nécessaires notamment si ces devices là ont été gelés, nous le verrons un petit peuplus 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 deviceset 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)

Page 17: Le Guide Ultime et Zen de Max for Live

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 deMax 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, onpeut aussi l’éditer !

Clickez vous aussi sur le bouton edit d’un device Max for Live et vous verrez une fenêtre Maxs’ouvrir avec le contenu du device qui sera en mode édition.

Page 18: Le Guide Ultime et Zen de Max for Live

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

Je possède simplement Max for Live Pour utiliser les devices max for live, il est nécessaire depossé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 parle biais de MIDI notamment, ou encore faire transiter l’audio de l’un vers l’autre avec des routeursaudio 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

Page 19: Le Guide Ultime et Zen de Max for Live

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 AudioWorkstation) 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 qued’autres fichiers tels les presets de périphériques si on les a sauvegardés à avec le liveset ou si on autilisé la fonction Réunir et Sauvegarder qui a pour but de ne plus avoir de dépendances et de copierphysiquement 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 modearrangement.

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 depé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

Page 20: Le Guide Ultime et Zen de Max for Live

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. Laversion 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 applicationou bien physiquement de l’extérieur de l’ordinateur, ou bien directement des clips MIDI de la pisteconcernée) et savent produire selon ces messages là de l’audio

Page 21: Le Guide Ultime et Zen de Max for Live

Bases de Max for Live 10

On trouve dans la catégorie Audio Effects : les effet audio natifs de Live tels les delay, lescompresseurs 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, despériphériques utilisables dans Live mais qui ne sont pas livrés avec Live oumê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 ouaudio.

Page 22: Le Guide Ultime et Zen de Max for Live

Bases de Max for Live 11

Quand j’explique à mes stagiaires ou élèves les différents types en faisant ce schéma, cela fonctionneassez 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 pouvantvenir, je répète, de l’extérieur de Live OU des clips de la piste), on voit un LED Bar. Ensuite on voitun 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 enpré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 etun Vu-mètre en sortie. Ne serait-ce donc pas un Instrument ? Évidemment : il reçoit un signal MIDIet 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 riend’autres que des périphériques Live un peu particuliers et éditables, doivent eux aussi posséder untype. 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 traiterdu MIDI ni de l’audio mais par exemple servir d’interface entre une Wiimote et Live, nouspouvons aussi bien utiliser un périphérique Max for Live de type MIDI effect, audio effectou instrument. Cela n’aura pas d’importance si ce n’est que nous ne pourrons l’inclure quedans un type de piste particulier selon sa nature.

Poursuivons les rappels sur Live.

Page 23: Le Guide Ultime et Zen de Max for Live

Bases de Max for Live 12

MIDI Mapping

Le MIDI Mapping permet d’associer des messages MIDI de type Note ou Control Change à desfonctions 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 etCRTL + 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 surd’autres logiciels.

ATTENTIONLe 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 boutonsou 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’ontravaille d’un live à un autre, à un morceau même, pourquoi pas, sans devoir toujours réaffecternos paramètres à nos contrôleurs.

Évidemment, on peut garder le même liveset qui comporte les affectations MIDI déjà faites et lecopier-coller, le réutiliser à chaque fois… oui. La plupart des gens font ça, mais on peut faire mieuxavec les MIDI Remote Scripts.

Au fait, patience, Max for Live arrive… Mais il faut que vous ayez tout cela bien à l’esprit avant deplonger !

Page 24: Le Guide Ultime et Zen de Max for Live

Bases de Max for Live 13

MIDI Remote Scripts

Certains d’entre vous doivent déjà connaître cesMIDI 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, ona 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 contientl’interpréteur.

Que sont ces scripts ?

LesMIDI Remote Scripts sont des scripts en langage Python qui sont interprétés par Ableton Livedirectement 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’ongletMIDI Sync, on peut voir dans la partie haute lesparamètres qui concernent les surfaces de contrôle (parfois référencées dans Live comme RemoteSurfaces)

Page 25: Le Guide Ultime et Zen de Max for Live

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épertoiresd’installation de Live.

Chacun porte le nom d’un contrôleur. On y voit APC20, APC40 etc. On y voit aussi LividCode qui estun 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êmeset 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 depouvoir 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.

Page 26: Le Guide Ultime et Zen de Max for Live

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 lafenê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êmealors que dans le cas du MIDI Mapping, on se base sur un liveset (avec évidemment un paramétragegénéral des interfaces MIDI dans la fenêtre préférences MAIS dans laquelle le mapping n’intervientpas 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

Page 27: Le Guide Ultime et Zen de Max for Live

Bases de Max for Live 16

• C :Documents and SettingsAll UsersApplication DataAbletonLive xResourcesMIDI RemoteScripts\ sur Windows XP.

Sur OSX, il faut repérer le fichier Live.app dansMacintosh HD/Applications/Live x.x.x./Live.appet faire un click-droit dessus et choisir Show Package Contents. Ensuite si on regarde dansContents/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 lafenê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 fichiersavec 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 etmê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 sontpas é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 parLive 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.

Page 28: Le Guide Ultime et Zen de Max for Live

Bases de Max for Live 17

remonter au code source Évidemment les quelques hackers que nous sommes ont eu envie deregarder et lire les codes sources (les .py) des MIDI Remote Script déjà existant et livrés avec Liveafin 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é comprendreun 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 pourtablettes 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 maiscomment faire les mêmes choses avec des interfaces que nous programmerons dans des devicesMax 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 forLive.

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

Page 29: Le Guide Ultime et Zen de Max for Live

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, onsé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 peutglisser-déposer un fichier dessus et cet objet produit en sortie le chemin et le nom du fichier enquestion. C’est très pratique pour directement mettre en mémoire un sample avant de le jouer ou letraiter 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 derapidement les configurer.

Page 30: Le Guide Ultime et Zen de Max for Live

Bases de Max for Live 19

Par exemple live.grid fonctionne généralement avec chucker∼ qui met en mémoire un signalentrant, 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 comprendrecomment les utiliser. Car Live apporte un ensemble de fonctionnalités qu’il faut savoir maîtriser etje veux qu’après la lecture de guide vous les maîtrisiez ! Par exemple, comment faire pour que l’étatdes paramètres d’un device que l’on crée soit bien sauvegardé avec le liveset, ou bien que l’on puissebien les automatiser ou les moduler.

Maintenant, concentrons-nous, nous allons parler du fameux LOM !