[chuck-users] other ways to live-code with time
Kassen
signal.automatique at gmail.com
Wed Apr 29 21:01:48 EDT 2009
Dan;
> 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
beats.
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.
Yours;
Kas.
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;
while(1)
{
if(!clk.beatnr)
{
clk.barnr++;
clk.bar.broadcast();
}
clk.beat.broadcast();
clk.period => now;
clk.beatnr++;
clk.bpb %=> clk.beatnr;
}
More information about the chuck-users
mailing list