Mad Carillon
(
{
Mix.fill(37,
{
var freq;
freq = exprand(100, 3000);
Pan2.ar(
SinOsc.ar(
freq * LFNoise1.kr(1/6, 0.4, 1),
mul: EnvGen.kr(Env.perc(0, (freq**(-0.7))*100), Dust.kr(1/5))
), LFNoise1.kr(1/8)
)
})*0.3
}.play
)
vediamo un pò, questo è un esempio che ho preso dal libro di David Cottle, la variabile freq è un valore random in una distribuzione esponenziale da 100 a 3000 hz, quindi avremo più probabilità di sentire valori bassi(?) o alti, mi sembra valori bassi; abbiamo un Mix di 37 Sinusoidi ogniuna con una freq diversa moltiplicata per un LFNoise tra 1 e 1.4 e una frequenza molto bassa 0.16~; il mul delle sinusoidi è dato da un Envelope di tipo percussivo attacco 0, release dipendente dalla frequenza; l'envelope è triggerato da un Dust.kr; il posizionamento spaziale della Sinusoide è definito da LFNoise1.kr(1/8);
per LFNoise, Ugens with a default range of 0 to 1:
-The add is the low end of the range
-The mul is the amount of deviation above the low.
-The mul + add is the high end of the range
-The mul is the range
Dust random impulses
Dust.ar(density, mul, add)
Generates random impulses from 0 to +1.
density - average number of impulses per second
exprand
Generates a single random float value in an exponential distributions from lo to hi.
Mix sum an array of channels
Mix.new(array)
Mix will mix an array of channels down to a single channel or an array of arrays of channels down to a single array of channels. More information can be found under MultiChannel.
Pan2 two channel equal power pan
Pan2.ar(in, pos, level)
LFNoise1 ramp noise
LFNoise1.ar(freq, mul, add)
LFNoise1.kr(freq, mul, add
EnvGen envelope generator
Inherits from: Object : AbstractFunction : UGen
Plays back break point envelopes. The envelopes are instances of the Env class. See the Env for more info. The arguments for levelScale, levelBias, and timeScale are polled when the EnvGen is triggered and remain constant for the duration of the envelope.
*ar(envelope, gate, levelScale, levelBias, timeScale, doneAction)
*kr(envelope, gate, levelScale, levelBias, timeScale, doneAction)
*perc(attackTime, releaseTime, peakLevel, curve)
Creates a new envelope specification which (usually) has a percussive shape.
attackTime - the duration of the attack portion.
releaseTime - the duration of the release portion.
peakLevel - the peak level of the envelope.
curve - the curvature of the envelope.