-
Notifications
You must be signed in to change notification settings - Fork 36
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
55 additions
and
0 deletions.
There are no files selected for viewing
55 changes: 55 additions & 0 deletions
55
...utorial/Vol.2/Part.06-Sampling.Delay.Granulation/25-Delay(Ring-Buffer)/5.Reverse.delay.pd
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#N canvas 562 57 934 689 12; | ||
#X declare -path else; | ||
#X obj 302 18 declare -path else; | ||
#X obj 146 342 play.file~ 1 violin.wav 1 1; | ||
#X obj 235 387 phasor~ 1; | ||
#X obj 147 500 out~; | ||
#X text 28 57 We've seen how we can alter the pitch of a delay line | ||
by feeding it a ramp signal as the delay positon. Later we'll see how | ||
to implement pitch shifters from delay lines., f 60; | ||
#X obj 235 424 *~ 1000; | ||
#X obj 147 463 ffdelay~ 1000; | ||
#X text 28 218 In the example below we have a delay line with a length | ||
of 1 second. If we have a phasor that takes one second to go from 0ms | ||
to 1000ms \, then it's just compensating for the write speed and we | ||
hear nothing. But since it loops back after a one second cycle \, we | ||
hear clicks at that rate because we're jumping to a new point in the | ||
delay line.; | ||
#X obj 601 493 out~; | ||
#X text 490 24 If the phasor ramp is at a rate just a bit higher than | ||
1 hertz \, we start hearing it play backwards \, but at a very low | ||
pitch. In order to match the regular otiginal speed \, but backwards | ||
\, we need phasor to have a rate of twice as that (2 in this case). | ||
, f 53; | ||
#X text 490 102 But the important thing to notice is that the rate | ||
depends on the delay size/period. Below we have a delay size of two | ||
seconds \, so in order to compensate like we did on the previous example | ||
\, we need a rate of 0.5 hertz (which takes two seconds to ramp from | ||
0 to 2000 ms). And twice as that is 1 hertz., f 53; | ||
#X obj 689 381 phasor~ 1; | ||
#X obj 689 417 *~ 2000; | ||
#X obj 601 457 ffdelay~ 2000; | ||
#X obj 600 345 play.file~ 1 violin.wav 1 1; | ||
#X text 28 109 Anyway \, we can think of this signal as an adjustment | ||
to the regular speed of the delay line. Think also about a vynil turntable | ||
that has its regular speed. We can apply a force into the vinyl and | ||
do some scratching or pitch shifting. If we're shifting it to a lower | ||
pitch \, at one point we can lower so much it becomes silent \, and | ||
after that we even play the disc backwards.; | ||
#X text 490 193 It's also important to note that since we're basically | ||
reading from the delay line at a rate that is twice the period \, in | ||
practice we're only reading half of the delay lenght. I mean \, it | ||
only takes one second to read from a 2 second delay line backwards | ||
\, so we just have a 1 second delay. So set the delay line to twice | ||
as much as you want your playing backwards period to be., f 54; | ||
#X text 306 586 The [rdelay~] (reverse delay) object from ELSE is based | ||
on this princple. Check it out \, read its help file ===>, f 46; | ||
#X obj 473 627 rdelay~; | ||
#X connect 1 0 6 0; | ||
#X connect 2 0 5 0; | ||
#X connect 5 0 6 1; | ||
#X connect 6 0 3 0; | ||
#X connect 11 0 12 0; | ||
#X connect 12 0 13 1; | ||
#X connect 13 0 8 0; | ||
#X connect 14 0 13 0; |