Live coding dans Ableton Live – étonnamment expressif
Publié le mercredi 3 juin 2026

Le live coding : taper des lignes de code pour générer instantanément de la musique. Cela peut sembler terrifiant. Pourtant, en tant qu’utilisateur d’Ableton Live, vous êtes sans doute à la recherche de nouvelles manières de stimuler votre créativité musicale. Vous cherchez cet outil unique à ajouter à votre arsenal pour surprendre et ravir vos fans, que ce soit à la maison ou sur scène (avis aux amateurs d’#algorave). Alors, réveillez le geek qui sommeille en vous et faites entrer Sonic Pi dans Ableton. Notre blogueur invité, Hens Zimmerman, vous montre le chemin.

Illustration 1 : Ableton Link. Nous y reviendrons tout à l’heure.
Sonic Pi : complet et gratuit
Sonic Pi est l’un des logiciels les plus populaires pour faire du live coding musical. De plus, il est gratuit et bénéficie d’améliorations constantes. La version actuelle (4.5.0) est disponible sur macOS (avec des versions distinctes pour les processeurs ARM et Intel), Windows, Linux et Raspberry Pi OS.
Qui a envie de tout taper ?
Programmer de la musique peut au départ susciter une certaine réticence : après tout, qui a envie de taper des lignes de texte pour composer ? C’est pourtant une méthode de création étonnamment expressive. De légères modifications dans un morceau de code peuvent entraîner des différences drastiques. En ajoutant ou en supprimant des lignes, vous pouvez construire et faire évoluer votre structure musicale de façon très fluide. De plus, la documentation et la communauté de Sonic Pi sont excellentes. Un tutoriel est directement intégré au logiciel et, en un rien de temps, vous composerez vos premiers morceaux. Place à l’exemple : vous pouvez copier ce petit bout de code et le coller dans Sonic Pi. Cliquez ensuite sur Run, et Sonic Pi commencera à jouer :
live_loop :bax do # Mélodie aléatoire. use_random_seed 101 use_synth :prophet notes = (scale :d2, :phrygian, num_octaves: 3) 16.times do play notes.choose, release: 0.3, cutoff: rrand(70, 120) sleep 0.25 end end
Tiens, c’est du Ruby ?
Bien sûr, nous n’allons pas passer en revue toute la syntaxe de Sonic Pi dans cet article, mais voici un petit indice : si vous avez déjà des notions en programmation, ce code vous rappellera sans doute le langage Ruby (connu notamment via le framework Ruby on Rails). C’est tout à fait normal. Le langage de Sonic Pi est basé sur le Ruby, ce qui signifie que de nombreux concepts de ce langage y sont parfaitement applicables.
L’expérimentation musicale
Le bout de code ci-dessus génère une mélodie aléatoire. Sonic Pi est un langage qui vous invite à expérimenter avec la musique. La ligne use_synth :prophet laisse entendre que Sonic Pi utilise des synthétiseurs intégrés. En effet, un grand nombre de synthés virtuels sont disponibles dans Sonic Pi. Mais vous pouvez aussi utiliser des samples. Sonic Pi est livré avec une sélection de samples. Le code suivant, par exemple, joue le célèbre « Amen break » en boucle :
use_bpm 134 live_loop :bax2 do sample :loop_amen, beat_stretch: 4 sleep 4 end
Mais rien ne nous empêche d’utiliser nos propres samples et boucles :
use_bpm 70 live_loop :bax3 do sample "/Users/henszimmerman/Loop_003.wav", beat_stretch: 8 sleep 8 end
Pour vous aussi
Sonic Pi est un programme extrêmement complet. Sur l’illustration 2 ci-dessous, vous voyez à quoi ressemble Sonic Pi lorsqu’il exécute du code. La fenêtre principale affiche à la fois votre code et les résultats de vos actions. En haut à gauche de l’interface de Sonic Pi, nous tapons notre code. C’est très pratique de pouvoir modifier le code, et de n’entendre le résultat qu’au moment où vous appuyez sur Run (ou que vous faites Commande + R). Cela signifie aussi que vous pouvez mixer en direct avec Sonic Pi et faire évoluer votre musique en temps réel. Plusieurs boucles peuvent s’exécuter en parallèle et rester parfaitement synchronisées. Et le concept de boucle est très large : cela peut être un sample qui joue par exemple 1 ou 2 mesures, mais aussi un morceau de code plus complexe qui utilise plusieurs synthés.
Envie de tester Sonic Pi avant de lire la suite ?
Si le live coding est un concept entièrement nouveau pour vous, il est peut-être judicieux de faire d’abord quelques essais directement dans Sonic Pi. Dans la suite de cet article, nous allons voir comment échanger des données entre Ableton Live et Sonic Pi. Sans une connaissance de base de ces deux logiciels, la suite risque de vous paraître un peu abstraite. Ne vous laissez pas décourager ! Même des enfants apprennent à utiliser Sonic Pi, vous en êtes donc tout à fait capable. Avant de savoir courir, il faut apprendre à marcher.
Ouvrir les portes à Sonic Pi
Comment faire entrer la magie de Sonic Pi dans votre séquenceur préféré, Ableton Live ? C’est parti. Il s’agit d’une simple question de configuration.
Audio de Sonic Pi vers Ableton Live
Vous souhaitez peut-être utiliser à la fois Sonic Pi et Ableton Live sur scène ? Ou peut-être voulez-vous enregistrer vos sessions d’algorave Sonic Pi dans Ableton Live ? Pour cela, il est nécessaire de faire entrer l’audio de Sonic Pi dans Ableton Live comme une source sonore externe. Bien que Sonic Pi gère les interfaces audio multipistes, une petite astuce logicielle s’avère plus simple pour lier les deux mondes. Sur macOS, vous pouvez installer le pilote MacOS Blackhole. Blackhole agit comme un câble virtuel entre vos applications. En routant la sortie audio de votre Mac vers Blackhole, vous pouvez récupérer le signal dans Ableton Live. L’illustration 3 montre comment sélectionner Blackhole comme sortie audio principale dans les réglages système de macOS.

Illustration 3 : Sélection de BlackHole comme sortie audio sur Mac.
Désormais, lorsque vous lancez Sonic Pi, le logiciel utilise automatiquement Blackhole. Vous pouvez le vérifier dans les préférences de Sonic Pi (voir illustration 4).

Illustration 4 : Sonic Pi configuré sur la sortie Blackhole.
Il ne reste plus qu’à indiquer à Ableton Live que sa source d’entrée audio est Blackhole. Alternativement, vous pouvez créer un « périphérique agrégé » dans la configuration audio MIDI de macOS (Cmd + Shift + U) pour combiner Blackhole et votre carte son habituelle. Cela vous permettra de conserver vos entrées physiques tout en profitant du routage virtuel. Pour les besoins de cet article, nous allons utiliser la méthode directe : Blackhole sera l’unique entrée d’Ableton Live.

Illustration 5 : Blackhole comme entrée dans Ableton Live (Live – Paramètres… – Audio).
Si vous créez maintenant une piste audio dans Ableton Live et que vous choisissez Ext. In comme entrée, Sonic Pi arrive comme source sonore. Parfois, il est pratique de régler Monitor sur In sur la piste audio. Gardez aussi à l’esprit que certains effets comme le Beat Repeat ne fonctionneront dans Ableton Live que si la lecture générale (le transport) est lancée.
MIDI d’Ableton Live vers Sonic Pi
Nous pouvons bien sûr aussi considérer Sonic Pi comme un instrument virtuel. Si taper des notes et des accords vous semble un peu fastidieux, sachez que Sonic Pi accepte aussi des commandes MIDI externes. À quoi cela ressemble-t-il ?
Tout d’abord, il nous faut un « pont » vers lequel Ableton Live peut envoyer du MIDI et que Sonic Pi peut lire. Le plus évident est d’utiliser pour cela le pilote IAC de MacOS. Ouvrez Audio MIDI Setup (à trouver dans le Finder sous Applications – Utilities). Dans la fenêtre MIDI Studio, vous apercevrez sans doute les différents contrôleurs et claviers que vous avez achetés chez Bax Music 😊. L’illustration 6 montre l’état de ma configuration actuelle.

Illustration 6 : MIDI Studio dans Audio MIDI Setup de macOS.
Si nous double-cliquons sur IAC Driver, une nouvelle fenêtre s’ouvre. Nous y cochons la case Device is online (voir illustration 7).

Illustration 7 : IAC Driver est en ligne.
Dans Sonic Pi, vous pouvez vérifier sous Preferences – IO que le logiciel écoute désormais bien le pilote IAC Driver comme entrée MIDI. L’illustration 8 montre à quoi cela ressemble sur mon ordinateur, mais votre configuration sera peut-être légèrement différente. L’essentiel est que l’IAC Driver apparaisse dans la liste.

Illustration 8 : Sonic Pi détecte le pilote MIDI IAC. Nickel !
Il ne reste plus qu’à configurer Ableton Live pour qu’il envoie des notes MIDI à Sonic Pi. Là aussi, cela passe évidemment par l’IAC Driver. Dans les Preferences de Live, sous l’onglet Link Tempo MIDI, cochez la case de la colonne Track sur la ligne MIDI Ports – Out: IAC Driver. Vous pouvez voir ce que cela donne sur l’illustration 9.

Illustration 9 : Préférences d’Ableton Live avec la sortie IAC MIDI activée.
Créez une piste MIDI dans Ableton Live et sélectionnez l’IAC Driver comme sortie MIDI. Laissez le canal MIDI sur sa valeur par défaut, à savoir le 1. Sur l’illustration 10, vous pouvez voir que j’ai également créé un clip contenant quelques notes qui tournent en boucle.

Illustration 10 : Ableton Live envoie des notes MIDI vers IAC Driver.
Avec un peu de chance, Sonic Pi est toujours ouvert chez vous. Vous pouvez constater immédiatement que des informations MIDI arrivent en regardant la fenêtre Cues, située à droite de l’interface de Sonic Pi. Tant qu’Ableton Live est en lecture, les événements MIDI défilent dans cette fenêtre Cues. L’illustration 11 montre ce phénomène. Les fenêtres Log et Cues de Sonic Pi sont ultra-pratiques pour diagnostiquer les problèmes et comprendre ce qui se passe. Cela dépasserait le cadre de cet article, mais sachez que Sonic Pi gère aussi le protocole OSC (Open Sound Control). Si c’est votre truc, vous allez vous régaler.

Illustration 11 : Événements MIDI entrants dans la fenêtre Cues de Sonic Pi.
Les événements MIDI reçus par Sonic Pi ressemblent à ceci :
/midi:iac_driver_bus_1:1/note_on [53, 127]
Entre les crochets, vous trouverez respectivement le numéro de la note MIDI (53 dans cet exemple) et la vélocité (127 ici). La communication entre les deux programmes est maintenant opérationnelle. Il ne reste plus qu’à écrire le code qui va écouter la bonne entrée MIDI pour la traduire en une musique magnifique. Voici un exemple de code :
live_loop :bax6 do # Moins de latence ! use_real_time note, velocity = sync "/midi:iac_driver_bus_1:1/note_on" synth :rhodey, note: note, amp: velocity / 127.0 end
La commande use_real_time permet à notre synthé dans Sonic Pi de jouer avec un minimum de latence. À la ligne suivante, nous lisons respectivement les informations de note et de vélocité depuis le pilote IAC :
note, velocity = sync "/midi:iac_driver_bus_1:1/note_on"
Ensuite, nous pouvons utiliser les variables note et velocity comme nous le souhaitons. Ici, nous créons un synthé de type Fender Rhodes, dans lequel nous pouvons utiliser directement l’information de note comme valeur de 0 à 127 inclus. Pour la vélocité de la note, nous devons encore diviser la valeur lue par 127.0, car Sonic Pi attend une valeur de vélocité comprise entre 0 et 1. Et comme vous le savez peut-être, la vélocité MIDI (comme les MIDI CC) est une valeur entre 0 et 127 inclus.
synth :rhodey, note: note, amp: velocity / 127.0
Si nous cliquons sur Run, Sonic Pi rejoue correctement les informations MIDI provenant d’Ableton Live avec le synthé intégré :rhodey. Sur l’illustration 12, vous voyez où se trouve le bouton Run dans Sonic Pi. Il est important que le nom de l’événement MIDI (/midi:iac_driver_bus_1:1/note_on) soit parfaitement exact dans votre code. Heureusement, vous pouvez copier-coller les événements depuis la fenêtre Cues dans votre éditeur de code. 😅

Illustration 12 : Exécution du code dans Sonic Pi.
MIDI de Sonic Pi vers Ableton Live ?
Et si on inversait les rôles ? C’est-à-dire envoyer des informations MIDI depuis Sonic Pi vers Ableton Live. C’est tout à fait possible ! C’est même une approche très intéressante, car Sonic Pi permet de générer des mélodies « aléatoires » de manière extrêmement contrôlée, le tout au sein de nombreuses gammes connues ou exotiques. Sur l’illustration 13, vous pouvez voir que l’autocomplétion (code completion) de Sonic Pi vous aide à choisir parmi les nombreuses gammes disponibles. Ce serait top de pouvoir enregistrer ces notes MIDI pour les retravailler ensuite dans Ableton Live, n’est-ce pas ?

Illustration 13 : Autocomplétion et gammes dans Sonic Pi.
Commençons par une boucle simple qui joue une mélodie uniquement avec Sonic Pi :
live_loop :bax7 do use_random_seed 1 use_synth :dsaw notes = (scale :d2, :phrygian, num_octaves: 2) 16.times do play notes.choose, release: 0.1 sleep 0.25 end end
Une fois satisfaits après quelques ajustements (essayez un autre nombre après use_random_seed), nous pouvons envoyer cette mélodie sous forme d’événements MIDI vers Ableton Live. Comme nous voulons à la fois entendre la note dans Sonic Pi et l’envoyer comme événement MIDI, nous allons la stocker temporairement dans une variable n.
live_loop :bax8 do use_random_seed 1 use_synth :dsaw notes = (scale :d2, :phrygian, num_octaves: 2) 16.times do # On stocke la note suivante dans une variable. n = notes.choose play n, release: 0.1 midi_note_on n, 100 sleep 0.25 midi_note_off n end end
Il ne reste plus qu’à configurer Ableton Live pour qu’il écoute l’IAC Driver. Ouvrez à nouveau les Preferences de Live. Cette fois-ci, il faut activer l’IAC Driver en entrée (MIDI Input). L’illustration 14 montre le résultat. Notez que vous pouvez tout à fait laisser l’IAC Driver coché à la fois en entrée et en sortie.

Illustration 14 : Ableton Live écoute l’entrée MIDI depuis IAC Driver.
Vous vous demandez peut-être à quel endroit du code ci-dessus on indique que les notes MIDI doivent être envoyées vers l’IAC Driver. En réalité, on ne le précise pas. Par défaut, Sonic Pi envoie les notes MIDI à tous les périphériques MIDI disponibles. Pour un exemple aussi simple, cela ne pose pas de problème, mais dans une vraie configuration, vous voudrez sûrement cibler des périphériques MIDI bien précis. Heureusement, c’est très simple. Dans le code ci-dessous, la première boucle joue une basse sur le canal MIDI 1 (bax9) et la seconde joue une mélodie plus haute sur le canal MIDI 2 (bax10). Comme les deux boucles utilisent une graine aléatoire (random seed) différente, elles jouent chacune une suite de notes fixe, mais distincte d’une boucle à l’autre. Et comme elles piochent toutes les deux dans la gamme de Ré phrygien (D phrygian), l’ensemble sonne merveilleusement bien. Nous avons également défini un tempo (BPM) à la première ligne. Nous verrons juste après l’autre avantage de cette commande. Vous remarquerez aussi que Sonic Pi ne produit plus de son directement : on se contente d’envoyer les données de notes MIDI vers l’IAC Driver.
use_bpm 110 live_loop :bax9 do use_random_seed 1 notes = (scale :d2, :phrygian, num_octaves: 2) 16.times do # On stocke la note suivante dans une variable. n = notes.choose midi_note_on n, port: "iac_driver_bus_1", channel: 1 sleep 0.25 midi_note_off n, port: "iac_driver_bus_1", channel: 1 sleep 0.25 end end live_loop :bax10 do use_random_seed 42 notes = (scale :d3, :phrygian, num_octaves: 3) 16.times do # On stocke la note suivante dans une variable. n = notes.choose midi_note_on n, port: "iac_driver_bus_1", channel: 2 sleep 0.25 midi_note_off n, port: "iac_driver_bus_1", channel: 2 sleep 0.25 end end
Dans Ableton Live, créez maintenant deux pistes MIDI contenant chacune un instrument virtuel. Pour la basse sur le canal MIDI 1, vous pouvez utiliser un preset de type Analog Bass, et pour la mélodie sur le canal MIDI 2, un instrument comme Analog Guitar & Plucked. Si vous préférez utiliser Serum ou Massive X, faites-vous plaisir ! Comme on le voit sur l’illustration 15, la piste de gauche écoute MIDI From: IAC Driver sur le Channel 1, et la piste de droite écoute le Channel 2. Pensez aussi à régler le BPM d’Ableton Live sur 110 pour que ses effets soient parfaitement synchronisés au tempo.

Illustration 15 : Deux pistes MIDI avec des instruments virtuels dans Ableton Live jouent des notes issues de Sonic Pi.
Le fait d’aligner le BPM de Sonic Pi et d’Ableton Live offre un autre avantage de taille : lorsque vous lancez un enregistrement, les notes MIDI se calent au bon tempo directement dans la vue Arrangement (Arrangement View). L’illustration 16 montre comment les données MIDI s’inscrivent dans Live. Les notes sont bien synchronisées car les deux logiciels tournent à 110 BPM, mais elles ne sont pas parfaitement calées sur la grille dans le Piano Roll. C’est évidemment vite corrigé avec une commande de quantification (Quantize), mais ce n’est pas idéal…

Illustration 16 : Notes MIDI enregistrées dans la vue Arrangement. Synchronisées, mais pas calées sur la grille.
Zéro décalage grâce à Ableton Link
La solution absolue s’appelle Ableton Link, car oui, Sonic Pi gère cette technologie. Ableton Link est un protocole open-source qui permet à différents appareils et logiciels de rester parfaitement synchronisés. Aujourd’hui, énormément de constructeurs et de développeurs l’intègrent. Tant que ces logiciels (« pairs ») partagent le même réseau, ils avancent au même pas. Beaucoup d’applications compatibles Ableton Link gèrent aussi les commandes de lecture et d’arrêt (start/stop) des autres logiciels du réseau. Pour le moment, Sonic Pi accepte l’ordre de démarrage (start), mais pas celui d’arrêt (stop). En insérant la commande link_sync dans notre script Sonic Pi, le logiciel attend le signal d’Ableton Live (par exemple) pour démarrer instantanément en parfaite synchronisation.
Grâce à Ableton Link, notre mélodie va filer droit en restant calée sur Ableton Live. Il faut simplement ajuster quelques réglages dans les deux programmes pour l’activer. Commençons par Ableton Live : dans les Preferences, activez les options Show Link Toggle et Start Stop Sync. L’illustration 17 vous montre où se trouvent ces boutons.

Illustration 17 : Activation d’Ableton Link dans Ableton Live.
Désormais, un bouton Link apparaît en haut à gauche de l’interface d’Ableton Live. Cliquez dessus pour l’activer : il s’illumine comme sur l’illustration 18.

Illustration 18 : Link activé dans Ableton Live.
Dans Sonic Pi, vous trouverez une section intitulée Link Metronome & Global Time Warp. Si elle n’apparaît pas, vous pouvez l’activer dans les Preferences de Sonic Pi (onglet Editor). L’illustration 19 montre que Link est activé et que Sonic Pi indique fièrement que la connexion est établie (Link connected), précisant qu’un « pair » (1 peer) a été détecté sur le réseau : il s’agit d’Ableton Live. Si vous ajoutez d’autres appareils compatibles à la session, le nombre de peers augmentera.

Illustration 19 : Link activé dans Sonic Pi.
De son côté, Ableton Live affiche maintenant « 1 Link » sur le bouton bleu activé précédemment. Parfait ! Ableton Live et Sonic Pi communiquent via Ableton Link. Si vous collez le script ci-dessous dans Sonic Pi et cliquez sur Run, Sonic Pi va gentiment attendre le signal de départ d’Ableton Live.
use_bpm 110 Sonic Pi attend qu'Ableton Live se mette en lecture. link_sync 4 temps par mesure. quantum = 4 Valeur ajustée empiriquement pour affiner la synchronisation. phase = -0.034 Cette boucle joue une mélodie en Ré Phrygien. live_loop :bax11 do # La ligne suivante synchronise cette boucle avec Ableton Live. link quantum, phase use_random_seed 1 notes = (scale :d2, :phrygian, num_octaves: 2) 16.times do # On stocke la note suivante dans une variable. n = notes.choose midi_note_on n, port: "iac_driver_bus_1", channel: 1 sleep 0.25 midi_note_off n, port: "iac_driver_bus_1", channel: 1 sleep 0.25 end end Cette boucle joue le break "Amen". live_loop :bax12 do # La ligne suivante synchronise cette boucle avec Ableton Live. link quantum, phase sample :loop_amen, beat_stretch: 4 end
Dès que vous lancez l’enregistrement dans Ableton Live, Sonic Pi commence à jouer pile sur le premier temps de la mesure. Les notes MIDI arrivent et se calent parfaitement sur la grille de Live. L’illustration 20 montre le résultat chez moi. Si tout fonctionne, vous devriez également entendre le break Amen tourner de manière parfaitement synchrone. C’est Sonic Pi qui joue cette boucle (pas Ableton Live) : assurez-vous donc que Sonic Pi utilise bien votre carte son et qu’il n’est pas resté routé vers Blackhole. Bien entendu, vous pouvez tout à fait utiliser Blackhole dans ce genre de configuration pour l’assigner comme entrée d’une piste audio dans Ableton Live.

Illustration 20 : Ableton Live tourne en parfaite synchronisation avec Sonic Pi.
Que peut faire Ableton Link de plus ?
Certains langages de programmation comme le C++, Max, Lua ou Python disposent également de modules ou de dépôts GitHub compatibles avec Ableton Link. Si cette technologie vous plaît, n’hésitez pas à vérifier si vous possédez déjà des applications ou logiciels compatibles. Par exemple, la superbe application iPad Patterning 2 intègre Link. Pour le monde des synthétiseurs modulaires, vous pouvez utiliser le module Eurorack ML:2 qui ne fait que 2 HP de large. Avid Pro Tools, Bitwig et Logic Pro gèrent également Ableton Link. Même les DJs peuvent en profiter : le lecteur Denon SC6000 Prime, par exemple, se synchronise via Ableton Link. Ableton tient d’ailleurs à jour une liste complète des produits compatibles.
Bon live coding !
Voir également
» Ableton Note – Apprenez à utiliser ce bloc-notes musical
» Templates d’arrangement dans Ableton Live : copier = s’inspirer
» Éditer en direct dans Ableton Live en 7 étapes
» Découvrir des accords dans Ableton Live – utilisez ces outils !
» Humanité et variations dans Ableton Live
» Comment utiliser le MIDI Polyphonic Expression (MPE) dans Ableton Live







Pas encore de commentaires ...