Programmeren


Shortcuts

Er zijn een aantal toetsenbordcombinaties die nuttig zijn om te onthouden. In het geval van MacOS gebruik je cmd, in het geval van Windows & Linux ctrl

Uitvoeren van de code

Als je op cmd/ctrl + enter drukt wordt de regel code waar op dat moment je cursor staat uitgevoerd. Als je meerdere regels code in een keer wil uitvoeren moet je die regels selecteren. Er is ook een manier om dat makkelijker te doen, als de regels code die je wilt uitvoeren omsloten zijn door ( ) worden deze regels uitgevoerd als je ergens binnen deze regels staat met je cursor en cmd/ctrl + enter drukt.

Sommetjes & console

Net als in elke andere programmeertaal kan je getallen bij elkaar optellen, van elkaar aftrekken, vermenigvuldigen en delen. Houd er wel rekening mee dat Supercollider geen voorrangsregels kent zoals we die in andere talen en uit de wiskunde kennen. Vermenigvuldigen gaat dus niet voor optellen. Zet altijd haakjes om expressies heen als er verwarring kan ontstaan.

1 + 2 * 3;
//je zou 7 verwachten maar SC berekent dit als (1 + 2) * 3

Typ de volgende code in en druk op cmd/ctrl+enter:

1 + 2;

Je zult nu zien dat het resultaat in het post window verschijnt. In het post window verschijnt altijd het resultaat van de laatst uitgevoerde regel code. Als je de volgende code uitvoert zul je zien dat alleen het laatste antwoord, 2, in het postwindow verschijnt:

(
    1-2;
    3/4;
    5%3;
)

Wil je nu toch dat de andere resultaten ook zichtbaar zijn dan moet je .postln achter de code zetten:

(
    1-2.postln;
    3/4.postln;
    5%3.postln;
)

Commentaar

Net als bij JavaScript zet je commentaar bij je code door het gebruik van een dubbele forward slash

//dit is commentaar

Meerdere regels commentaar gaat ook op dezelfde manier als bij JavaScript:

/* dit is commentaar
   dit ook
*/
"en dit niet meer".postln;

Variabelen

Er zijn twee manieren om globale variabelen te definiรซren binnen Supercollider. Je kunt de letters a t/m z gebruiken. Dit is voornamelijk handig bij prototyping maar bij grotere stukken code wordt je code er snel onleesbaar door dus dat wordt afgeraden. Daarnaast is bijvoorbeeld de letter s al in gebruik om de server mee aan te sturen.
Een betere manier om globale variabelen te declareren is door de tilde ~ te gebruiken voor een woord:

~som = 3 + 5;
~som.postln;

Binnen een blok, functie of synthdef kun je met variabelen werken als je ze eerst declareert:

(
  var sampleRate=44100;
  sampleRate.postln;
)