Sonic Pi – un environnement de Codage Musical Live basé sur Ruby

Bienvenue dans l’un des futurs de la musique numérique…
Sonic Pi, le synthétiseur de musique libre et multi-plateforme à codage en direct fait pour tout le monde.

⇒ Mise à jour : 26/11/2020 — Sonic Pi v.3.2.2 du 5/04/2020 (voir à la fin de l’article)

• Simple pour les cours de codage et de musique Live
• Puissant pour les musiciens professionnels
• Libre à télécharger – à utiliser, avec de nombreux tutoriels

• Cet article (7/08/2018) est la mise à jour de l’original publié le 9/11/2017.
Profitez de vos vacances pour vous mettre ludiquement au Codage (programmation informatique) et à la MAO (musique assistée par ordinateur) !

◊ Au sommaire

  • Avant-propos
  • Présentation de Sonic Pi
  • Documentation et Forum
  • Sonic Pi en classe informatique
  • Investissez-vous en codant de la musique ré·créative
  • Installation +/- facile sous GNU/Linux
  • Premiers pas avec Sonic Pi v.2.9
  • Sonic Pi v.3.2.2

♦ Avant-propos

Sonic Pi est un environnement de codage en direct (Live) basé sur le langage Ruby (un langage de programmation libre, interprété, orienté objet et multi-paradigme). Sonic Pi a été conçu à l’origine pour prendre en charge à la fois les cours d’informatique et de musique dans les écoles, développé par le Docteur Sam Aaron au Laboratoire d’informatique de l’Université de Cambridge (Angleterre) en collaboration avec la Fondation Raspberry Pi.

Grâce à l’utilisation du moteur de synthèse SuperCollider et d’un modèle de synchronisation précis (temps réel), il est également utilisé pour le codage en direct et d’autres formes de performance et de production de musique algorithmique, y compris des Algoraves.

Sonic Pi : Codage musical en direct – Prêt pour la salle de classe – Informatique créative

Apprenez à coder de manière ré·créative en composant ou en interprétant de la musique dans une gamme incroyable de styles, du classique au jazz en passant par la pop et la dance music.

Sonic Pi vous est présenté par Sam Aaron et l’équipe Sonic Pi Core. Ce projet multi-plateforme open source est distribué sous licence libre MIT.

Sonic Pi est disponible sous GNU/Linux (voir aussi plus bas ♦ Installation facile sous GNU/Linux), macOS, Raspberry Pi et Windows. Il peut être téléchargé depuis le site du projet et/ou depuis le gestionnaire de logiciels de votre distribution Debian, Ubuntu, Linux MINT, etc. Un PPA (Personal Package Archive) officiel est aussi disponible (mais n’est plus maintenu) pour Ubuntu et ses dérivées-variantes comme Linux MINT et d’autres.

Une fois installé sur votre ordinateur, le logiciel libre Sonic Pi intègre tout ce dont vous avez besoin pour avoir du fun : l’éditeur de codage à la volée (temps réel), des synthétiseurs, des effets, des échantillons de sons, etc…
Vous pouvez sauvegarder votre performance dans un fichier audio et le peaufiner – le modifier, par exemple, avec Audacity

♦ Présentation de Sonic Pi

Initialement, Sonic Pi a été développé pour aider les étudiants à s’engager dans le codage informatique à travers la musique. Lisez comment dans l’article Live Coding Education (en anglais).

Introduction à Sonic Pi par son créateur Sam Aaron (EN)

♦ Documentation et Forum de Sonic Pi

Il existe plusieurs documentations au sujet de Sonic Pi

  • Celles en français incluses dans Sonic Pi (Tutoriel, Exemples, Synths, Fx et Échantillons) disponibles une fois le logiciel et ses composants installés…
  • L’excellent livre Code Music with Sonic Pi (PDF de 110 pages EN) de Sam Aaron
    Le créateur de Sonic Pi, a écrit ce livre pour compléter le tutoriel intégré au logiciel et pour vous aider à démarrer votre carrière de codeur en direct tout en faisant de la musique. Le livre est didactique et d’un abord aisé, et vous gratifie instantanément d’exemples enrichissants conçus pour mettre en évidence plusieurs des choses étonnantes que Sonic Pi vous permet de faire. Quand vous aurez terminé sa lecture, vous serez en mesure de coder des phat bass, des leads de synthé étincelants et de commencer à pratiquer pour votre premier concert de codage en direct… Tout un programme…
  • Rejoignez la sympathique et dynamique communauté Sonic Pi, partagez vos idées et vos oeuvres avec d’autres éducateurs, musiciens et codeurs live, et obtenez de l’aide (EN)…

