] [Thread Prev
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
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
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...)
       
\\\ /|() ()|\
))))) )| | |( \\\
/// \ \_/)/ )))))
14, Av. Pr. Franklin Roosevelt, 94320 Thiais, France
Phone at CCMIX +33-1-49 77 51 72