On Thu, 30 Aug 2007 18:30:47 +0200 Fons Adriaensen <fons@xxxxxxxxxxxxxxx> wrote: > On Thu, Aug 30, 2007 at 08:11:27AM -0700, Kevin Cosgrove wrote: > > > Like maybe a DLL? I'm not sure what the coding difficulty > > differences would be between PLL & DLL. Maybe it's worth asking > > that question tho. > > They are very similar. > > Usually the term PLL is used if the signal that is tracked > is cyclic - if you can associate a 'frequency' with it. > The name DLL is used when the quantity tracked is more like > a linear function of time, somehting that has a 'speed'. > > In a software implementation the distinction is not always > clear. Consider the oscillator > > x [i] = sin (i * w); > > Here 'i * w' is linear function of time 'i', and the sin() > turns it into a cyclic function. If your loop operates on > i * w it could be called a DLL, if it uses the sin() or > another cyclic function it would be called a PLL. > > In both case the 'core algorithm' is very simple, and > most of the work is in the design of 1. the 'detector' > (the element that determines what the current error is) > and 2. the loop filter. For second and higher order the > loop can become unstable, and you really need a systematic > mathematical approach to get it right. > > For a gentle introduction to DLLs see > <http://www.kokkinizita.net/papers/usingdll.pdf> > which explains how the one in jackd works. This is a very interesting article, and shakes some of the rust off my memory :) However, I don't see how to resolve the problem of a rouge note that should actually be totally ignored for the purpose calculating the trend if it falls far enough outside the predicted curve. Not only could this give false timing on the reference track, but as this track is then used to pull all the others into line, it could give some very strange effects if (say) a bass track is used and some notes are deliberately played slightly off time. -- Will J Godfrey http://www.musically.me.uk _______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-user