# Re: [sc-users] OSC Pattern Scheduling

```James Harkins <jamshark70@xxxxxxxxx> writes:

> Use TempoClock. Don't use SystemClock.

I was under the impression that I was using TempoClock as I wrote
").play(TempoClock.default, [1, -0.25]);". I understand now that once
you use TempoClock, wait is in beats.

> So you write the .waits in terms of beats and change the tempo on
> the clock.

I can't see how this works, sorry. If I enter a routine with [1,
-0.25], the routine starts 25% before the actual beat (250ms before
the beat if bpm=60). If I then insert a wait in here, how could I get
back on track?. I would have to do a lot of calculations for every
event that I insert.

I really don't want to change the tempo of the clock. I need to give a
percentage offset to each individual event.

I'm clueless, but do you mean like:

Tempo.bpm = 90;
r = Routine({
10.do {
Synth("tutorial-sine",[\gate,1]);
0.5.wait;
Synth("tutorial-sine",[\gate,1]);
3.10.wait;
Synth("tutorial-sine",[\gate,1]);
2.wait;
}
}).play(TempoClock.default, [1, -0.25]);

..advancing forward beat for beat. With this approach it would be very
difficult once it gets bigger to know where you are.

> It's the simplest and most direct way.

Can you provide an example with 3 events?

event 1: 10% before beat 1
event 2: exactly on beat 1
event 3: 20% after beat 2

> If you use TempoClock, you can give the wait times in beats.

If I understand it correctly I would have to do lots of calculations
instead of explicitly saying this event occurs 25% before the third
beat (like with the quant argument to the routine).

--
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

```