Grammostola Rosea wrote: > And why don't you use puredata, with csound for example? You mean controlling csound by algorithms from pure data? I never got the grip of doing intensive logic in pd. In chuck I can just do a if-then-else, like while(true) if(nb_notes_played >= Std.rand2(5,9)){ 0 => osc.gain; Time.beat() * Std.rand(2,5) => now; 1 => osc.gain; 0 => nb_notes_played; } else { Std.mtof(Global.randomArrayElement(scale)) => osc.freq; Time.beat() * 0.5 * Std.rand(1,3) => now; nb_notes_played++; } Did you get that? Plays phrases of 5-9 notes with lengths between a 1/8 note and a dotted 1/4 note, frequencies randomly selected from a scale. In between phrases make a rest of between 1 to 5 beats. The above is not tested, assumes some defs to go before it, and is not that pretty. But (when tested) it works, it took my < 1 min to write here and it's easy to play around with lengths of notes and rests, try other scales, put restraints on note selection (use your counterpoint rules), etc. -- Atte http://atte.dk http://modlys.dk http://virb.com/atte _______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user