<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Different ways of Implementing Delay Loops]]></title><description><![CDATA[<p>I've been trying to emulate a delay pedal I have, but having no luck.<br />
The effect I'm after is a stable interval's pitch change when you change the delay time - you can tune the sound going around the delay loop up or down by a stable number interval by shortening or lengthening the delay time - just as you could tune sample playback by changing the rate of a phasor~ reading an array.</p>
<p>If I use a vd~ reading from a delay line (as in the rotating tape head pitch shifter example, but with added recirculating feedback) I can get pitch change effects (pretty great pitch change effects tbh) but they're unstable - they keep rising or falling in pitch with each circulation as they get pitch shifted each time they go around the loop.</p>
<p>I figured one way to implement the effect would be to change the write speed and the read speed by the same amount (I'd guess this is how the pedal is doing it)- But I have no idea how to change the delay write speed in PD.<br />
I thought of changing sample rate using block~ in a subpatch with the delay line but that doesn't seem to give the desired results (or in fact any sound at all - so I'm guessing you can't upsample a delay line).</p>
<p>Any ideas???</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops</link><generator>RSS for Node</generator><lastBuildDate>Wed, 17 Jun 2026 20:09:07 GMT</lastBuildDate><atom:link href="http://forum.pdpatchrepo.info/topic/2992.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Aug 2009 14:18:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Wed, 12 Aug 2009 14:18:43 GMT]]></title><description><![CDATA[<p>I've been trying to emulate a delay pedal I have, but having no luck.<br />
The effect I'm after is a stable interval's pitch change when you change the delay time - you can tune the sound going around the delay loop up or down by a stable number interval by shortening or lengthening the delay time - just as you could tune sample playback by changing the rate of a phasor~ reading an array.</p>
<p>If I use a vd~ reading from a delay line (as in the rotating tape head pitch shifter example, but with added recirculating feedback) I can get pitch change effects (pretty great pitch change effects tbh) but they're unstable - they keep rising or falling in pitch with each circulation as they get pitch shifted each time they go around the loop.</p>
<p>I figured one way to implement the effect would be to change the write speed and the read speed by the same amount (I'd guess this is how the pedal is doing it)- But I have no idea how to change the delay write speed in PD.<br />
I thought of changing sample rate using block~ in a subpatch with the delay line but that doesn't seem to give the desired results (or in fact any sound at all - so I'm guessing you can't upsample a delay line).</p>
<p>Any ideas???</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops</guid><dc:creator><![CDATA[Dan b]]></dc:creator><pubDate>Wed, 12 Aug 2009 14:18:43 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Wed, 12 Aug 2009 17:24:03 GMT]]></title><description><![CDATA[<p>Are you talking about feedback here?</p>
<p>The pitch keeps rising because the altered pitched output goes back into the delay line to be altered again?</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/2</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/2</guid><dc:creator><![CDATA[saturno]]></dc:creator><pubDate>Wed, 12 Aug 2009 17:24:03 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Wed, 12 Aug 2009 20:09:48 GMT]]></title><description><![CDATA[<p>Yep - sorry, I could probably have been clearer - I shouldn't post from work <img class="emoji emoji-extended" src="http://forum.pdpatchrepo.info/plugins/nodebb-plugin-emoji-extended/images/grinning.png" title=":)" alt=":)" /></p>
<p>I'm talking about a delay line with feedback. I was mucking about and I stuck a feedback loop into example G09. With that set-up the pitch rises with each repeat because each time it's going back into the delay line and being read back at a rate higher than it was written. It sounds cool (very cool to my ears) but I now want to get a different effect -</p>
<p>On many old delay pedals, when you twist the knob to change the delay time, you just raise the pitch of the repeats by a constant interval (and shorten the delay time by the appropriate amount). The pitch doesn't rise or fall with each repeat - presumably this is because the write and read &quot;heads&quot; on the delay line are speeded up or slowed down by the same amount. I'm trying to replicate that effect in PD. Not neccessarily by the same means - by any means really.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/3</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/3</guid><dc:creator><![CDATA[Dan b]]></dc:creator><pubDate>Wed, 12 Aug 2009 20:09:48 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Wed, 12 Aug 2009 20:47:24 GMT]]></title><description><![CDATA[<p>oh, that's pretty easy, you can do this with 2 delaylines:<br />
one without a feedback line just to get the pitch effect (use a vd~ for that) and a second one with feedback for the delay effect.<br />
i could imagine, it is maybe possible to do this with one delay.... wait, i'll check it and post a patch......</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/4</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/4</guid><dc:creator><![CDATA[toxonic]]></dc:creator><pubDate>Wed, 12 Aug 2009 20:47:24 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Wed, 12 Aug 2009 20:59:39 GMT]]></title><description><![CDATA[<p>ok, should go in the direction you are aiming, i guess.<br />
i checked out both, with one delay line and with two delaylines.<br />
the results are different but both are nice souunding.<br />
but if you are talking about old delay pedals, this is maybe what you are searching for...</p>
<p><a href="http://www.pdpatchrepo.info/hurleur/pitch-delay_2.pd" rel="nofollow">http://www.pdpatchrepo.info/hurleur/pitch-delay_2.pd</a></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/5</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/5</guid><dc:creator><![CDATA[toxonic]]></dc:creator><pubDate>Wed, 12 Aug 2009 20:59:39 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Thu, 13 Aug 2009 04:34:12 GMT]]></title><description><![CDATA[<p>It sounds to me like the problem your having is just a result of feeding back into the pitch shifter (or even using a pitch shifter at all). If you just feed it back into the delay, you should get the effect of a delay pedal. The pitch shifting comes because as you shorten the delay line, the delay playback head moves up the delay line, essentially reading it faster for that moment (or vice versa). And of course, reading it faster causes the pitch to go up. If you feed that back into the delay line, that moment of pitching up will repeat until the delay dies out, and it doesn't keep pitching up with each delay. The record head stays at a constant rate.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/6</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/6</guid><dc:creator><![CDATA[Maelstorm]]></dc:creator><pubDate>Thu, 13 Aug 2009 04:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Thu, 13 Aug 2009 11:44:22 GMT]]></title><description><![CDATA[<p>Ta Toxonic - I'll take a look at the patch tonight. Good of you to take the time. Apologies if I've misunderstood though, but I think what you're describing is not quite what I mean: The pitch shift is separated out from the delay time - you're running a pitch shift effect into a separate delay line, which is not going to give the same effect. The delay time will not shorten as the pitch rises. I'll take a look at your patch tonight though as I may have misunderstood what you're getting at.</p>
<p>Maelstorm - thanks also. I understand why the pitch changes on a delay pedal. The pitchshifter patch was a bit of a red herring - though of course it's the same principle. The difference between what you're (both, I think) talking about and what I'm talking about is the way that the pitch changes.</p>
<p>Assuming a stable C tone playing into the delay:<br />
With the standard simple PD delay set up, if you move the read point of a vd~ then you get a glissando as it accellerates, a constant pitch change as it moves at constant speed. So if you turn the knob to change the delay time in the middle of a tone you start with a constant pitch (C), then get a rise of pitch, then it levels out at a new pitch (as you turn then stop turning the knob),<br />
_<br />
___/</p>
<p>If you feed back into the delay, the glissando is repeated as the read speed changed while the write speed was constant:<br />
_ _ _ _<br />
/ |/ |/ |/ |</p>
<p>The effect I'm looking to emulate on the other hand is more akin to changing the speed of a phasor~ reading an array - the pitch change is not a blip, but a stable interval's transposition - eg: you turn the knob, the pitch of the repeats rise by a given interval and stays at that pitch as it repeats (now more quickly):<br />
______<br />
___/</p>
<p>If you play a constant C tone, then speed up the delay until it is a major third higher, you get a major third diad (until the delay dies away), rather than a C tone with a repeating squiggle overlaid.<br />
The effect is the same as you get by speeding up a tape loop delay (though the pedal I'm trying to imitate is a digital delay) which is why I think the rate of the write and read heads are being increased by the same amount.</p>
<p>[edit, just tried to make this clearer and removed a couple of errors]</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/7</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/7</guid><dc:creator><![CDATA[Dan b]]></dc:creator><pubDate>Thu, 13 Aug 2009 11:44:22 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Thu, 13 Aug 2009 15:24:31 GMT]]></title><description><![CDATA[<p>if you're talking about tape echoes, they often had multiple playback heads, so you'd need a few delayline readers to simulate that.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/8</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/8</guid><dc:creator><![CDATA[mod]]></dc:creator><pubDate>Thu, 13 Aug 2009 15:24:31 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Thu, 13 Aug 2009 17:26:58 GMT]]></title><description><![CDATA[<p>Toxonic ta, that's pretty much the patch I started out with. It's how I'd generally build a feedback delay. It's not quite what I'm after. On that implementation, as you wiggle the knob about - particularly at higher repeat speeds - you deform the repeats into pitch squiggles as they get written at one speed and read back at another.</p>
<p>I mentioned tape loop delays (though I'm not trying to emulate tape echo) because if you speed up the tape you speed up the read and write speed simultaneously - so you don't get pitch wiggles on the regenerations, you get constant pitch.</p>
<p>In most cases it'd be a pretty subtle difference, but I'm trying to get a particular effect.</p>
<p>I think, as I said earlier, what I need to do is to change the speed of the write &quot;head&quot; by the same amount as the read &quot;head&quot; - I'm guessing it can't be done with delay objects, but I wonder if the same thing is possible with other objects.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/9</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/9</guid><dc:creator><![CDATA[Dan b]]></dc:creator><pubDate>Thu, 13 Aug 2009 17:26:58 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Thu, 13 Aug 2009 18:41:44 GMT]]></title><description><![CDATA[<p>ok, you want to have the pitch effect, that comes when tweaking delaytime, but without change of the delaytime? then did you check out my post about 2 delaylines?</p>
<p>delayline for pitch effect (without feedback loop)<br />
|<br />
delayline with feedbackloop for delay effect<br />
|<br />
dac~</p>
<p>have a look at the attachment.</p>
<p><a href="http://www.pdpatchrepo.info/hurleur/pitch-delay_3.pd" rel="nofollow">http://www.pdpatchrepo.info/hurleur/pitch-delay_3.pd</a></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/10</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/10</guid><dc:creator><![CDATA[toxonic]]></dc:creator><pubDate>Thu, 13 Aug 2009 18:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Thu, 13 Aug 2009 18:46:07 GMT]]></title><description><![CDATA[<p>okay, forget about my last posting, i should have read your second last post... sry.<br />
i will think about that, maybe i get an idea......</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/11</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/11</guid><dc:creator><![CDATA[toxonic]]></dc:creator><pubDate>Thu, 13 Aug 2009 18:46:07 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Thu, 13 Aug 2009 19:16:17 GMT]]></title><description><![CDATA[<p>It kind of sounds like what you're describing is having delay with feedback, and having the output being pitch-shifted. But I have a feeling I'm still misunderstanding. What is the pedal you're trying to emulate?</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/12</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/12</guid><dc:creator><![CDATA[Maelstorm]]></dc:creator><pubDate>Thu, 13 Aug 2009 19:16:17 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Fri, 14 Aug 2009 03:41:32 GMT]]></title><description><![CDATA[<p>Are you trying to emulate a pedal such as, say, the Ibanez DE7 delay? I have one and am pretty familiar with how the delay time sweep trick sounds on that pedal.</p>
<p>It's very analog-sounding for a digital delay, so I threw together something based on my very rudimentary knowledge of how bucket brigade analog delays work. I used 5 different delwrite~ and vd~ pairs and modulate the delay times of all vd~s simultaneously. That basically does the simultaneously shifting reading and writing heads thing you talked about (I think?) I also put a filter in the feedback loop to emulate the signal decay in an analog delay. I still hear the ramp-up between frequencies with each echo but it seems to be blurred somewhat. This is as close as I can get to the DE7 right now.</p>
<p>Edit: changed it to 10 delwrite~/vd~ pairs though it's late and I can't actually tell if it sounds any better.</p>
<p><a href="http://www.pdpatchrepo.info/hurleur/bbd-test.pd" rel="nofollow">http://www.pdpatchrepo.info/hurleur/bbd-test.pd</a></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/13</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/13</guid><dc:creator><![CDATA[wkc]]></dc:creator><pubDate>Fri, 14 Aug 2009 03:41:32 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Sat, 22 Aug 2009 10:36:17 GMT]]></title><description><![CDATA[<p>Hi Dan,</p>
<p>i think the effect you want can be acheived by using a array-based aproach rather than a delayline, by writing and reading from the array at changing speed, but I don't know how to do this in Pd. For Max there is a 3rd party object called ipoke~<br />
<a href="http://pierrealexandretremblay.com/no-tv//MaxMSP/" rel="nofollow">http://pierrealexandretremblay.com/no-tv//MaxMSP/</a><br />
that does the trick (the standard max poke~ object has no interpolation, so it can't write at speeds slower/faster than 1). I attached a screenshot from the help file. IMHO this does exactly what you describe.<br />
There is a thread on the list a few weeks ago suggesting such an object for pd vanilla (&quot;tabwriteat~&quot;), but I don't know about interpolation. Also sorce was posted but no ready to use object, maybe someone else can suggest an existing object for pd that does this.</p>
<p><a href="http://img197.imageshack.us/i/ipoke.png/" rel="nofollow"><img src="http://img197.imageshack.us/img197/2122/ipoke.png" alt="" class="img-responsive img-markdown" /></a></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/14</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/14</guid><dc:creator><![CDATA[grg]]></dc:creator><pubDate>Sat, 22 Aug 2009 10:36:17 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Mon, 24 Aug 2009 20:46:45 GMT]]></title><description><![CDATA[<p>Ah, great -thanks for that. That's exactly what I'm looking for.<br />
Moving over to Max a bit more at the mo' so I'll check that out.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/15</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/15</guid><dc:creator><![CDATA[Dan b]]></dc:creator><pubDate>Mon, 24 Aug 2009 20:46:45 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Tue, 15 Sep 2009 01:16:51 GMT]]></title><description><![CDATA[<p>I am not exactly sure what the original intention of ths patch was, but it makes some awsome sounds!! gonna build a metalic noize-box out of it!!!</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/16</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/16</guid><dc:creator><![CDATA[pollyandthephonix]]></dc:creator><pubDate>Tue, 15 Sep 2009 01:16:51 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Sun, 04 Oct 2009 21:13:25 GMT]]></title><description><![CDATA[<p>I just read this thread - there is a [poke~] object in Pd-extended without help documentation (OS X and WinXP). Does anybody know what this does? What lib is it part of?<br />
I got curious about a table based delay in pd like grg describes it for Max, so I'm just wondering.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/17</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/17</guid><dc:creator><![CDATA[ultrasonic]]></dc:creator><pubDate>Sun, 04 Oct 2009 21:13:25 GMT</pubDate></item><item><title><![CDATA[Reply to Different ways of Implementing Delay Loops on Mon, 05 Oct 2009 00:37:35 GMT]]></title><description><![CDATA[<p>since poke is in the cyclone folder, i think it's an adaption of the max object poke~. i found a doc here:<br />
<a href="http://www.cycling74.com/docs/max5/refpages/msp-ref/poke~.html" rel="nofollow">http://www.cycling74.com/docs/max5/refpages/msp-ref/poke~.html</a></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/18</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/2992/different-ways-of-implementing-delay-loops/18</guid><dc:creator><![CDATA[toxonic]]></dc:creator><pubDate>Mon, 05 Oct 2009 00:37:35 GMT</pubDate></item></channel></rss>