//Step by Step (sc3d)
//nr 0.1
//belongs to http://swiki.hfbk.uni-hamburg.de:8080/MusicTechnology/292
Commandline Music (Julian Rohrhuber)
//a few starters, to be evaluated line by
line:
#{ "nothing real".postln
}.send;
"nothing non realtime".postln;
// a little sound:
#{
{ Formant.ar(100, 700, 200, 0.1)
}.play(0.3)
}.send;
//a little random sound:
#{
{ Formant.ar(rrand(70,100), rrand(70,
60).midicps, 200, 0.1) }.play(0.8.rand)
}.send;
// a plug in control:
#{
{
p = Plug.kr(100);
Formant.ar(p, p*3, 200,
0.1)
}.play
}.send;
// p is an interpreter variable, that means
it doesn't have to be
//declared first and is accessible in a special
manner:
#{ p.set(200) }.send;
#{ p.line(500, 0.4) }.send;
#{ { p.source = LFNoise0.kr(3, 100,
200); Plug.ar(0) }.play; }.send;
//the plug is just an empty tone.
// try cmd-3 to stop the melody
#{ { p.source = LFNoise1.kr(3, 10,
200); Plug.ar(0) }.play; }.send;
#{ { p.source = LFClipNoise.kr(3, 10,
200); Plug.ar(0) }.play; }.send;
//add impulses
#{
{
var imp;
p = Plug.kr(200);
imp = Impulse.ar(p/10);
Formant.ar(p, p*3, 200,
0.1) + imp
}.play
}.send;
//lag the impulses using Decay
#{
{
var imp;
p = Plug.kr(200);
imp = Decay.ar(Impulse.ar(p/10), 0.04, 0.3);
Formant.ar(p, p*3, 200,
0.1) + imp
}.play
}.send;
//multiply the impulses with the formant osc
#{
{
var imp;
p = Plug.kr(200);
imp = Decay.ar(Impulse.ar(p/10), 0.04, 0.3);
Formant.ar(p, p*3, 200,
imp)
}.play
}.send;
#{ { p.source = LFNoise0.kr(3, 400, 500); Plug.ar(0) }.play; }.send; //the plug is just an empty tone.
//stereo
#{
{
var imp;
p = Plug.kr(LFNoise0.kr([3, 3], 400, 500));
imp = Decay.ar(Impulse.ar(p*0.1), 0.04, 0.1);
Formant.ar(p*[1, 1.1],
p*[3.0.rand, 3.0.rand], 200, imp)
}.play
}.send;
//why not spawn ?
#{
{
p = Plug.kr(300);
Spawn.ar({
var env;
env = Env.perc(0.02,
0.2, 0.2);
Formant.ar(p*[1,
1.1], p*[3.0.rand, 3.0.rand], 200, EnvGen.kr(env,
2) )
}, 2, 1)
}.play
}.send;
//controlling the spawn next time
#{
{
p = Plug.kr(300);
Spawn.ar({ arg spawn, i;
var env;
env = Env.perc(0.02,
0.2, 0.2);
spawn.nextTime = [1, 1/2, 5/7, 2/7, 1/3, 2/3].wrapAt(i)
* 0.2;
Formant.ar(p*[1,
1.1], p*[3.0.rand, 3.0.rand], 200, EnvGen.kr(env,
2) )
}, 2, 1)
}.play
}.send;
//_____slower
#{
{
var imps;
p = Plug.kr(300);
imps = [
10,
{ Line.kr(rrand(1.5,
37.5)) },
Pseq([3, 5, 4, 2],
inf).asStream
];
Spawn.ar({ arg spawn, i;
var env;
env = Env.perc(0.2,
0.6, 0.2);
Formant.ar(p, p*[3.0.rand,
3.0.rand], 200,
Decay2.kr(Impulse.kr(imps.wrapAt(i).value), 0.01,
0.5) * EnvGen.kr(env, 2)
)
}, 2, 0.2)
}.play
}.send;