Sonic Pi : le synthétiseur de musique à codage en direct pour tout le monde !

♦ Sonic Pi en classe informatique

Prêt pour la salle de classe ou chez vous !

Sonic Pi a été conçu, mis en œuvre et développé avec des tests en salle de classe en étroite collaboration avec les enseignants : Introduction pour les enseignants et les passionnés (EN).

Informatique créative – Sonic Pi est livré avec un plan de travail ciblé pour KS3 Computing (niveau collège en France) développé en harmonie avec le nouveau programme d’études britannique. Mais les possibilités de ce logiciel dépasse très largement le cadre scolaire : Schéma de travail pour les leçons de codage (EN).

Codage musical en direct – Sonic Pi est un nouveau type d’instrument de musique qui permet d’explorer de nouvelles voies d’apprentissage passionnantes aussi bien en salle de MAO (Musique assistée par ordinateur) que chez soi et même sur scène : Schéma de travail pour les leçons de musique (EN).

« Sonic Dreams par Meta-eX » – une des dix nouvelles vidéos Pop Pi commandées et produites dans le cadre du Sonic Pi: Live & Coding

♦ Investissez-vous seul·e, en famille, entre ami·e·s en codant de la musique ré·créative dès maintenant !

Programmation en tant que performance musicale : Sonic Pi abaisse la barrière à l’entrée pour une expérience ré·créative avec le codage informatique…

Sonic Pi est un nouveau type d’instrument de musique. Voyez comment vous pouvez l’utiliser pour des performances en direct à partir d’une musique d’ambiance ou pour danser en boîte de nuit…

Dr Sam Aaron & Guitarist Ben Smith
@ Sonic-Pi Live & Coding Toolkit Launch in Cambridge (UK)

♦ Installation +/- facile sous GNU/Linux

Ici l’installation de Sonic Pi v.2.9 (décembre 2015) en français est réalisée sous la distribution libre Linux MINT 18.2 LTS 64-bit. Celle-ci se fait depuis le Gestionnaire de logiciels en tapant sonic-pi dans le champ de recherche, puis en double-cliquant sur chacune des 4 entrées de Sonic Pi.

NB : Dans la Logithèque de Linux Mint 19.x et Ubuntu 18.04.x, Sonic Pi est maintenant disponible en version 2.10, mais toujours pas en version 3.0.x/3.1.x au contraire de macOS, Raspberry Pi et Windows.

Une fois les 4 installations réalisées, Sonic Pi peut se lancer depuis le Menu Mint -> Programmation -> Sonic Pi, ou depuis le Menu Mint -> sonic-pi dans le champ de recherche, ou depuis un Terminal avec la commande sonic-pi.

Sonic Pi 2.9 : Installation sous Linux MINT 18.2 depuis le Gestionnaire de logiciels

Pour ceux qui voudraient avoir la toute dernière version de Sonic Pi, la 3.0.1 sortie en juillet 2017 ou la 3.1 sortie en janvier 2018, il faudra passer par une installation à partir du PPA (Personal Package Archive) officiel de Sonic Pi, plutôt réservée aux utilisateurs expérimentés. Mais à la date de rédaction de cet article, la version la plus récente disponible sur le PPA n’est que la 2.10.0 de mai 2016. Le projet Sonic Pi indique qu’il manque toujours de ressources humaines pour mener à bien la compilation sous GNU/Linux de la dernière version de son application et la rendre disponible dans son PPA. Donc, si vous voulez utiliser la toute dernière version stable de Sonic Pi, vous devrez la compiler vous-même à partir de ses fichiers sources.

