50 lines
1.2 KiB
Text
50 lines
1.2 KiB
Text
|
title:: jitlib_asCompileString
|
||
|
summary:: asCompileString in JITLib
|
||
|
categories:: Libraries>JITLib>Tutorials
|
||
|
|
||
|
code::
|
||
|
{ 10 + 6 * ~harry }.asCompileString;
|
||
|
::
|
||
|
|
||
|
many objects understand strong::.storeOn::, which a way to post their string that is needed to reproduce them by compilation. sometimes one wants to store a certain configuration of a proxy space, which can be done
|
||
|
if all functions used are closed functions.
|
||
|
|
||
|
code::
|
||
|
// an example how ProxySpace can document its current state:
|
||
|
|
||
|
p = ProxySpace.push(s);
|
||
|
|
||
|
|
||
|
(
|
||
|
~ctl1 = {
|
||
|
var z = 1;
|
||
|
4.do { |i| z = z * SinOsc.kr(i.sqrt, i+[0,0.2]) };
|
||
|
z
|
||
|
};
|
||
|
|
||
|
~ctl2[0] = { LFNoise2.kr([20,20],20) };
|
||
|
~ctl2[1] = {
|
||
|
LFNoise2.kr([20,20],20) * LFNoise0.kr([20,20],20)
|
||
|
};
|
||
|
|
||
|
~out = {
|
||
|
SinOsc.ar(~freq.kr, 0, 0.1)
|
||
|
};
|
||
|
|
||
|
~freq[0] = { ~ctl1.kr(2) + ~ctl2.kr(2) + 400 };
|
||
|
~freq[5] = ~ctl1.wrap2(~ctl2) * ~ctl1 / (~ctl2 + ~ctl1);
|
||
|
|
||
|
~pat = Pbind(\freq, Pfunc({ 1.2.rand }));
|
||
|
~z = 9;
|
||
|
~out.set(\freq, 760, \ffreq, 20);
|
||
|
)
|
||
|
|
||
|
p.asCompileString;
|
||
|
|
||
|
// the document message creates a new document which it posts the code into
|
||
|
|
||
|
p.document; // document everything
|
||
|
p.document([\out]); // document all dependants of ~out
|
||
|
p.document([\ctl1]); // document all dependants of ~ctl1
|
||
|
::
|