I3) SuperCollider

Le couteau suisse de la synthèse

Où se situe cet article ?

Cet article fait partie de la série Introduction (I). Il présente SuperCollider, l’environnement de synthèse audio cible du projet BP2SC (Bol Processor to SuperCollider, le transpileur qui convertit des grammaires BP3 en code SuperCollider). L’article I1 explique comment BP3 (Bol Processor 3, voir I2) et SuperCollider se rejoignent.


Un langage de programmation qui fait du son

SuperCollider n’est pas un logiciel de musique ordinaire. Ce n’est pas un DAW (Digital Audio Workstation, station de travail audio numérique) avec une timeline. Ce n’est pas un synthétiseur avec des boutons. C’est un langage de programmation dédié au son.

Vous écrivez du code. Le code produit de la musique.

 

{ SinOsc.ar(440) * 0.1 }.play;

 

Cette ligne génère un la 440 Hz. Simple. Mais derrière cette simplicité se cache une puissance considérable.


Un peu d’histoire

SuperCollider naît en 1996, créé par James McCartney. À l’époque, les logiciels de synthèse sont soit très limités, soit propriétaires et coûteux.

McCartney veut autre chose : un environnement ouvert, flexible, où le musicien-programmeur a un contrôle total.

En 2002, SuperCollider devient open source. La communauté explose. Aujourd’hui, il est utilisé par :

  • Des compositeurs électroacoustiques
  • Des live coders (performance algorithmique en temps réel)
  • Des chercheurs en acoustique et MIR (Music Information Retrieval, recherche d’information musicale)
  • Des artistes sonores et installateurs
  • Des enseignants en informatique musicale

Architecture : serveur + langage

SuperCollider a une architecture unique : deux programmes distincts qui communiquent.

scsynth : le serveur audio

C’est le moteur de synthèse. Il génère le son, mixe les signaux, applique les effets. Il est optimisé pour le temps réel — latence minimale, stabilité maximale.

Le serveur ne sait rien de la « musique ». Il reçoit des instructions : « crée un oscillateur », « change sa fréquence », « arrête ce son ».

sclang : le langage

C’est l’interpréteur. Vous écrivez du code sclang, il envoie des commandes au serveur.

sclang est un langage orienté objet, inspiré de Smalltalk (un langage de programmation pionnier où tout est objet et toute interaction passe par l’envoi de messages). Il a des classes, des méthodes, de l’héritage. Mais surtout, il a des abstractions spécifiques à la musique.

Pourquoi cette séparation ?

Robustesse. Si votre code plante, le serveur continue de tourner. Vous pouvez corriger et relancer sans interruption du son.

C’est crucial pour le live coding — personne ne veut un silence gênant en plein concert parce qu’une parenthèse manque.


Les Patterns : composer par abstraction

La vraie puissance de SuperCollider pour la composition, ce sont les Patterns.

Un Pattern décrit comment générer une séquence, pas la séquence elle-même.

 

// Une séquence de notes
Pbind(
    \midinote, Pseq([60, 62, 64, 65, 67], inf),
    \dur, 0.25
).play;

 

Ce code joue do-ré-mi-fa-sol en boucle, chaque note durant 0.25 seconde.

Pourquoi c’est puissant

Comparez avec MIDI (Musical Instrument Digital Interface, voir M1) :

  • MIDI : liste fixe d’événements avec timestamps (horodatages)
  • Patterns : description abstraite, générée à la volée

Les Patterns peuvent être :

  • Aléatoires : Prand([60, 62, 64], inf) — notes au hasard
  • Conditionnels : changer selon le contexte
  • Imbriqués : patterns de patterns
  • Modifiés en temps réel : sans arrêter la musique

Pdef : patterns nommés et modifiables

 

// Définir un pattern nommé
Pdef(\melody, Pbind(\midinote, Pseq([60, 64, 67], inf), \dur, 0.5));

// Le jouer
Pdef(\melody).play;

// Le modifier PENDANT qu'il joue
Pdef(\melody, Pbind(\midinote, Pseq([72, 71, 69, 67], inf), \dur, 0.25));

 

La mélodie change instantanément. Pas de rechargement, pas d’interruption.

C’est exactement ce dont nous avons besoin pour connecter BP3 à SuperCollider.


Live coding : coder sur scène

