Hi, Just in case this could be useful to someone, here's what i've ended up doing in order to reduce the click at the looping point : - I decide of the length and the starting point of the loop in a table. - Then i play the "sample" plus an extra X ms at the end using another phasor object (at a frequency adjusted for the extra X ms). - This gets written into another table, about twice as long, and the sound is directly envelopped before the tabwrite~ object. The enveloppe is made using an expr~ object and a cos shape for the fade-in / fade-out. - The actual, definitive loop is play from this last table, using a phasor that runs at half the speed of the original phasor, and which reads two phase-inversed "copies" of the same loop in the table, plus the silent rest of the table. This means that the loop is played once, and when it is X ms far from the end the second, phase-inversed loop starts playing. While the phase-inversed loop plays the second half of the table (which has to be "const 0" 'ed beforehand) plays with no effect on the output. This is really just cross-fading between two tables, only there only one table and there is not need to program an actual cross-fader. This works backwards just fine.
My goal was to reduce the clicks in order to get nice drones using a voice as a source. This technique work fine with fairly long cross-fade times (above 20 or 30 ms). I'm quite happy with the result. Then again, you're perfectly right about the difficulty of making a nice loop. The fact that the click is removed doesn't garantee that the loop will be percieved as smooth. Cheers! Pierre 2010/10/11 Lorenzo <[email protected]> > -------- Original Message -------- > Subject: Re: [PD] Loop point : a way to make it smooth? > From: Andy Farnell <[email protected]> > To: Pierre Massat <[email protected]> > CC: [email protected] > Date: 10/10/2010 09:48 PM > >> Ah yes, I see the constraint, >> well, what kind of source material is it? >> >> There's the zigzag (forward and back) method that >> always seems to work well with textures and pad >> like sounds. Have you tried that? >> >> Andy >> >> On Sun, 10 Oct 2010 21:32:21 +0200 >> Pierre Massat<[email protected]> wrote: >> >> >> >>> I think i know what you mean. The problem here is that it has to be live >>> somehow. I don't how they do it in live loopers like the ones some >>> singers >>> use on stage. >>> Thanks for your reply anway! >>> >>> 2010/10/10 Andy Farnell<[email protected]> >>> >>> >>> >>>> >>>> There's a simple way to put this. >>>> >>>> There is an art to looping. >>>> >>>> >>> Some hints which can be useful both with the source material and the > looping algorithm (but as Andy says much depends on the source): > - zeros: the start and end of the loop should ideally be a zero (or be > exactly the same number). Some sound editors (like mhwaveedit on linux) will > find zero-crossings for you. Another way to go might be "cross-fade" at the > start and end of the loop: that is have a small fade-in at the beginning and > a short fade out at the end, but results vary a lot. > - Finding the right "period" for the loop, on some sounds you'll want > something very short on some pretty long > - Avoid looping "attacks" part, for example of a piano sample avoid all the > part at the beginning and loop only when the sound "stabilises" > > > Lorenzo > > It should be possible in a simple sound editor. >>>> >>>> You might find the best way (to save time) >>>> rather than spending dozens of hours to >>>> improve the technicalities of your looping code, >>>> is to give it to someone who is great >>>> at making loops who will do it in 20 seconds. >>>> >>>> It's also worth saying that it's very much about >>>> the source material. Some things are just not >>>> loopable in the way you think they might/should >>>> be. It takes a lot of practice to find out >>>> and hear immediately what needs doing. >>>> >>>> Andy >>>> >>>> >>>> >>>> On Sun, 10 Oct 2010 20:55:00 +0200 >>>> Pierre Massat<[email protected]> wrote: >>>> >>>> >>>> >>>>> Hi all! >>>>> >>>>> I've made a looping patch for a friend who needs to create a musical >>>>> >>>>> >>>> piece >>>> >>>> >>>>> for her school. She's complaining about the fact that she hears when >>>>> the >>>>> sample loops back to it's beginning. I tried to envelop it using a >>>>> table >>>>> >>>>> >>>> to >>>> >>>> >>>>> control the volume which just ramps up from 0 to 1 during X ms (X being >>>>> adjustable), outputs 1 during most of the sample except for the last X >>>>> ms >>>>> where it ramps back down. The ramps are not linear, they have sort of >>>>> an >>>>> inverse square shape. This doesn't really do the trick. >>>>> I've been thinking of writing the sample to 2 tables, one delayed by >>>>> the >>>>> length of the sample minus X ms, so that i can play both tables and >>>>> >>>>> >>>> switch >>>> >>>> >>>>> between the two to avoid having to bring the volume to 0 at one point. >>>>> >>>>> >>>> The >>>> >>>> >>>>> sample needs to be X ms longer. >>>>> Is there another way to go? I've been doing some research on the web, >>>>> but >>>>> i've found no satisfying answer. >>>>> Thanks! >>>>> >>>>> Pierre >>>>> >>>>> >>>> >>>> -- >>>> Andy Farnell<[email protected]> >>>> >>>> _______________________________________________ >>>> [email protected] mailing list >>>> UNSUBSCRIBE and account-management -> >>>> http://lists.puredata.info/listinfo/pd-list >>>> >>>> >>>> >>> >> >> > >
_______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
