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

Re: Real-time category

Travis Hartnett wrote:
 > You want the four loops to all keep starting at the desired point, and
 > you want the  recording of your next loop to pick up after your
 > footswitch is pressed (some recording software is always buffering the
 > input to accomodate its known latency--you want the start point of the
 > actual recording to be aligned with when you pressed the switch which
 > is hopefully aligned with the MIDI clock you're sync'ing to) and so
 > on.  You don't want a  20ms rearing its head at random, yet
 > frequently crucial moments.

Not to belabor the point, but this is an interesting scenario because
MIDI timing irregularities are actually even *less* important than
usual.  Here's why.

First, it is trivial for a software looper to keep 4 parallel loops in
sync.  In fact as I've said elsewhere it is really hard not to have
them in perfect sync.  This has nothing to do with MIDI clocks, it is
simply feeding samples to the sound card which is dutifully playing
them at exactly 44100 samples per second.

In a scenario such as this, you are better off using internal
synchronization that quantizes the record start time to the start
point of the other tracks, not waiting for a MIDI clock.  Something
similar to brother sync on an EDP.  This will ensure that your loops
will have exactly the same cycle size and be in perfect sync.

You have to press the Record button in advance, and the rest happens
automatically.  If we really think there is the potential for a 20ms
delay in the Record press, which I don't, but if there were I think
most people can train themselves to decide they need to record more
than 20ms in advance.  Basically if you are doing any sort of
quantizing then MIDI jitter has practically no effect.

If you are slaving the looper to an external MIDI clock, well written
software will be maintaining a running average, ignoring occasional
extreme deviations and "interpolating" to smooth out any jitter in the
clocks.  Everyone does this.  The nice thing about clocks is that they
come in rapidly and regularly so you can guess where the next one
will be with a high degree of accuracy, unless "performing" with the
tempo knob is part of your act ;-)

Once you've got your loops going, the looper is just counting MIDI
clocks and when the expected number of clocks has passed it checks to
see how far away we are from the loop start point.  If we drift beyond
a certain threshold the loop is retriggered.  This is the approach
the EDP uses.  Let's say we've got a 4 second loop at 120
BPM.  There are 192 MIDI clocks in this loop.  Assuming for the sake
of argument that one out of every 100 MIDI events is delayed 20ms,
then we will experience about 2 clock anomalies in every loop.  The
smoothing algorithm can correct these anomalies.

Basically, occasional timing irregularities in a clock are easy to
correct because there are a lot of clock events.  It is an
irregularity in a single unquantized press of the Record button
that is the potential problem because if it is delayed, you don't get
another chance to correct the error.