SuperCollider est l’un des outils phares du live coding (programmation en direct) — cette pratique où le musicien écrit du code en temps réel devant le public.

Des collectifs comme Toplap, des festivals comme Algorave, des artistes comme Alex McLean ou Thor Magnusson utilisent SuperCollider sur scène.

Le code devient partition. L’écran devient instrument.

 

// Un beat minimal, modifiable en live
(
Pdef(\kick, Pbind(\instrument, \kick, \dur, 1));
Pdef(\hat, Pbind(\instrument, \hat, \dur, 0.25));
Pdef(\kick).play;
Pdef(\hat).play;
)

 

Changez \dur, 0.25 en \dur, 0.125 et le hi-hat accélère. En concert. Devant 500 personnes.


Synthèse : des oscillateurs aux granulaires

SuperCollider n’est pas limité aux samples (échantillons sonores préenregistrés) ou aux synthés prédéfinis. Vous construisez vos propres instruments.

UGens : les briques de base

Les Unit Generators (UGens) sont les primitives :

  • SinOsc : oscillateur sinusoïdal
  • Saw : onde en dent de scie
  • LFNoise0 : bruit basse fréquence
  • RLPF : filtre passe-bas résonant
  • Des centaines d’autres…

Construire un son

 

(
SynthDef(\pad, { |freq = 440, amp = 0.1|
    var sig = Saw.ar(freq) + Saw.ar(freq * 1.01);
    sig = RLPF.ar(sig, freq * 2, 0.3);
    sig = sig * EnvGen.kr(Env.perc(0.01, 2), doneAction: 2);
    Out.ar(0, sig * amp ! 2);
}).add;
)

Synth(\pad, [\freq, 220]);

 

Deux oscillateurs légèrement désaccordés, filtrés, avec une enveloppe. Un pad basique mais construit de zéro.


Pourquoi SuperCollider pour BP2SC ?

Nous aurions pu cibler d’autres environnements. Pourquoi SuperCollider ?

1. Les Patterns préservent la structure

BP3 exprime des structures musicales. Les Patterns de SuperCollider aussi. La traduction est naturelle :

  • Règle BP3 → Pdef
  • Séquence → Pseq
  • Choix aléatoire → Prand
  • Polymétrie → durées calculées

2. Modification temps réel

Une grammaire BP3 transpilée vers SuperCollider (voir B7) devient modifiable en live. Vous pouvez :

  • Remplacer un motif
  • Transposer
  • Changer le tempo
  • Tout ça sans arrêter la musique

3. Écosystème riche

SuperCollider a 25+ ans de développement. Des milliers de SynthDefs (définitions de synthétiseurs réutilisables), d’extensions, de tutoriels. Notre code s’intègre dans cet écosystème.

4. Open source

Pas de licence propriétaire, pas de dépendance à une entreprise. SuperCollider existera tant que sa communauté le maintiendra.


Commencer avec SuperCollider

Installation

SuperCollider est gratuit et disponible sur :

Premier son

  1. Lancez SuperCollider
  2. Tapez : { SinOsc.ar(440) * 0.1 }.play;
  3. Sélectionnez la ligne
  4. Appuyez sur Ctrl+Enter (ou Cmd+Enter sur Mac)
  5. Vous entendez un la 440 Hz
  6. Appuyez sur Ctrl+. pour arrêter

Ressources

  • Documentation officielle : doc.sccode.org + Help intégré (Ctrl+D sur un mot)
  • The SuperCollider Book : MIT Press — référence complète
  • Eli Fieldsteel : tutoriels YouTube — excellente série pédagogique
  • sccode.org : sccode.org — exemples de la communauté

Conclusion

SuperCollider est plus qu’un outil — c’est une philosophie. Le code comme expression musicale. La programmation comme composition.

C’est pourquoi nous l’avons choisi comme cible pour BP2SC. Il partage avec BP3 cette vision : la musique comme structure formelle, manipulable, générative.

Dans le prochain article, nous verrons comment ces deux mondes se rejoignent dans notre démarche.


Dans cette série

  1. I2 — Bol Processor : 40 ans d’innovation
  2. I3 — SuperCollider : le couteau suisse de la synthèse ← vous êtes ici
  3. I1 — Pourquoi j’ai créé un pont entre deux mondes

roomi-fields explore l’intersection entre grammaires musicales formelles et synthèse modulaire.