System Failure SuperCollider



un mix di 5 SinOsc pannati random e modulati da LFO sinusoidali

(
{
Mix.ar(
Array.fill(5, // not too many values, could crash
{Pan2.ar(
SinOsc.ar(SinOsc.ar(1/10, rrand(0, 6.0), 200, 500)),
1.0.rand)}
)
)*0.02
}.play
)


(
{
var trig, out, delay;
trig = Impulse.kr(6); // trigger rate
out = Blip.ar(
TRand.kr(48, 72, trig).midicps, // range, in midi, of pitches
TRand.kr(1, 12, trig), // range of timbre
max(0, TRand.kr(-0.5, 0.4, trig)) // amplitudes
);
out = Pan2.ar(out, TRand.kr(-1.0, 1.0, trig));
out = out*EnvGen.kr(Env.perc(0, 1), trig);
out = Mix.ar({out}.dup(6))*0.2;
delay = CombL.ar(out, 2.0, 4/6, 6);
out + delay
}.play
)


Blip         generatore di impulsi a banda limitata

Blip.ar(freq, numharm, mul, add)

TRand        generatore di numeri random a innesco

TRand.kr(lo, hi, trig)
TRand.ar(lo, hi, trig)

Genera un valore float casuale nella distribuzione uniforme da lo a hi
ogni volta che il trigger passa da valori non positivi a valori positivi

EnvGen              generatore di evelope

Inherits from: Object : AbstractFunction : UGen

Gli envelope sono istanze della classe Env. Vedi la classe Env per maggiori informazioni. Gli argomenti levelScale, levelBias e timeScale vengono sottoposti a polling quando EnvGen viene attivato e rimangono costanti per tutta la durata dell'envelope.
   
*ar(envelope, gate, levelScale, levelBias, timeScale, doneAction)
*kr(envelope, gate, levelScale, levelBias, timeScale, doneAction)

*perc(attackTime, releaseTime, peakLevel, curve)

Crea un nuovo envelope che generalmente ha una forma percussiva;

attackTime - la durata dell'attack.
releaseTime - la durata del release.
peakLevel - il peak level dell'envelope.
curve - la curvatura dell'envelope.
 
Env.perc(0.05, 1, 1, -4).test.plot;
Env.perc(0.001, 1, 1, -4).test.plot;    // sharper attack
Env.perc(0.001, 1, 1, -8).test.plot;    // change curvature
Env.perc(1, 0.01, 1, 4).test.plot;  // reverse envelope

Leave a Reply