Hi,<br><br>Just in case this could be useful to someone, here&#39;s what i&#39;ve ended up doing in order to reduce the click at the looping point :<br>- I decide of the length and the starting point of the loop in a table.<br>
- Then i play the &quot;sample&quot; plus an extra X ms at the end using another phasor object (at a frequency adjusted for the extra X ms).<br>- 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. <br>
- 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 &quot;copies&quot; 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 &quot;const 0&quot; &#39;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.    <br>
<br>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&#39;m quite happy with the result.<br>Then again, you&#39;re perfectly right about the difficulty of making a nice loop. The fact that the click is removed doesn&#39;t garantee that the loop will be percieved as smooth. <br>
<br>Cheers!<br><br>Pierre<br><br><div class="gmail_quote">2010/10/11 Lorenzo <span dir="ltr">&lt;<a href="mailto:lsutton@libero.it">lsutton@libero.it</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">-------- Original Message --------<br>
Subject: Re: [PD] Loop point : a way to make it smooth?<br>
From: Andy Farnell &lt;<a href="mailto:padawan12@obiwannabe.co.uk" target="_blank">padawan12@obiwannabe.co.uk</a>&gt;<br>
To: Pierre Massat &lt;<a href="mailto:pimassat@gmail.com" target="_blank">pimassat@gmail.com</a>&gt;<br>
CC: <a href="mailto:pd-list@iem.at" target="_blank">pd-list@iem.at</a><br>
Date: 10/10/2010 09:48 PM<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Ah yes, I see the constraint,<br>
well, what kind of source material is it?<br>
<br>
There&#39;s the zigzag (forward and back) method that<br>
always seems to work well with textures and pad<br>
like sounds. Have you tried that?<br>
<br>
Andy<br>
<br>
On Sun, 10 Oct 2010 21:32:21 +0200<br>
Pierre Massat&lt;<a href="mailto:pimassat@gmail.com" target="_blank">pimassat@gmail.com</a>&gt;  wrote:<br>
<br>
   <br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I think i know what you mean. The problem here is that it has to be live<br>
somehow. I don&#39;t how they do it in live loopers like the ones some singers<br>
use on stage.<br>
Thanks for your reply anway!<br>
<br>
2010/10/10 Andy Farnell&lt;<a href="mailto:padawan12@obiwannabe.co.uk" target="_blank">padawan12@obiwannabe.co.uk</a>&gt;<br>
<br>
     <br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
There&#39;s a simple way to put this.<br>
<br>
There is an art to looping.<br>
       <br>
</blockquote></blockquote></blockquote></div>
Some hints which can be useful both with the source material and the looping algorithm (but as Andy says much depends on the source):<br>
- 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 &quot;cross-fade&quot; 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.<br>

- Finding the right &quot;period&quot; for the loop, on some sounds you&#39;ll want something very short on some pretty long<br>
- Avoid looping &quot;attacks&quot; part, for example of a piano sample avoid all the part at the beginning and loop only when the sound &quot;stabilises&quot;<br><font color="#888888">
<br>
<br>
Lorenzo</font><div><div></div><div class="h5"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
It should be possible in a simple sound editor.<br>
<br>
You might find the best way (to save time)<br>
rather than spending dozens of hours to<br>
improve the technicalities of your looping code,<br>
is to give it to someone who is great<br>
at making loops who will do it in 20 seconds.<br>
<br>
It&#39;s also worth saying that it&#39;s very much about<br>
the source material. Some things are just not<br>
loopable in the way you think they might/should<br>
be. It takes a lot of practice to find out<br>
and hear immediately what needs doing.<br>
<br>
Andy<br>
<br>
<br>
<br>
On Sun, 10 Oct 2010 20:55:00 +0200<br>
Pierre Massat&lt;<a href="mailto:pimassat@gmail.com" target="_blank">pimassat@gmail.com</a>&gt;  wrote:<br>
<br>
       <br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi all!<br>
<br>
I&#39;ve made a looping patch for a friend who needs to create a musical<br>
         <br>
</blockquote>
piece<br>
       <br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
for her school. She&#39;s complaining about the fact that she hears when the<br>
sample loops back to it&#39;s beginning. I tried to envelop it using a table<br>
         <br>
</blockquote>
to<br>
       <br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
control the volume which just ramps up from 0 to 1 during X ms (X being<br>
adjustable), outputs 1 during most of the sample except for the last X ms<br>
where it ramps back down. The ramps are not linear, they have sort of an<br>
inverse square shape. This doesn&#39;t really do the trick.<br>
I&#39;ve been thinking of writing the sample to 2 tables, one delayed by the<br>
length of the sample minus X ms, so that i can play both tables and<br>
         <br>
</blockquote>
switch<br>
       <br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
between the two to avoid having to bring the volume to 0 at one point.<br>
         <br>
</blockquote>
The<br>
       <br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
sample needs to be X ms longer.<br>
Is there another way to go? I&#39;ve been doing some research on the web, but<br>
i&#39;ve found no satisfying answer.<br>
Thanks!<br>
<br>
Pierre<br>
         <br>
</blockquote>
<br>
--<br>
Andy Farnell&lt;<a href="mailto:padawan12@obiwannabe.co.uk" target="_blank">padawan12@obiwannabe.co.uk</a>&gt;<br>
<br>
_______________________________________________<br>
<a href="mailto:Pd-list@iem.at" target="_blank">Pd-list@iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -&gt;<br>
<a href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
<br>
       <br>
</blockquote></blockquote>
<br>
   <br>
</blockquote>
<br>
</div></div></blockquote></div><br>