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

Re: Real-time category

Stefan Tiedje wrote:
> I never use Asio, I use CoreAudio on a Mac I can go down to 16 samples 
> I/O buffer... I assume any latency below 1 ms is not an issue.

ASIO and CoreAudio behave the same way so everything I said about ASIO
applies to CoreAudio.  But 16 samples!  That's really good.  Most people
can't get anywhere near that if they're running a plugin host.  If your
application is stable with a 16 sample buffer size then sure, you can
effectively ignore latency because the errors you are having are at the
same level as calibration errors in a system that actually tries to do
latency compensation.  And if you are sending looper commands through
the audio interface it will be faster than MIDI.

But this is a very unusual situation.  I doubt anyone running a commercial
host like Bidule or Live with even one extra plugin like an amp modeler
or reverb can use a 16 sample buffer.

> The time a real world sound needs to evolve is limited. Especially if we 
> play them with a Speaker. Any latency within this time is irrelevant. 
> Its about 10 ms. Thats why most people usually feel comfortable with the 
> 256 sample latency of standard soundcard settings.

Oh sure, I'm not arguing that even 10ms of trigger latency is a big 
there are obviously thousands of keyboard players that think it is ok.  
can detect it, but they don't always care because they can instantly adapt
their playing technique to compensate, much like switching to a patch with
a slow attack.

The original point was that an RTOS will be better for triggering because
it can usually give you lower latency.  Whether it is so much better that
you can hear the difference is debatable.  I honestly can't tell the
difference between a 256 buffer size and a 128 buffer size for looping
so I'm perfectly happy running on a non-RTOS.

I do however still think it is important for any developer of audio 
to do latency compensation correctly, even if the corrections are inaudible
at low latencies.  Not everyone can run with a 128 buffer size.   If you
start running the looper with a bunch of plugins like an amp modeler,
reverb, digital delay, and filter you may have to use a buffer of 512 to 
just to avoid clicks.  If the looper isn't compensating for this, it
will be noticed as a misalignment of overdubs, and other audible errors
depending on the features the looper supports.