Gå til indholdet

Eksekvering af kildekode

Et program består af nedskrevne instrukser (på engelsk statements), som computeren skal udføre. I SuperCollider kan vi få computeren til at udføre instrukser ved at eksekvere udvalgte dele af kildekoden. Man eksekverer kildekode ved at taste Ctrl-Enter på PC eller Cmd-Enter på Mac. Prøv det selv:

  • Indtast linjerne herunder i et SuperCollider-dokument.
  • Sæt cursoren på en af linjerne og tast Ctrl-Enter (PC) eller Cmd-Enter (Mac).
  • Iagttag derefter outputtet i SuperCollider's "Post window" (som ved et nyinstalleret setup vil befinde sig til højre i skærmbilledet).
Eksekvering af kildekode, linje for linje
5 + 10;
Scale.major;
rrand(0, 100);
"Vekseldominant".postln;

Flere instrukser ad gangen

Hvis vi gerne vil gøre mere end én ting ad gangen, kan vi adskille vores instrukser ved hjælp af semikolon.

Adskillelse af instrukser ved hjælp af semikolon
"Et fantastisk tal:".postln; rrand(0, 100).postln;

Hvis vi udelader semikolon, kan SuperCollider ikke forstå hvor den ene instruks stopper og hvornår den næste starter. Da vi ofte for overskuelighedens skyld skriver én instruks pr. kodelinje, er det en god tommelfingerregel - med nogle få vigtige undtagelser - at afslutte kodelinjer med et semikolon.

Ofte er det en god ide at fordele instrukserne over flere linjer. Hvis vi vil have SuperCollider til at udføre flere linjer med instrukser umiddelbart efter hinanden, kan vi gøre dette ved at afslutte de enkelte linjer med semikolon og omkranse linjerne med parenteser. Dette kaldes en kodeblok. Kodeblokken eksekveres ved, at man sætter cursoren på en af linjerne og trykker Ctrl/Cmd-Enter. Det betyder ikke noget præcis hvilken linje, bare cursoren befinder sig et sted mellem de yderste parenteser.

En kodeblok
(
"Endnu et fantastisk tal:".postln;
rrand(50, 100).postln;
)

I denne bogs kodeeksempler sættes der kun i få tilfælde parenteser omkring kodeblokke. Læseren skal altså selv sætte parenteser på relevante steder, hvis der kopieres kildekode fra bogens eksempler. Heldigvis kan SuperCollider let indsætte matchende parenteser omkring markerede udsnit af kildekoden1.

Læg i øvrigt mærke til hvordan begge linjer i kodeblokken ovenfor bliver udført så hurtigt efter hinanden, at det i praksis sker samtidigt, men dog i den noterede rækkefølge.

Fut i lydserveren

For at kunne bruge programmering som et redskab til musikalsk komposition og lyddesign skriver vi ofte kildekode, som genererer lyd. I de tilfælde skal vi først starte SuperColliders lydserver. Den mest enkle måde at starte lydserveren på er at køre følgende linje.

Start af SuperColliders lydserver
s.boot;

Alternativt kan man starte lydserveren på andre måder:

  • Tastaturgenvejen Ctrl/Cmd-B.
  • Gå via menuen "Server" øverst i vinduet
  • Højreklik på tallene i nederste højre hjørne ud for "Server".

Bemærk, at når lydserveren er bootet, bliver disse tal i nederste højre hjørne grønne. Når serveren bootes ser vi desuden en del tekstbeskeder til højre i SuperColliders post window, herunder hvilket lydkort, lydserveren er forbundet med.

Boot af SuperColliders lydserver
Boot af SuperColliders lydserver

Derefter kan vi afspille lyde på serveren. Tast Ctrl/Cmd-Punktum for at slukke lyden.

Et par simple lyde
{ SinOsc.ar(440) * 0.1 }.play;
Pbind(\degree, [0, 2, 4]).play;

Hvis din server ikke booter: Skulle din server mod forventning ikke starte, kan det ofte skyldes indstillingerne i lydkortet eller problemer med lydkortets drivere. Her må du konsultere dokumentationen for det pågældende hardware og styresystem. Du kan også skifte til et andet lydkort eller en anden driver - se hvordan i afsnittet Audio device selection i SuperColliders dokumentation, som også omtaler specifikke opmærksomhedspunkter ved de forskellige platforme (Mac, Linux og Windows).

Start af lydserveren på Mac med 'sample rate mismatch'

På Mac sker det jævnligt, at styresystemet indstiller input og output til to forskellige samplerates, hvis man bruger computerens indbyggede lydkort. Dette er imidlertid ikke kompatibelt med SuperColliders lydserver, hvilket man kan se, hvis man i post window får fejlmeddelsen "Sample rate mismatch". I den situation er man nødt til at justere på styresystemets indstillinger, og det er heldigvis ganske enkelt: Kør nedenstående for at åbne programmet "Audio MIDI Setup" og indstil input og output til den samme samplerate (fx 44.1 kHz eller 48 kHz).

Løsning til 'sample rate mismatch'-fejl på Mac
// Linjen herunder åbner programmet "Audio MIDI Setup"
"open -a 'Audio MIDI Setup'".unixCmd;

  1. SuperColliders IDE kan indstilles til automatisk at indsætte matchende parenteser ved at sætte flueben ud for Auto insert matching parentheses, brackets, quotes under menuen Edit > Preferences > Editor > Behavior