SuperCollider : PrEmiers

SuperCollider :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register
Présentation < Index > Le langage, suite


Première approche de l'interface (mac)


Au lancement de l’application, le sc-client (sclang) s’ouvre.
La fenêtre Untitled est une console (ou Post Window), où vont s’afficher des informations liées à l'initialisation du logiciel.
On ne peut pas la fermer, elle affichera les messages venant du langage ou du serveur (notament les messages d’erreur), ainsi que tout résultat d’une expression évaluée dans le langage.
On voit aussi, en bas à gauche deux petites fenêtres permettant le contrôle de deux serveurs, un local (situé sur la même machine que le client) et un internal (idem, si ce n'est que le lien est encore plus fort, client et serveur partage la même mémoire, ils ne sont pas dissociés, quand un plante, l'autre également):

La fenêtre local permettra le contrôle d’un serveur lancé sur votre propre ordinateur, mais découplé du langage, contrairement à internal, serveur associé au langage.
L'actionnement du bouton Boot (ou la barre espace, si la fenêtre est sélectionnée) permet de démarrer ce serveur. En cas de succès, l’affichage localhost devient rouge, le serveur est lancé.

Le bouton Record permet l’enregistrement immédiat de la synthèse, sur un fichier dans le dossier “Recording” de l’application Supercollider.
Notez que par défaut l’enregistrement se fera en 32 bits virgule flottante.



Nouveau Document, évaluation du code


(Créez un nouveau document avec Cmd-N)

sc-lang est un interpréteur:

On peut évaluer des expressions directement et obtenir un résultat immédiat.

Par exemple, placez vous à la fin de la ligne suivante, et pressez sur <Enter>:
2 + 2;

Le résultat s’affiche dans la fenêtre Untilted ( = Post Window).

Pour évaluer plusieurs expressions ensemble, ou plusieurs lignes de code, celles- ci doivent être sélectionnées ensemble, avant d’appuyer sur <Enter> On peut aussi entourer cet ensemble avec des parenthèses, double-cliquer avant ou après une de ces parenthèses, puis <Enter>:
(
"premiere ligne".postln;
"deux plus deux font : ".post; (2+2);
)

Remarque: post et postln sont des fonctions ou méthodes (en jargon orienté objet) qui permettent l'affichage dans la console - très utile pour trouver des erreurs.

Les commentaires

on utilise les caractères suivants :
// pour une ligne de commentaire
 
/*
pour
plus
d'une
ligne
de commentaire
*/

Arithmétique de base

On trouve les opérateurs comme +, - , *, /

Les expressions


Une expression est une séquence de code valide , comparable à une phrase.
Dans sc-lang, les expressions sont séparées par un point-virgule:
(
(1+2).postln ;
(2+3).postln;
)


Les chaînes de caractères ("Strings")


On y stocke des caractères alphanumériques.
Elles sont notamment utilisées :
- pour afficher des infos à l'appel d'une fonction
- pour désigner le chemin vers un fichier son
- comme clé ou entrée d'un dictionnaire (voir plus loin)

Attention, les simplequotes ' sont réservés pour une autre utilisation.

Les symboles

\mySymbol, ou 'mySymbol'

"jmc" == "jmc" // test l'égalité booléenne des valeurs
\jmc == \jmc

"jmc" === "jmc"  // test l'identité des ces deux objets en mémoire vive (RAM)
\jmc === \jmc

L'exemple précédent montre que la différence entre chaînes de caractères et symboles est subtile. Deux symboles de même contenu font toujours référence au même objet qui est consigné dans une table. Cela permet d'économiser de la mémoire et d'optimiser des temps d'accès.

Les variables


Elles permettent de nommer, de référencer un élément de la programmation, comme un objet, une fonction, etc, et de lui donner ainsi un point d’accès, permettant son utilisation.
(
var maVariable;   // dans Sc il faut déclarer ses variables
maVariable = 4;
maVariable * 2 ; // évaluer
)


Il existe aussi 26 variables globales, correspondant aux lettres de l’alphabet. Elles ne nécessitent pas de déclaration, et ont un champ d’action global (notion de ‘scope’ = champ )
(
a = 14; b = 16;
a+b;
)


Du son !

Le lancement de la synthèse se fait en évaluant une expression, ou un ensemble d’expressions. ! au préalable, il faut lancer le serveur.

s = Server.internal.boot; //lancement du serveur
 // s.boot;
//mac : se placer à la fin de la ligne et presser sur  <ENTER>
{ SinOsc.ar([200, 202] , 0, 0.3) }.play;
{SinOsc.ar([400, 401], 0, 0.1)}.play;


Remarque :: La fenêtre de message indique alors quelque chose comme Synth(”temp770644280” : 1000)
Pour stopper la synthèse, pressez sur Cmd-. (point)

dans le cas d’un ensemble d’expression, se placer juste avant ou après le groupe, délimité par des parenthèses, double-cliquer, et presser sur <ENTER> :

// Utilisation de variables pour stocker des nombres et une "sémantique"
(
var volume = 0.2;
var transpose = 2;
{ SinOsc.ar([200, 202] * transpose, 0, volume) }.play; //utilisation de variable
)
// Remarque :: si l'on tente de modifier les variables volume et transpose, rien ne se passe

// Utilisation de variables pour stocker des éléments de la chaîne (ou graphe) de synthèse

(
{var source, centrefreq=400,filtre;                                         // il faut déclarer ses variables
source= WhiteNoise.ar(10);                                                  // définit une source de bruit blanc
filtre= Resonz.ar(source,freq:centrefreq, rq:0.01, mul:3);             // définit une variable qui contient un filtre très serré
filtre.poll}.play                           // Sc évalue l'ensemble mais joue la "dernière ligne" (la dernière expression ou le dernier élément de la chaîne)
)

{WhiteNoise.ar(1)}.play;


La fonction poll permet de suivre l'amplitude d'un signal (pour savoir par exemple si il "sature" càd, dépasse les valeurs +1, -1)
on stoppe la synthèse en lançant la commande ‘stop’ mac: Command - .

Présentation < Index > Le langage, suite

There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.3
Page was generated in 0.1369 seconds