Looper's Delight Archive Top (Search)
Date Index
Thread Index
Author Index
Looper's Delight Home
Mailing List Info

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

Re: Looping algorithms



Jan-willem De Bleser wrote:
> Hi everybody,
> 
> My name's Jan-willem and I'm an engineering student. I'm doing research 
> for a project on automatic and seamless looping algorithms found in DSP 
> hardware and software and was wondering if anyone here could help point 
> me in the right direction.

Oh no!  Stop...me...must...not...spew...technobable... :-)

Oh what the heck.  I'm not aware of any formally published literature
on the subject of "looping" per se, but I haven't looked very hard.

Lots of interesting links can be found here:

   http://www.dspdimension.com/data/index.html
   http://www.bdti.com/faq/dsp_faq.htm

You will probably get more technical information searching or posting
to the comp.dsp newsgroup which can be accessed here:

   http://www.dspguru.com/comp.dsp/

Regarding "covering up and eliminating the transition" this is usually
done with a simple cross-fade between the two edges of the loop.
After locating the edges, you can do a simple upward fade on the
leading edge and a downward fade on the trailing edge which yields a
"zero crossing" at the loop point.  This will avoid a "click" but can
produce a soft "bump" if the contents on both sides of the loop point
are similar.  A more complicated but smoother sounding fade can be
performed by capturing a short "tail" after the end of the loop,
fading it, and merging it with the start of the loop.  You won't have
a zero crossing which can reduce the intensity of the bump.  This is
closer to the kind of cross fading you would achieve with a DJ mixer
for example, where the fade out of one signal and the fade in of
another signal overlap.

The curve of the fade should ideally be logarithmic, though I find
that a "squares" curve is a reasonable approximation and is easier to
calculate in realtime if that is a concern.

Regarding "automatically place the beginning and end of loops", I'm 
assuming
that you're talking about extracting a loop from a signal in realtime
rather than placement of pre-recorded loops in an arrangement with
time stretching like you might do in Sony Acid.  Both are hard.

The simplistic approach is to monitor the amplitude of the signal and try
to detect where the "beats" are.   Begin the loop when the signal level
crosses a threshold, then end it after some multiple of beats.  There
is a hardware looping device that claims to do something like this.

     http://www.backline-eng.com/

In theory, this should work well for signals with obvious beats.  For
signals without obvious beats, you might be able to slice the signal
based on variations in timbre but that's much harder to implement and
unlikely to achieve useful results.  Personally I prefer tapping a switch
twice to define the start and end points as it gives you the most control.

Regards,
Jeff