RE: [linux-audio-dev] audio card for linux (and audiality ?) + question about filtering

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: RE: [linux-audio-dev] audio card for linux (and audiality ?) + question about filtering
From: David Olofson (audiality_AT_swipnet.se)
Date: su elo    29 1999 - 18:01:00 EDT


On Sun, 29 Aug 1999, Benjamin GOLINVAUX wrote:
> >I don't like the 1.5 ms minimum latency (which will result in a total
> latency
> >of at least 3 ms through a software engine - still good, though), but it's
> >still a nice card, especially if it's *usable*! (That is; has Linux
> drivers. :-)
>
> I would say that a command->action of 3ms is beyond the perception of many
> people except very good drummers... (that's the midi latency of a typical
> synth)... Someone disagrees ?

That's pretty correct. Actually, only the fastest synths react in 3 ms or less.
(Analog synths are a lot faster, but that's another story.) Latencies of 10 ms,
exponentially increasing with the number of channels to trigger wasn't unusual
a few years ago! That kind of latency is even noticable for the average
keyboardist...

> However... something that has worried me for some time is that problem :
>
> being given an audio fx engine for, let's say, vocals...
>
> Someone sings : his/her voice has a direct path to the ears AND an indirect
> path thru the fx box (be it hardware or audiality for that matter ;-)
>
> So... the direct and indirect signals gets added with a delay of 3ms...

You've done something that's wrong and quite pointless here...

> Let's compute the z-transform... you see what I mean ?
>
> Every wave whose half period is 3ms (that is, T=6ms <-> f=166Hz) is delayed
> by 180° which leads to total cancelling of these waves... So we get a huge
> hole around 166Hz...
>
> Am I correct ?

Yep, but the problem is a non-issue in most cases, as you have no reason to mix
two dry signals. You shouldn't even do that with analog systems, as analog
filters have latencies as well.

> Furthermore, to move that hole out of the audible range, one has to have a
> f=20KHz <-> T=50µs <-> latency = 25µs !!!!!!!!!

The hole is out of the audible range... but you'll have complete cancelation at
fs/2, and it will still have effect down in the audible range. You get a treble
fall-off...

NO LATENCY AT ALL is acceptable, or you'll do strange things to the mixed
result. True, if you get down to some single µs, the effect won't be noticable,
but how would you do oversampling in the AD/DA? Or digital filtering, or for
that matter, analog filtering?

> So... do we have to avoid mixing dry and wet or am I wrong somewhere ???

Yep, you missed one thing. Why would we ever want to mix a dry analog signal
with the "same" dry signal that has passed through a digital system?

The solution:

Either we mix the analog dry signal with the processed signal *only* - no dry
signal should get through the digital system - or we don't mix at all in the
analog domain, but do it all digital. This is how many external FX boxes do it;
the bypass of those that seem to have zero latency is actually analog. The
others do everything digital, and the phenomenon you mentioned *will* occur if
you run them in "dry + processed" mode and mix with an analog bypass.

With a latency of less than 5 ms, the later method works pretty well, and with
less than 1 ms, you're not human if you notice any difference, even with
headphones. 1 ms is only 30 cm of sound travel in air...

//David

 ·A·U·D·I·A·L·I·T·Y· P r o f e s s i o n a l L i n u x A u d i o
- - ------------------------------------------------------------- - -
    ·Rock Solid David Olofson:
    ·Low Latency www.angelfire.com/or/audiality ·Audio Hacker
    ·Plug-Ins audiality_AT_swipnet.se ·Linux Advocate
    ·Open Source ·Singer/Composer


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:25:53 EST