[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sc-users] OSC Pattern Scheduling
James Harkins <jamshark70@xxxxxxxxx> writes:
> When playing a routine or task, you can specify any time point using
> the quant argument.
Yes, this is nice. The problem is that wait is specified in seconds.
I can't put wait inside the quant'ed routine, because it would not
survive a tempo change.
> r = Routine({
> loop {
> thisThread.clock.beats.postln;
> 1.0.wait;
> }
> }).play(TempoClock.default, [1, -0.05]);
> 596.95
> 597.95
> 598.95
> 599.95
> 600.95
This is great, but I don't understand exactly how to do what I
want. When using sched inside a routine and then using wait to advance
the beats, it seems the whole thing falls apart and I need to
calculate again.
I basically want to trigger different synths at specific times;
1st - 5% before the first beat (SynthDef 1)
2nd - exactly on the first beat (SynthDef 2)
3rd - 20% after the first beat ..
4th - 5% after the second beat ..
5th - exactly on the third beat ..
6th - 90% after the third beat ..
.. and so on
then loop this..
> Then, when playing, send the message with a latency value.
You mean the routine quant value?
> Lately I've been scheduling my routines to occur x fraction of a
> beat before the actual onset, then sending messages with latency /
> thisThread.clock.tempo.
I'm not completely following;). I don't want the routines to be off by
x fractions unless I write a routine for every beat, then delay it and
advance inside it. I don't think this would be the proper way.
> Works beautifully and is stable through tempo changes.
I see this for the whole routine, but not for beats when using wait.
> My suggestion is to start the routine running before the beat as
> above, then use wait values to advance the clock by precise amounts.
If you have precise amounts with wait, I don't see how it survives
tempo changes.
--
Esben Stien is b0ef@e s a
http://www. s t n m
irc://irc. b - i . e/%23contact
[sip|iax]: e e
jid:b0ef@ n n