Maybe the attached abstractions are useful. It is a switchable delread~ construction to smoothly change the delay time of a delwrite~ object.
It is poorly documented but I send it anyway. absLesekopf is the main abstraction. absSmooth is used by it absLesekopf-help isn't really what the name promises but it at least shows how to set up absLesekopf
HTH Urs
Alexandre Quessy schrieb:
Hi Pd-lovers, As I am building my set of abstractions for musical synthesis, I am working on a kind of a digital delay effect. I was wondering if there was something out-of-the-box I could use instead of my current multiple tabread~ and tabwrite~ approach. I just finished a couples of patches to make scores, bars and a poly-rhytmic metronome. (and thanks for the drum-machines, by the way)
So, any hint to help me build a perfect digital delay ? I think I should use multiples tabwrite~ and a couple of delay~. I want standard delay, and loops of variable length that can be re-called over and over. (i.e. a loop can be anything between 500 and 4000 ms long)
aalex
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
#N canvas 230 116 232 233 12; #X obj 14 159 line~; #X obj 14 98 inlet; #X obj 15 191 outlet~; #X text 13 8 Abstraction absSmooth Smoothes the input With the right inlet the default time (10 ms) can be changed.; #X obj 14 128 pack 0 $1; #X connect 0 0 2 0; #X connect 1 0 4 0; #X connect 4 0 0 0;
#N canvas 0 0 729 385 12; #X obj 10 259 delread~ ch1 0; #X obj 135 305 *~; #X obj 135 184 spigot; #X obj 135 258 delread~ ch2 0; #X floatatom 187 214 5 0 0 0 - - -; #X obj 135 134 inlet; #X obj 264 132 inlet; #X obj 10 303 *~; #X text 51 83 When 1 the new delay time is set and the output fades in When 0 the output fades out; #X text 6 23 Switchable Stereo delread; #X text 7 38 Left inlet takes a delay time (in ms); #X text 7 57 Right inlet takes 1 or 0; #X text 7 5 Abstraction Lesekopf; #X obj 264 276 absSmooth 10; #X obj 136 343 throw~ delOut2; #X obj 10 343 throw~ delOut1; #X text 399 136 Assumes the following modules; #X text 398 151 to be present in the patch:; #X text 398 178 delwrite~ ch1 X; #X text 398 191 delwrite~ ch2 X; #X text 426 213 X being the desired max length; #X text 398 236 catch~ delOut1; #X text 398 249 catch~ delOut2; #X text 425 271 as the output busses for the delay; #X text 186 231 Debugging; #X text 396 311 Two objects have to be used in parallel; #X text 396 328 that alternatingly receive 0 and 1; #X connect 0 0 7 0; #X connect 1 0 14 0; #X connect 2 0 0 0; #X connect 2 0 3 0; #X connect 2 0 4 0; #X connect 3 0 1 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 6 0 13 0; #X connect 7 0 15 0; #X connect 13 0 7 1; #X connect 13 0 1 1;
#N canvas 0 0 684 428 12; #N canvas 0 0 513 320 toggle 0; #X obj 90 127 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 90 149 int; #X obj 128 149 + 1; #X text 161 149 Counter; #X text 162 125 Bang for each new delay time; #X obj 90 179 mod 2; #X obj 27 100 inlet; #X obj 90 261 outlet; #X obj 153 260 outlet; #X obj 153 206 - 1; #X obj 153 233 * -1; #X obj 27 261 outlet; #X text 164 180 Div by 2 toggles 0/1; #X text 11 10 Subpatch toggle Takes an integer and passes it to the left output For each new input the right outlets toggle between 0 and 1; #X text 211 205 1 - 1 = 0 , 0 - 1 = -1; #X text 203 232 0 * -1 = 0 , -1 * -1 = 1; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 1 0 5 0; #X connect 2 0 1 1; #X connect 5 0 7 0; #X connect 5 0 9 0; #X connect 6 0 0 0; #X connect 6 0 11 0; #X connect 9 0 10 0; #X connect 10 0 8 0; #X restore 347 164 pd toggle; #X obj 436 234 absLesekopf; #X obj 331 233 absLesekopf; #X obj 11 120 delwrite~ ch1 25300; #X obj 71 88 delwrite~ ch2 25300; #X obj 13 45 adc~ 1 2; #X obj 10 269 catch~ delOut1; #X obj 139 269 catch~ delOut2; #X text 10 243 Stereo out; #X obj 16 346 dac~ 1 2; #X msg 318 23 1000; #X msg 345 49 3000; #X msg 363 75 8000; #X msg 379 99 25300; #X text 407 40 new delay time in ms; #X text 429 165 toggles right and left Lesekopf; #X text 332 262 Lesekopf grabs delwrite~; #X text 330 278 and throws~ to delOut; #X text 15 7 comment; #X connect 0 0 1 0; #X connect 0 0 2 0; #X connect 0 1 2 1; #X connect 0 2 1 1; #X connect 5 0 3 0; #X connect 5 1 4 0; #X connect 6 0 9 0; #X connect 7 0 9 1; #X connect 10 0 0 0; #X connect 11 0 0 0; #X connect 12 0 0 0; #X connect 13 0 0 0;