Gå til indholdet

Tips og tricks til UGens

Med UGens åbner der sig en verden af muligheder for at skabe, forme og analysere lyd. Herunder finder du mine tips og tricks, der gør det lettere at eksperimentere og forstå, hvad der egentlig sker i dine signalveje.

Ndef – UGens' bedste ven

Når du eksperimenterer med forskellige UGens og deres indstillinger, kan det være besværligt hele tiden at skulle stoppe og starte synths manuelt. Her kommer Ndef ind i billedet – den fungerer på samme måde for UGens, som Pdef gør for patterns. Med Ndef kan du hurtigt ændre og genstarte din lyd uden at skulle rydde op i gamle synths eller bruge globale variabler.

Let eksperimentering med Ndef
Ndef(\minSynth, { SinOsc.ar(440) * 0.1 }).play;

// Prøv nu at ændre UGens eller parametre
Ndef(\minSynth, { Saw.ar(220) * 0.1 });
Ndef(\minSynth, { PinkNoise.ar * 0.1 });

Når du kører koden igen med nye parametre, opdateres lyden med et kort crossfade. Ndef kan mange andre tricks, såsom automatisk etablering af grafiske brugerflader til test. Det overlades til nysgerrige læsere at opsøge dette emne på egen hånd.

Visualisér output med scope og freqscope

SuperCollider har indbyggede værktøjer til at visualisere både tids- og frekvensdomænet:

  • Brug s.scope til at åbne et oscilloskop, der viser signalets bølgeform.
  • Brug s.freqscope til at se signalets spektrale indhold.
Visualisering af signal
{ LFSaw.ar(220) * 0.1 }.play;
s.scope;      // Oscilloskop
s.freqscope;  // Frekvensanalyse

Plot outputtet med .plot

Hvis du vil se præcis, hvordan et signal eller en UGen udvikler sig over tid, kan du bruge .plot-method'en på en UGen-funktion. Dette er nyttigt til at inspicere signaler fra LFO'er, oscillatorer, og andre UGens.

Plot af UGen-funktioner
{ SinOsc.ar * Env.perc.ar(2) }.plot;

// Plot over et andet tidsinterval med et argument
{ SinOsc.ar * Env.perc.ar(2) }.plot(0.100);

Plot: En sinustones amplitude moduleres af en perkussiv envelope, 10 ms
Plot: En sinustones amplitude moduleres af en perkussiv envelope, 10 ms

Plot: En sinustones amplitude moduleres af en perkussiv envelope, 100 ms
Plot: En sinustones amplitude moduleres af en perkussiv envelope, 100 ms

Følg værdierne med .poll

Når du vil følge med i, hvilke værdier en UGen genererer i realtid, kan du bruge UGen-method'en .poll. Den måler et signal og skriver dets værdi i SuperColliders post window, så du kan se, hvad der sker undervejs.

Overvågning af signal med .poll
{ LFNoise1.kr(1).poll }.play;
// UGen(LFNoise1): -0.86944
// UGen(LFNoise1): -0.695801
// UGen(LFNoise1): -0.522162
// UGen(LFNoise1): -0.348523

Du kan også give .poll en label, så du lettere kan skelne mellem forskellige signaler.

Poll med label
{ SinOsc.kr(0.5).poll(label: "LFO:") }.play;

Endelig kan du ændre opdateringsfrekvensen, hvis der er behov for at justere yderligere.

.poll-argumenter
// Gør outputtet genkendeligt
{ SinOsc.kr(0.5).poll(label: "LFO: ") }.play;

// Opdater 5 gange pr. sekund
{ SinOsc.kr(0.5).poll(trig: 5) }.play;