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.
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.
{ 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.
{ SinOsc.ar * Env.perc.ar(2) }.plot;
// Plot over et andet tidsinterval med et argument
{ SinOsc.ar * Env.perc.ar(2) }.plot(0.100);
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.
{ 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.
Endelig kan du ændre opdateringsfrekvensen, hvis der er behov for at justere yderligere.