FrequentlyAskedQuestions: Difference between revisions

From Toplap
Jump to navigation Jump to search
m (Reverted edit of 210.182.48.208, changed back to last version by Yaxu)
No edit summary
Line 1: Line 1:
== Where's all the FAQs? ==
SynthDef(\sound,{arg freq=440,amp=0.1,pan=0.0, dur=0.1;
var sound;


Here, but there's not many yet; for now, you're best off in the ToplapPapers section.
sound= Line.kr(1,0,dur,doneAction:2)*BPF.ar(Blip.ar(freq,10,amp),freq*3,0.1);


However, if there's a particular question you'd like answered, please add it here and someone will add the answer shortly
Out.ar(0,Pan2.ar(sound,pan))
}).send(s);


== Where's the music? I want to hear! ==
Synth(\sound);


* See the [[HistoricalPerformances]] section for some archived performances including TOPLAP in Aarhus and the ChucK projected duet.


* There's a live coding session I ([[DaveGriffiths]]) did here: [http://www.archive.org/audio/audio-details-db.php?collection=opensource_audio&collectionid=spider-lure here] which was a rehersal for [http://www.archive.org/audio/audio-details-db.php?collection=opensource_audio&collectionid=nebogeo-live-170704 this] gig. Both are quite long (20 mins) so there is a shorter track: [http://www.archive.org/audio/audio-details-db.php?collection=opensource_audio&collectionid=a-long-walk-take1 here]. They are composed by programming the rules for melody generating lsystems live. I'll document this process more clearly soon, as its being developed quite a lot - but the current spec for the score language can be found [http://www.pawfal.org/index.php?page=ScoreCode here]


* ClickNilson spent a month practising live coding documenting every keystroke, and there are a few mp3 excerpts [http://swiki.hfbk-hamburg.de:8888/MusicTechnology/815 here] too
(
Tdef(\task1,{
var waittime= 0.5;


* There are a few performances coding from scratch using [[ChucK]], complete with video and scores: [http://on-the-fly.cs.princeton.edu/listen/ here]
loop {


== What's the difference between generative music and live coding? ==
waittime= (waittime*([0.9,1.1].choose)).min(1.0).max(0.1);


DEFN 1 Generative music is created from some algorithm, usually running autonomously. There may be controls (parameters/arguments) to this process but the algorithm itself is fixed. Live coding is a way to substantially modify the actual nature of that algorithm, even as it calculates, in a realtime performance or interactive composition setting.
Synth(\sound,[\freq,waittime*440,\pan,rrand(-1.0,0.0)]);


DEFN 2 They are kind of opposites.
waittime.wait;


Generative music is about sowing seeds, comparable with genetic modification; altering DNA, putting the DNA in eggs, and watching it grow to see/hear the effects. In contrast, live coding is more about piecing animals together from scratch in the womb, splicing different live animals together, modifying their DNA while they're still growing, then experimenting with different ways of slaughtering them to get the best audio/visual/aromatic effects.
}


Note: The above contains bold use of metaphor. TOPLAP does not condone any such activities on real life-forms. Computer processes are not known to experience pain, and don't have faces.
});
)
 
Tdef(\task1).play;
Tdef(\task1).stop;
 
 
 
(
Tdef(\task2,{
var waittime= 0.5;
 
loop {
 
waittime= (waittime*([0.9,1.1].choose)).min(1.0).max(0.1);
 
Synth(\sound,[\freq,waittime*460,\pan,rrand(0.0,1.0)]);
 
waittime.wait;
 
}
 
});
)
 
Tdef(\task2).play;
Tdef(\task2).stop;
 
 
 
 
(
var num;
 
num=15;
 
num.do {arg i;
 
Tdef((\task++(i+3)).asSymbol,{
var waittime= 0.25;
 
loop {
 
waittime= (waittime*([0.9,1.1].choose)).min(2.0).max(0.05);
 
Synth(\sound,[\freq,waittime*(1000+(i*200)),\pan, (i/(num-1)*2-1),\dur,0.6*((i+1)/num)]);
 
waittime.wait;
 
}
 
}).play;
};
)
 
 
(
var num;
 
num=15;
 
num.do {arg i;
 
Tdef((\task++(i+3)).asSymbol).stop;
};
)
 
 
(
SynthDef(\sound2,{arg freq=440,amp=0.1,pan=0.0, q=0.1,dur=0.1;
var sound;
 
sound= Line.kr(1,0,dur,doneAction:2)*BPF.ar(PinkNoise.ar(amp),freq,q,10);
 
Out.ar(0,Pan2.ar(sound,pan))
}).send(s);
)
 
Synth(\sound2);
 
 
 
(
Tdef(\task20,{
var waittime= 0.5;
 
loop {
 
waittime= (waittime*([0.6,1.5].choose)).min(2.0).max(0.03);
 
Synth(\sound2,[\freq,waittime*220,\pan,rrand(-1.0,1.0),\q,rrand(0.05,0.2)]);
 
waittime.wait;
 
}
 
});
)
 
Tdef(\task20).play;
Tdef(\task20).stop;
 
 
 
 
(
SynthDef(\sound3,{arg freq=440,amp=0.1,pan=0.0, q=0.1,dur=0.1;
var sound;
 
sound= Line.kr(1,0,dur,doneAction:2)*BRF.ar(BrownNoise.ar(amp),freq,q);
 
Out.ar(0,Pan2.ar(sound,pan))
}).send(s);
)
 
Synth(\sound3);
 
 
 
(
Tdef(\task21,{
var waittime= 0.5;
 
loop {
 
waittime= (waittime*([0.6,1.5].choose)).min(2.0).max(0.03);
 
Synth(\sound3,[\freq,waittime*220,\pan,rrand(-1.0,1.0),\q,rrand(0.05,0.2)]);
 
waittime.wait;
 
}
 
});
)
 
Tdef(\task21).play;
Tdef(\task21).stop;
 
(
a=SynthDef(\fx1,{
 
Out.ar(0,CombN.ar(In.ar(0,2),0.1,0.1,MouseX.kr(0.1,10,\exponential)))
}).play(RootNode.new,addAction:\addToTail);
)
 
a.free
 
 
 
(
b=SynthDef(\fx2,{
 
ReplaceOut.ar(0,Resonz.ar(In.ar(0,2),MouseX.kr(100,10000,'exponential'),MouseY.kr(0.1,1)))
}).play(RootNode.new,addAction:\addToTail);
)
 
b.free

Revision as of 08:56, 5 December 2006

SynthDef(\sound,{arg freq=440,amp=0.1,pan=0.0, dur=0.1; var sound;

sound= Line.kr(1,0,dur,doneAction:2)*BPF.ar(Blip.ar(freq,10,amp),freq*3,0.1);

Out.ar(0,Pan2.ar(sound,pan)) }).send(s);

Synth(\sound);


( Tdef(\task1,{ var waittime= 0.5;

loop {

waittime= (waittime*([0.9,1.1].choose)).min(1.0).max(0.1);

Synth(\sound,[\freq,waittime*440,\pan,rrand(-1.0,0.0)]);

waittime.wait;

}

}); )

Tdef(\task1).play; Tdef(\task1).stop;


( Tdef(\task2,{ var waittime= 0.5;

loop {

waittime= (waittime*([0.9,1.1].choose)).min(1.0).max(0.1);

Synth(\sound,[\freq,waittime*460,\pan,rrand(0.0,1.0)]);

waittime.wait;

}

}); )

Tdef(\task2).play; Tdef(\task2).stop;



( var num;

num=15;

num.do {arg i;

Tdef((\task++(i+3)).asSymbol,{ var waittime= 0.25;

loop {

waittime= (waittime*([0.9,1.1].choose)).min(2.0).max(0.05);

Synth(\sound,[\freq,waittime*(1000+(i*200)),\pan, (i/(num-1)*2-1),\dur,0.6*((i+1)/num)]);

waittime.wait;

}

}).play; }; )


( var num;

num=15;

num.do {arg i;

Tdef((\task++(i+3)).asSymbol).stop; }; )


( SynthDef(\sound2,{arg freq=440,amp=0.1,pan=0.0, q=0.1,dur=0.1; var sound;

sound= Line.kr(1,0,dur,doneAction:2)*BPF.ar(PinkNoise.ar(amp),freq,q,10);

Out.ar(0,Pan2.ar(sound,pan)) }).send(s); )

Synth(\sound2);


( Tdef(\task20,{ var waittime= 0.5;

loop {

waittime= (waittime*([0.6,1.5].choose)).min(2.0).max(0.03);

Synth(\sound2,[\freq,waittime*220,\pan,rrand(-1.0,1.0),\q,rrand(0.05,0.2)]);

waittime.wait;

}

}); )

Tdef(\task20).play; Tdef(\task20).stop;



( SynthDef(\sound3,{arg freq=440,amp=0.1,pan=0.0, q=0.1,dur=0.1; var sound;

sound= Line.kr(1,0,dur,doneAction:2)*BRF.ar(BrownNoise.ar(amp),freq,q);

Out.ar(0,Pan2.ar(sound,pan)) }).send(s); )

Synth(\sound3);


( Tdef(\task21,{ var waittime= 0.5;

loop {

waittime= (waittime*([0.6,1.5].choose)).min(2.0).max(0.03);

Synth(\sound3,[\freq,waittime*220,\pan,rrand(-1.0,1.0),\q,rrand(0.05,0.2)]);

waittime.wait;

}

}); )

Tdef(\task21).play; Tdef(\task21).stop;

( a=SynthDef(\fx1,{

Out.ar(0,CombN.ar(In.ar(0,2),0.1,0.1,MouseX.kr(0.1,10,\exponential))) }).play(RootNode.new,addAction:\addToTail); )

a.free


( b=SynthDef(\fx2,{

ReplaceOut.ar(0,Resonz.ar(In.ar(0,2),MouseX.kr(100,10000,'exponential'),MouseY.kr(0.1,1))) }).play(RootNode.new,addAction:\addToTail); )

b.free