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

Re: Real-time category

Jeff Larson wrote:
> With an ASIO buffer size of 256, the sound card behaves like a 5.8ms
> delay line.  This number must be added to the MIDI latency to get the
> delay between when a key is pressed and a sound is heard, around 7 to
> 8ms. 

Not if you trigger with audio as explained. Actually the audio trigger 
will have exactly the same delay as the audio, thus they arrive both at 
the same time, absolutely in sync.

> In a soft-synth, the sample is delayed slightly but it plays
> accurately from the beginning.  But in a system that is recording and
> playing at the same time, like a looper, we have another problem,
> making sure that what we are playing is aligned with what we are
> recording.  We must always be playing 5.8ms ahead of where the
> musician thinks they are.

No, we don't, as the software knows the latency, and knows how much of 
the past needs to get into my sample to be played correctly. (As 
explained above the trigger and the audio could have exactly the same 
delay and compensate it even automatically.

> When a trigger command is received, we've already asked the sound card
> to play the next 5.8ms of the current loop and we must let that
> happen. 

Yes, but we'd want to give it some time to fade anyway...

> But now we can't start playing from the beginning of the next
> loop, we have to start playing 5.8ms into the next loop or else the
> recording and playback positions will be out of alignment and overdubs
> will start to sound like they are in the wrong place.

Why not? I have all the material which is always recorded no matter 
which commands I use. With a computer I can easily be automatically 
alligned. If I know the latency, I know how much it has to be shifted to 
get the exact position.

> This adjustment is most noticeable in Record Stop and the triggering
> functions because it will cut off 256 samples of the attack and fade
> in.  If the loop started with a loud percussive sound, this may alter
> the attack transient enough to have an audible effect.  This only
> happens the first time it is triggered though, if you let it play it
> will be accurate the second time.

If I want to hear the direct signal I don't need to hear the loop. There 
will never be cut anything. If you'd hear something cut, the software is 
bad, no relation to RTOS versus non-RTOS.

> This is essential for Record Stop in order to support the popular "end
> a record with overdub" feature.  It is arguably not as important for
> triggering pre-recorded loops, but since you can always be in overdub
> mode immediately after the trigger it is easier to make the adjustment
> consistently everywhere.

Maybe the overseen point here is, that with a software looper there is 
practically no limitation on the length and number of loops. I could 
overdub by just feedback the output of a loop into its input, or I could 
just add loops and play them back at the same time.

> I don't notice this effect at latencies below 512 samples and I
> haven't received any complaints.  But it is one area where an RTOS can
> undeniably give you better results.

RTOS or non-RTOS has nothing to do with latency, each RTOS will have 
also some latency. But latency is no problem ever in a looper. A looper 
is a delay. As long the shortest delay I want is bigger than the latency 
I am always fine. My delays are between 100ms and 5 minutes, my latency, 
if its bad, is maybe 10 ms. My output trigger latency if I play a sample 
with a key is half of it. But if I just play a loop, I am always able to 
compensate any latency sample accurate. Because the latency is constant! 
I do not need to hit any switch in advance, I hit it on the point. My 
software will know how to deal with it. Software is just way more 
flexible (well, if you create it yourself...)



  [][]  [][][]  [][]  [][][]  [][]  [][][]  [][]  [][][]

         Stefan Tiedje
     Electronic Composition

     \\\   /|() ()|\
     ))))) )|  |  |( \\\
     ///    \ \_/)/ )))))
             \___/   ///

--(_|_ ----|\-----|-----()---
-- _|_)----|-----()----------

14, Av. Pr. Franklin Roosevelt, 94320 Thiais, France
Phone at CCMIX   +33-1-49 77 51 72