Sonic Pi 3.0.0 et 3.0.1 corrigent principalement des bogues, améliore l’interface utilisateur et surtout ouvre l’application sur le monde extérieur en introduisant – la gestion du MIDI In/Out (Musical Instrument Digital Interface), – le support des messages OSC In/Out (Open Sound Control) sur le réseau local, et – la gestion de l’AUDIO (Live In multi-flux, Multi-canaux Out et Buffers), le tout en temps réel. Il va y avoir beaucoup d’heureux. 😎

Sonic Pi 3.1.x apporte principalement toutes les fonctionnalités de la version 3.0.x à Windows. Windows prend désormais en charge toutes les bonnes choses listées dans la version 3.0.x, y compris live_audio, midi, osc et bien plus encore. Voir ci-dessus les notes de version 3.0.1 et 3.0.0 pour plus d’informations.

♦ Premiers pas avec Sonic Pi v.2.9

Comme écrit précédemment, une fois installé sur votre ordinateur, le logiciel libre Sonic Pi intègre tout ce dont vous avez besoin pour avoir du fun : l’éditeur de codage à la volée (temps réel), des synthétiseurs, des effets, des échantillons de sons, etc…
Vous pouvez sauvegarder votre performance dans un fichier audio et le peaufiner – le modifier, par exemple, avec Audacity

Message de Sam Aaron, le créateur du projet Sonic Pi

Bienvenue à Sonic Pi !
Heureusement vous êtes excité pour commencer à faire des sons délirants comme je le suis pour vous le montrer. Ça va être réellement un parcours amusant où vous allez tout apprendre de la musique, de la synthèse, de la programmation, de l’interprétation et plus encore.
Mais attendez, comme je suis impoli ! Je me présente. Je suis Sam Aaron – le gars qui a créé Sonic Pi. Vous pouvez me joindre à @samaaron sur Twitter et je serai plus qu’heureux de vous saluer. Vous pourriez aussi être intéressé par mon orchestre « Live Coding » Meta-eX où j’interprète de la musique avec du code devant un public. Vous pouvez trouver un de mes morceaux Meta-eX dans les exemples.
Si vous avez des observations ou des idées pour améliorer Sonic Pi – Faîtes m’en part s’il vous plaît – les retours sont tellement utiles. Vous ne le savez probablement pas, mais votre idée pourrait être la prochaine fonctionnalité importante !
Finalement, ce tutoriel est divisé en sections groupées par catégories. Même si je l’ai écrit pour avoir une progression d’apprentissage facile du début jusqu’à la fin, sentez-vous vraiment libre de plonger dans l’une ou l’autre section comme cela vous convient. Si vous pensez qu’il manque quelque chose, n’hésitez pas à me le faire savoir et je le prendrai en compte dans une prochaine version.
OK, démarrons…

L’interface utilisateur est convivial et limpide

Organisation de la fenêtre principale de Sonic Pi :
  • en haut de la fenêtre, la barre Menu avec ses boutons Run … Prefs,
  • en haut à gauche la partie Codage live où l’on tape son code,
  • à droite Trace qui liste les actions du code une fois le bouton Run cliqué,
  • en bas à gauche toutes les ressources disponibles telles que TutorielExemples de code – SynthsFx (effets) – Échantillons de sons – Langage,
  • à droite la partie Aide qui est fonction de ce qui est précédemment sélectionné, et
  • au milieu, nous trouvons les 10 buffers (numérotés de 0 à 9) pour gérer ses projets.
  • En cas d’erreur lors de l’exécution du code, une fenêtre apparaîtra à l’intérieur de la fenêtre principale sous la barre des 10 buffers en vous indiquant les causes de l’erreur.

Sonic Pi 2.9 : Interface utilisateur (GUI), Mode clair / Mode foncé (GIF animé)

Le tutoriel intégré et les composants de Sonic Pi

Pour prendre en main Sonic Pi, je vous suggère de commencer par lire le Tutoriel et de copier-coller les bouts de code dans la partie Éditeur de code. Vous pourrez les exécuter avec le bouton Run, les modifier, puis créer vos propres codes. Vous pourrez aussi utiliser les Exemples de code et faire de même que précédemment.
Puis, intéressez-vous aux caractéristiques et paramètres des Synths (synthétiseurs) et Fx (effets) afin de les intégrer correctement dans vos codes. N’oubliez pas au préalable de sélectionner sur la gauche le Synth ou le Fx souhaité.
Enfin, découvrez les Échantillons de sons qui sont mis à votre disposition.
Une fois que vous aurez fini, vous pourrez composer vos propres œuvres musicales…

