Hello world

Précédent Sommaire Suivant

Traditionnellement, les tutoriels sur les langages de programmation débutent par l’utilisation de la commande d’affichage avec comme paramètre d’entrée Hello world. Mais SuperCollider est destiné à l’univers sonore qui dans la tradition occidentale s’accorde sur un diapason. C’est pourquoi, la première commande de cette présentation produira une onde sinusoïdale d’une fréquence de 440 Hz (la 3). Après avoir ouvert l’interface de programmation et lancé le serveur par l’onglet Language, vous pouvez copier ces commandes.

{SinOsc.ar}.play;
// La fréquence par défaut de cette commande est 440.

{SinOsc.ar(mul: 0.7)}.play;
// Pour modifier l’amplitude de l’onde.

{SinOsc.ar(69.midicps, mul: -6.dbamp)}.play;
// Si on préfère utiliser la numérotation midi des hauteurs et les décibels pour l’amplitude.

Pour les exécuter, vous devez positionner le cursus sur une ligne et appuyer sur Majuscule + Entrée. Pour arrêter le son, c’est Ctrl + . (n’oubliez la touche Majuscule si vous utilisez la touche du point virgule). Pour aller plus loin sur l’interface de programmation, consultez sa documentation.

(
{
// Déclaration de deux variables de contrôle.
var hauteur, amplitude;

// Affectation de mes deux variables.
hauteur = MouseX.kr(60.midicps, 72.midicps);
amplitude = MouseY.kr(-30.dbamp, -6.dbamp);

SinOsc.ar(hauteur, mul: amplitude);
}.play ;
)

Placez votre cursus à l’intérieur des deux parenthèses et appuyer sur Ctrl + Entrée. Pour grouper différentes expressions, un environnement de travail est délimité par des parenthèses (Majuscule + Entrée exécute une ligne ou la sélection alors que Ctrl + Entrée exécute l’environnement de travail), où l’on peut déclarer des variables. Celles-ci permettent de stocker des valeurs ou des objets durant l’exécution d’un programme. Il est nécessaire de choisir des noms pertinents. Dans ce programme, elles ne sont pas indispensables, il peut s’écrire comme cela :

{SinOsc.ar(MouseX.kr(60.midicps, 72.midicps), mul:MouseY.kr(-30.dbamp, -6.dbamp))}.play

Mais ce repliement syntaxique devient rapidement illisible surtout lorsque l’on reprend des anciens codes. De fait, il est préférable de structurer clairement son code, d’ajouter des commentaires et d’utiliser des variables comme dans le précédent exemple.

// Un commentaire
/*
Plusieurs lignes
de commentaires.
*/

// Exemple d’indentation.
Une commande
une sous commande
une autre sous commande;
Une autre commande;

De plus, chaque expression se termine par un point virgule. L’interpréteur est stricte et il n’accepte aucune familiarité. Pour ne pas commettre d’erreur de syntaxe, on peut d’abords poser la structure de sa commande et son point virgule, effectuer son indentation, puis ajouter ses paramètres.

// 3 étapes d’écriture pour ne pas commettre d’erreur de syntaxe.
SinOsc.ar();

SinOsc.ar(
,
mul :
);

SinOsc.ar(
MouseX.kr(60.midicps, 72.midicps),
mul : MouseY.kr(-30.dbamp, -6.dbamp)
);

Ces remarques semblent facultatives, mais elles vous permettront de vous concentrer sur la création sonore plutôt que sur des erreurs de syntaxes, de lire et de comprendre plus rapidement un ancien code ou de trouver plus facilement une erreur de programmation (un bug).

L’exemple précédent montre SuperCollider traitant deux types de signaux, le contrôle (par la souris) et l’audio (par une onde sinusoïdale). Le chapitre suivant se concentre sur cette différence.

Sébastien Clara – Avril 2013

Précédent Sommaire Suivant
Publicités