[sc-users] args as integers: outputproxy
Julian Rohrhuber
rohrhuber at uni-hamburg.de
Thu Aug 10 18:02:07 PDT 2006
>it is a really nice example!
>
>
>here is a little smoothing:
>
>(
>SynthDef("bell3", { arg myBellNumber=0, pan=0;
> var out,chime, freqSpec, num, burst, totalHarm = 12, klank,
> burstEnv, att = 0, seeds, burstLength = MouseY.kr(0.0001, 1);
> seeds = [
> 0, // Random bell
> 1155524954, // Nice low bell
> 1155442766, // Nice clunky bell
> 1155294420, // really low bell
> 1154676704, // High bell
> 1155146026 // Mid range
> ];
>
> RandSeed.kr(myBellNumber, Select.kr(myBellNumber, seeds));
>
> freqSpec = `[
> {Rand(1, 30)*(100+Rand(-10.0,10.0))}.dup(totalHarm),
> {Rand(0.1, 0.9)}.dup(totalHarm).normalizeSum,
> {Rand(1.0, 3.0)}.dup(totalHarm)
> ];
> burstEnv = Env.perc(0, burstLength);
> burst = PinkNoise.ar(EnvGen.kr(burstEnv));
> klank = Klank.ar(freqSpec, burst);
> out = Pan2.ar( // Put in stereo field
> klank * MouseX.kr(0.1, 0.8) ,
> pan);
> DetectSilence.ar(out, doneAction:2);
> Out.ar(0, out);
>}).store
>)
>
>Synth(\bell3, [\myBellNumber, 1])
remember though, that the rand seed is "global". You can choose it with RandID.
Here is a degenerate example:
// vickers- houston - chimebell
(
SynthDef("bell3", { arg out=0, myBellNumber=0, pan=0, amp=0.1;
var chime, freqSpec, num, burst, totalHarm = 12, klank,
burstEnv, att = 0, seeds, burstLength = MouseY.kr(0.0001, 1);
seeds = [
0, // Random bell
1155524954, // Nice low bell
1155442766, // Nice clunky bell
1155294420, // really low bell
1154676704, // High bell
1155146026 // Mid range
];
//RandID.ir(8); // use generator number 8.
RandSeed.ir(myBellNumber, Select.kr(myBellNumber, seeds));
freqSpec = `[
{Rand(1, 30)*(100+Rand(-10.0,10.0))}.dup(totalHarm),
{Rand(0.1, 0.9)}.dup(totalHarm).normalizeSum,
{Rand(1.0, 3.0)}.dup(totalHarm)
];
burstEnv = Env.perc(0, burstLength, amp);
burst = PinkNoise.ar(EnvGen.kr(burstEnv));
klank = Klank.ar(freqSpec, burst);
klank = Pan2.ar(klank, pan);
klank = klank * Line.kr(1, 0, 0.004, doneAction:2);
DetectSilence.ar(klank, doneAction:2);
Out.ar(out, klank);
}).store
)
Synth(\bell3, [\myBellNumber, 1, \amp, 0.3])
fork { loop { 0.08.wait; Synth(\bell3, [\myBellNumber, 1, \amp, 0.0]) } };
{ WhiteNoise.ar(0.3) }.play; // the noise is chopped up by determinism
--
.
More information about the sc-users
mailing list