Mappage Audio automatique : Sonic Pi 2.9 – Système GNU/Linux

System – Capture
Sonic Pi – SuperCollider System – Playback
None ->  in_1  /  out_1  -> playback_1
None ->  in-2  /  out-2  -> playback_2
  ->  in-n  /  out-n  ->  
  ->  in-8  /  out-8  ->  

SuperCollider (un serveur audio temps réel) est la plateforme de synthèse audio et de composition algorithmique utilisée par Sonic Pi 2.9.

Le code est un art et le codeur un artiste !

Pour aller d’un point A à un point B il y a plusieurs chemins possibles (plus court – plus long, plus facile plus difficile, plus beau – plus laid, etc.). Il en est de même pour le codage qu’il soit informatique et/ou musical. Avec un jeu d’instructions donné il est possible de coder la même œuvre de différentes manières. N’hésitez pas à expérimenter les multiples possibilité offertes par Sonic Pi.

Pour en savoir plus, consultez :

Let It Go du film Frozen de Disney

Une fois Sonic Pi (bien) maîtrisé, on peut laisser libre cours à son imagination mais aussi partir d’une partition pour écrire le code ad-hoc. Tous les styles de musique sont possibles du classique au jazz en passant par la pop et la dance music, voire des styles complètement hétéroclites. Il n’y a aucune limite, sinon celle de votre inspiration !

Let It Go du film Frozen de Disney en version courte pour piano

Le code de Let It Go – Disney’s Frozen – Sonic Pi 2.9 Code (Piano short version avec le synth :piano intégré) que vous pouvez copier-coller dans l’éditeur de code de l’application.

Fichier son *.wav généré par Sonic Pi importé dans Audacity pour ajout de réverbération et conversion au format libre *.ogg

Une fois votre code écrit, joué et peaufiné avec Sonic Pi, pour enregistrer votre œuvre au format *.wav, appuyez sur le bouton Rec (qui se met à clignoter), lancez votre code avec le bouton Run et à la fin de celui-ci appuyez à nouveau sur le bouton Rec. Une fenêtre s’ouvre vous demandant d’enregistrer le fichier, choisissez le dossier et le nom du fichier avant de valider l’opération.

Puis, vous pourrez lire ce fichier audio directement avec votre lecteur habituel ou le retravailler avec un logiciel d’édition audio comme Audacity. C’est ce que j’ai fait pour ajouter de la réverbération et le convertir au format libre Ogg Vorbis (*.ogg).

Avec Audacity, des opérations plus larges sont aussi envisageables comme appliquer toutes sortes d’effets, faire du copier-couper-coller de pistes, changer la hauteur de la tonalité, enregistrer sa voix ou un instrument sur la bande son, etc.

♦ Sonic Pi v.3.2.2

La version 3.2.2 a été publiée le 5 avril 2020. La 3.3 est dans les tuyaux ici.

Par rapport à la version 2.10 (publiée le 15 avril 2016), cette nouvelle mouture 3.2.2 -sortie 4 ans plus tard- corrige un nombre certain de bogues et délivre de nouvelles et très utiles fonctionnalités comme :
  • Gestion des messages MIDI (Musical Instrument Digital Interface) IN/OUT (internes/externes – matériel/logiciel)
  • Gestion des messages OSC (Open Sound Control) IN/OUT sur le réseau local
  • Gestion Audio : Audio en direct – pour obtenir plusieurs flux Audio, Sortie Audio multicanal – pour sortir plusieurs flux Audio, Tampons Audio – pour l’enregistrement interne de l’Audio permettant la création de boucles
  • Nouveaux échantillons sonores
  • Support de nouveaux formats Audio : FLAC, Ogg Vorbis
  • Multitude de nouveaux Synthétiseurs et Effets FX
  • Nouvelles fonctions (Fns)
  • Traductions additionnelles
  • Optimisation de l’interface graphique utilisateur (GUI)
  • Des fuites de mémoire (RAM) ont été traquées et corrigées
  • Une meilleure compatibilité avec Raspberry Pi OS, macOS et Windows
  • Désormais les versions pour macOS et Windows sont signées
  • Et beaucoup-beaucoup d’autres choses intéressantes… Consultez l’historique des publications

