[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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