[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