Installation sur les distributions GNU/Linux

Sonic Pi pour GNU/Linux (à l’exception de Raspberry Pi OS – ex Raspbian) n’est actuellement pas/plus pris officiellement en charge par ses développeurs par manque de ressources humaines. Pour ces distributions ce sera donc du cas par cas.

Manjaro 20.x – une rolling release basée sur Arch Linux

Elle me semble être la plus à même de donner entière satisfaction aux libristes/musiciens/codeurs, quel que soit l’environnement de bureau utilisé (Xfce, KDE Plasma, Gnome, Cinnamon, MATE, etc.). Sonic Pi v.3.2.2 est directement disponible (fichiers binaires) pour installation depuis le dépôt officiel Community / groupe Pro-Audio. Cette application libre de Live Coding fonctionne « Out-of-the-Box » !

Ubuntu 20.04 LTS et… ses variantes/dérivées directes

Vous pouvez télécharger ce fichier .DEB (binaire) de Sonic Pi 3.2.2 ICI. Le fichier a été conçu et testé que sur Ubuntu 20.04 (64-bit) et il est peu probable de fonctionner sur d’autres versions d’Ubuntu (plus anciennes/récentes) ainsi que sur d’autres distributions GNU/Linux. Vous l’utilisez à vos propres risques. Voir le fichier README pour les instructions d’installation.

Pour la majorité des autres distributions

Nous y trouvons malheureusement encore Sonic Pi qu’en version +/- 2.10 (de 2016 !). Sur celles-ci pour avoir la v.3.2.2 (de 2020), il faudra la compiler soi-même (plutôt réservé aux libristes expérimentés) à partir des fichiers sources de Sonic Pi et de ses dépendances ! Voir les instructions ICI. Gardez bien en mémoire que cette procédure de construction sur GNU/Linux est un travail en cours et est très susceptible de changer. Cela peut ne pas fonctionner correctement dans certains cas.

Sonic Pi 3.2.2 : Interface utilisateur (GUI) en Mode foncé sous Manjaro 20.2 (Arch Linux)

Le code de Let It Go – Disney’s Frozen – Sonic Pi 2.9 Code (Piano short version avec le synth :piano intégré) que j’avais écrit pour Sonic Pi v.2.9 (voir plus haut) est directement réutilisable sous la dernière version 3.2.2 et fonctionne très bien.

Attention : L’utilisation du serveur de son temps réel JACK (JACK v.2 de préférence) est obligatoire pour faire fonctionner SuperCollider qui est utilisé par Sonic Pi v.3.x comme plateforme de synthèse Audio et de composition algorithmique. Si JACK n’est pas fonctionnel avant son lancement, Sonic Pi se fermera et vous affichera une petite fenêtre d’avertissement avec des messages d’erreurs !
Vous pouvez (devriez) aussi utiliser QJackCtl (une interface graphique Qt pour JACK Audio Connection Kit) disponible dans votre Gestionnaire de logiciels qui permet de configurer graphiquement le daemon ‘jackd’ et de le démarrer/arrêter.

Correspondance Notation française / anglaise

# = +1/2 T ⇑
->  Une Octave = 8 Notes = 12 demi-Tons  <-    
ENglish A B C D E F G A B C
FRançais La Si Do Mi Fa Sol La Si Do
b = -1/2 T ⇓
    ->  Une octave = 8 notes = 12 demi-tons  <-
Correspondance Note musicale / Note MIDI
note # 58 60 61 63 65 66 68 70 72 73
NOTE La2/A2 Si/B Do3/C3 Ré/D Mi/E Fa/F Sol/G La3/A3 Si/B Do4/C4
MIDI …57 59 60 62 64 65 67 69 71 72…
note b 56 58 59 61 63 64 66 440 Hz 70 71

Et maintenant, à vous de jouer
en Live du code et de la musique.
ENJOY & HAVE FUN with SONIC PI!