I've made it in this way:<br><br>SinOsc s1 => g => dac;<br>220.0 => s1.freq;<br>spork ~ loop1();<br><br>SinOsc s2 => g ;<br>spork ~ loop2();<br>0.4 => g.gain ;<br>0.01 => g.mix;<br><br>spork ~ loop3();<br>
<br><<<"waiting on main shred">>>;<br>2::minute => now;<br><br>fun void loop3()<br><br>{ <br> for (0 => int ca; ca < 10; ca++)<br> { 0.2 => g.gain;<br> 10::second => now;<br>
0.0 => g.gain;<br> 1::second => now;<br> 0.2 => g.gain;<br> 10::second => now;<br> 0.0 => g.gain;<br> 1::second => now;<br> <br>}<br>}<br><br>fun void loop1()<br>{<br> <<<"sporked loop1">>>;<br>
for (0 => int i; i < 21; i++)<br> {<br> Std.rand2f(130.0, 440.0) => s1.freq;<br> 0.2 => s1.gain;<br> 0.5::second => now;<br> 0.0 => s1.gain;<br> 0.5::second => now;<br>
}<br> <<<"loop1 done">>>;<br>}<br><br>fun void loop2()<br>{<br> <<<"sporked loop2">>>;<br> for (0 => int i; i < 21; i++)<br> {<br> Std.rand2f(130.0, 440.0) => s2.freq;<br>
0.2 => s2.gain;<br> 0.5::second => now;<br> 0.0 => s2.gain;<br> 0.5::second => now;<br> }<br>}<br><br><br>Is it a good way, or are there other ways more elegant and simpler?<br>
<br><br><br><br><br><br><br><br><br><br>