[chuck-users] other ways to live-code with time

Kassen signal.automatique at gmail.com
Wed Apr 29 21:01:48 EDT 2009


> it's not a technical paper, but a paper about the musical effects of the
> syncing, which at the time was quite amazing.

Quite interesting indeed.

> for instance, to sync with
> Matmos, running a specific BPM, we've had the players simply use their ears
> (!) to sync. this has worked quite well, and with a distributed audio system
> like PLOrk, it may well be that this kind of sync is *better* than network
> sync.

That sounds more or less like mixing two locked groove records using
quartz lock on turntables, that's indeed not that hard while it does
open up a lot of space for intuitive ways of dealing with things like
the contrast between jazz-style brushed hits and techno-style stacato

I noticed I neglected to post the code I promissed before (now it's
really there). As silly as it may sound; I seriously considered to
augment this with a tap-tempo using -say- spacebar and the enter key
for intuitive control over global tempo while livecoding.

There is certainly a lot more to this topic than what we've seen so
far in general applications, I feel.


public class clk
	//beats per minute
	static float BPM;
	//beats per bar
	static int bpb;
	static dur period;
	static int beatnr;
	static int barnr;
	static Event @ bar;
	static Event @ beat;
	fun static void bpm(float value)
		if (value > 0)
			value => BPM;
			minute / BPM => period;
		else <<<"BPM should be greater than 0">>>;

new Event @=> clk.beat;
new Event @=> clk.bar;

120 => clk.bpm;
4	=> clk.bpb;

	clk.period => now;
	clk.bpb %=> clk.beatnr;

More information about the chuck-users mailing list