Forums > MaxMSP

prreverse~ beta testing (reversing delay with feedback)

September 19, 2006 | 2:32 pm

Dear Maxers,

I would like to make a max msp object available to the community. Before I
put it on a website and fully ‘release’ it, I would like to invite people to
try it and leave any comments they may have. The first patch below should
be saved as [prreverse~] and somewhere in the search path in order for the
help patch (which should be saved as [prreverse~.help]) to find it. I am
also curious if anyone has come across any similar object or tried anything
similar in the past.

Until it gets taken down, there is more information about a piece that uses
the object here:
http://xenakis.caad.ed.ac.uk/mscpages/s0127815/final_project/lib/reversing_piano.html
and recordings and scores here:

http://xenakis.caad.ed.ac.uk/mscpages/s0127815/final_project/lib/reversing_doc.html

thanks very much,
Peter Reid

first: save the following as prreverse~

#P window setfont "Sans Serif" 18.;
#P window linecount 1;
#P comment 29 23 106 196626 prreverse~;
#B frgb 26 8 57;
#P window setfont "Sans Serif" 9.;
#P comment 29 49 193 196617 reversing delay with selectable feedback;
#P user panel 24 19 203 51;
#X brgb 226 250 200;
#X frgb 0 0 0;
#X border 0;
#X rounded 0;
#X shadow 0;
#X done;
#P comment 592 218 80 196617 messages;
#P newex 18 373 27 196617 + 1;
#P newex 10 421 27 196617 * 0;
#P newex 18 394 27 196617 t b i;
#N vpatcher 20 74 217 202;
#P origin 15 0;
#P outlet 98 68 15 0;
#P inlet 98 37 15 0;
#P connect 0 0 1 0;
#P pop;
#P newobj 189 475 37 196617 p thru;
#P newex 262 452 35 196617 gate~;
#N vpatcher 10 59 715 293;
#P origin 7 77;
#P window setfont "Sans Serif" 9.;
#P window linecount 0;
#P newex 613 65 60 196617 loadmess 0;
#P message 532 132 52 196617 ingate $1;
#P comment 532 52 77 196617 input gate state;
#P newex 532 64 67 196617 loadmess $6;
#P outlet 12 183 15 0;
#P comment 12 52 72 196617 buffer length;
#P message 285 133 44 196617 thru $1;
#P comment 285 52 67 196617 thru state;
#P newex 285 64 67 196617 loadmess $3;
#P message 450 133 44 196617 gate $1;
#P message 149 133 52 196617 interp $1;
#P message 12 133 52 196617 buflen $1;
#P message 367 133 64 196617 feedback $1;
#P window linecount 1;
#P comment 450 52 64 196617 gate state;
#P newex 450 64 67 196617 loadmess $5;
#P comment 149 52 86 196617 interpolation time;
#P newex 149 89 130 196617 if $f1 < 0. then 2. else $f1;
#P newex 149 64 67 196617 loadmess $2;
#P comment 367 52 72 196617 feedback state;
#P newex 367 64 67 196617 loadmess $4;
#P window linecount 2;
#P newex 12 89 101 196617 if $f1 == 0 then 10000 else $f1;
#P window linecount 1;
#P newex 12 64 65 196617 loadmess $1;
#P comment 12 64 63 196617 buffer length;
#P connect 1 0 2 0;
#P connect 2 0 11 0;
#P fasten 21 0 18 0 537 165 17 165;
#P connect 11 0 18 0;
#P fasten 12 0 18 0 154 165 17 165;
#P fasten 16 0 18 0 290 165 17 165;
#P fasten 13 0 18 0 455 165 17 165;
#P fasten 10 0 18 0 372 165 17 165;
#P fasten 22 0 18 0 618 165 17 165;
#P connect 5 0 6 0;
#P connect 6 0 12 0;
#P connect 14 0 16 0;
#P connect 3 0 10 0;
#P connect 8 0 13 0;
#P connect 19 0 21 0;
#P pop;
#P newobj 340 101 74 196617 p initialisation;
#B color 7;
#P window linecount 7;
#P comment 591 62 100 196617 may click if two reverses start if less than
the interpolation time between them , or when changing thru or feedback
states.;
#P window linecount 1;
#P newex 343 240 75 196617 adstatus sigvs;
#P newex 343 260 66 196617 sampstoms~;
#N vpatcher 20 74 620 474;
#N comlet length of signal vector in ms;
#P inlet 159 28 15 0;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 126 110 27 196617 – 0.;
#P newex 126 74 34 196617 * 0.5;
#P newex 93 134 76 196617 pack f f f;
#P newex 93 50 27 196617 f;
#P message 93 157 56 196617 $3 , $1 $2;
#P newex 93 175 58 196617 line~ 1000;
#P newex 50 202 70 196617 tapout~ 1000;
#N comlet from tapin~;
#P inlet 50 28 15 0;
#N comlet bang starts reverse;
#P inlet 93 28 15 0;
#N comlet buflen;
#P inlet 110 28 15 0;
#N comlet reversed audio out;
#P outlet 50 224 15 0;
#P window linecount 5;
#P comment 178 114 100 196617 start delay slide from 1 signal vector ago to
avoid giving feedback to the same signal vector;
#P connect 4 0 5 0;
#P fasten 6 0 5 0 98 194 55 194;
#P connect 5 0 1 0;
#P connect 3 0 8 0;
#P connect 8 0 9 0;
#P connect 9 0 7 0;
#P connect 7 0 6 0;
#P connect 2 0 8 1;
#P fasten 8 0 10 0 98 70 131 70;
#P connect 10 0 11 0;
#P connect 11 0 9 1;
#P fasten 12 0 11 1 164 109 148 109;
#P connect 12 0 9 2;
#P pop;
#P newobj 441 309 59 196617 p reverser;
#N vpatcher 20 74 620 474;
#N comlet length of signal vector in ms;
#P inlet 159 28 15 0;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 126 110 27 196617 – 0.;
#P newex 126 74 34 196617 * 0.5;
#P newex 93 134 76 196617 pack f f f;
#P newex 93 50 27 196617 f;
#P message 93 157 56 196617 $3 , $1 $2;
#P newex 93 175 58 196617 line~ 1000;
#P newex 50 202 70 196617 tapout~ 1000;
#N comlet from tapin~;
#P inlet 50 28 15 0;
#N comlet bang starts reverse;
#P inlet 93 28 15 0;
#N comlet buflen;
#P inlet 110 28 15 0;
#N comlet reversed audio out;
#P outlet 50 224 15 0;
#P window linecount 5;
#P comment 178 114 100 196617 start delay slide from 1 signal vector ago to
avoid giving feedback to the same signal vector;
#P fasten 6 0 5 0 98 194 55 194;
#P connect 4 0 5 0;
#P connect 5 0 1 0;
#P connect 3 0 8 0;
#P connect 8 0 9 0;
#P connect 9 0 7 0;
#P connect 7 0 6 0;
#P connect 2 0 8 1;
#P fasten 8 0 10 0 98 70 131 70;
#P connect 10 0 11 0;
#P connect 11 0 9 1;
#P fasten 12 0 11 1 164 109 148 109;
#P connect 12 0 9 2;
#P pop;
#P newobj 303 309 59 196617 p reverser;
#N vpatcher 20 74 217 202;
#P origin 15 0;
#P outlet 98 68 15 0;
#P inlet 98 37 15 0;
#P connect 0 0 1 0;
#P pop;
#P newobj 303 409 37 196617 p thru;
#P newex 441 380 34 196617 *~ 0.;
#P newex 465 352 43 196617 line~ 0.;
#N vpatcher 86 162 686 562;
#P window setfont "Sans Serif" 9.;
#P window linecount 0;
#P newex 90 88 87 196617 print prreverse~;
#P newex 90 66 206 196617 sprintf prreverse~ doesn’t understand ‘%s’;
#P window linecount 4;
#P comment 378 118 154 196617 with only one voice , clicks can occur when a
new reverse is triggered before the fade on the previous one has finished.;
#P window linecount 0;
#P newex 50 88 40 196617 change;
#P window linecount 1;
#P newex 70 66 21 196617 t 0;
#P newex 50 66 21 196617 t 1;
#P newex 50 44 51 196617 sel 1 0;
#N comlet bang to start left reverser;
#P outlet 101 350 15 0;
#N comlet bang to start second reverser;
#P outlet 152 350 15 0;
#N comlet level of second reverser;
#P outlet 314 350 15 0;
#P window linecount 0;
#P newex 314 261 21 196617 t 0;
#P newex 314 317 44 196617 pack f f;
#P newex 220 317 44 196617 pack f f;
#P newex 50 317 44 196617 pack f f;
#P window linecount 1;
#P newex 152 261 31 196617 t b 1;
#N comlet 0/1 toggles reverse;
#P inlet 50 22 15 0;
#P newex 271 231 53 196617 gate 2 1;
#P newex 101 231 61 196617 gate 2 1;
#P window linecount 0;
#P newex 101 170 27 196617 + 1;
#P toggle 101 148 15 0;
#P newex 50 113 41 196617 sel 1 0;
#P window linecount 1;
#P newex 271 261 21 196617 t 0;
#P newex 220 261 24 196617 t 1.;
#P newex 101 261 34 196617 t b 1;
#P newex 50 261 24 196617 t 0.;
#P newex 50 199 20 196617 t b;
#P newex 220 199 20 196617 t b;
#N comlet interpolation time;
#P inlet 348 22 15 0;
#N comlet incoming signal level;
#P outlet 50 350 15 0;
#N comlet level of first reverser;
#P outlet 220 350 15 0;
#P comment 378 51 414 196617 Distributes each reverse message between
alternate reversing voices to prevent clicks.;
#P connect 15 0 24 0;
#P connect 24 0 25 0;
#P connect 25 0 27 0;
#P connect 26 0 27 0;
#P connect 27 0 10 0;
#P connect 10 0 5 0;
#P connect 5 0 6 0;
#P connect 8 0 17 0;
#P connect 6 0 17 0;
#P connect 17 0 2 0;
#P connect 24 1 26 0;
#P fasten 3 0 17 1 353 226 89 226;
#P connect 24 2 29 0;
#P connect 29 0 30 0;
#P fasten 10 1 11 0 70 139 106 139;
#P connect 11 0 12 0;
#P connect 12 0 13 0;
#P connect 13 0 7 0;
#P connect 7 0 23 0;
#P connect 5 0 13 1;
#P connect 13 1 16 0;
#P connect 16 0 22 0;
#P fasten 10 1 4 0 70 139 225 139;
#P connect 4 0 8 0;
#P connect 7 1 18 0;
#P connect 9 0 18 0;
#P connect 18 0 1 0;
#P fasten 3 0 18 1 353 226 259 226;
#P fasten 12 0 14 0 106 193 276 193;
#P connect 14 0 9 0;
#P connect 4 0 14 1;
#P connect 14 1 20 0;
#P connect 16 1 19 0;
#P connect 20 0 19 0;
#P connect 19 0 21 0;
#P fasten 3 0 19 1 353 135 353 135;
#P pop;
#P newobj 522 238 66 196617 p linecontrol;
#P newex 189 425 27 196617 + 1;
#P window linecount 4;
#P comment 592 329 154 196617 uses the gated output signal as
the input signal. 2 mixes the reversed output with the input signal;
#P comment 592 441 154 196617 sets the length in ms of the
transition fade between forwards and reverse audio.;
#P window linecount 1;
#P newex 189 452 71 196617 selector~ 2 1;
#P window linecount 6;
#P comment 318 24 161 196617 buffer length (ms) ; interpolation time (ms)
; thru state (1/0) ; feedback state (1/0) ; gate state (1/0) ; and input
gate state (1/0);
#P window linecount 5;
#P comment 592 379 154 196617 sets the length in ms of the
tapin~ buffer. This is twice the length the reversed signal can be. default:
10000 ms.;
#P comment 592 267 154 196617 cuts the dry signal during reverse
playback when ‘thru 1′ is set. (gate 0 adds the reversed signal to the dry
when ‘thru 1′ is set);
#P window linecount 2;
#P comment 592 239 154 196617

plays the dry signal (thru 0 plays
only the reversed);
#P window linecount 1;
#P comment 25 117 172 196617 0 stops;
#P newex 318 142 215 196617 route thru gate buflen interp ingate feedback;
#B color 7;
#P toggle 352 182 15 0;
#P newex 74 361 67 196617 *~ 0.;
#P newex 131 339 44 196617 line~ 0.;
#P toggle 318 182 15 0;
#P newex 10 454 75 196617 selector~ 2;
#P newex 303 380 34 196617 *~ 0.;
#P outlet 303 505 15 0;
#N comlet 1 triggers reverse playback , 0 stops;
#P inlet 318 101 15 0;
#N comlet sound in;
#P inlet 219 103 15 0;
#P newex 327 352 43 196617 line~ 0.;
#P newex 303 246 35 196617 tapin~;
#P window linecount 3;
#P comment 25 76 172 196617 1 plays back audio in reverse from the present
moment into the past until half the buffer length ago.;
#P window linecount 2;
#P comment 591 36 100 196617 repeated 1s and 0s ignored.;
#P window linecount 3;
#P comment 417 240 51 196617 no. of ms in a signal vector;
#P window linecount 5;
#P comment 335 431 137 196617 Black cables are for the general operation of
the object , green cables are for messages that change the object’s
settings.;
#P window linecount 1;
#P comment 592 512 100 196617 Peter Reid 2006;
#P comment 236 24 80 196617 arguments are:;
#P fasten 17 3 27 1 425 209 583 209;
#P lcolor 8;
#P connect 17 6 27 0;
#P fasten 33 1 31 3 404 296 356 296;
#P lcolor 8;
#P fasten 33 1 32 3 404 296 494 296;
#P lcolor 8;
#P fasten 17 2 6 0 391 225 308 225;
#P lcolor 8;
#P fasten 17 2 31 2 391 235 340 235;
#P lcolor 8;
#P fasten 17 2 32 2 391 225 478 225;
#P lcolor 8;
#P connect 28 0 29 1;
#P fasten 27 4 28 0 583 345 470 345;
#P fasten 27 2 32 1 555 292 462 292;
#P connect 32 0 29 0;
#P connect 6 0 31 0;
#P fasten 6 0 32 0 308 280 446 280;
#P connect 17 1 16 0;
#P lcolor 8;
#P fasten 34 1 33 0 413 258 348 258;
#P connect 7 0 11 1;
#P fasten 27 3 7 0 569 341 332 341;
#P fasten 27 1 31 1 541 288 324 288;
#P connect 17 0 13 0;
#P lcolor 8;
#P connect 9 0 17 0;
#P connect 36 0 17 0;
#P lcolor 8;
#P fasten 12 0 10 0 15 501 308 501;
#P fasten 30 0 37 1 308 438 292 438;
#P connect 30 0 10 0;
#P fasten 29 0 30 0 446 403 308 403;
#P connect 11 0 30 0;
#P connect 31 0 11 0;
#P fasten 38 0 6 0 194 495 298 495 298 238 308 238;
#P fasten 17 5 37 0 493 230 267 230;
#P lcolor 8;
#P connect 15 0 12 2;
#P fasten 15 0 23 2 79 448 254 448;
#P fasten 8 0 12 1 224 199 47 199;
#P fasten 8 0 15 0 224 199 79 199;
#P connect 8 0 23 1;
#P fasten 37 0 38 0 267 472 194 472;
#P connect 23 0 38 0;
#P connect 26 0 23 0;
#P fasten 17 4 26 0 459 220 194 220;
#P lcolor 8;
#P connect 14 0 15 1;
#P fasten 27 0 14 0 527 330 136 330;
#P connect 39 1 40 1;
#P connect 41 0 39 0;
#P fasten 16 0 41 0 357 215 23 215;
#P lcolor 8;
#P connect 40 0 12 0;
#P connect 39 0 40 0;
#P fasten 13 0 40 0 323 210 15 210;
#P lcolor 8;
#P window clipboard copycount 46;

secondly, save this as prreverse~.help

#P window setfont "Sans Serif" 9.;
#P window linecount 7;
#P comment 137 222 124 196617 arguments are: buffer length (ms) ;
interpolation time (ms) ; thru state (1/0) ; feedback state (1/0) ; gate
state (1/0) ; and input gate state (1/0);
#P window linecount 2;
#P comment 281 73 212 196617 (if held for longer than half the buffer length
, it acts as a simple delay with feedback);
#P window setfont "Sans Serif" 18.;
#P window linecount 1;
#P comment 22 16 106 196626 prreverse~;
#B frgb 26 8 57;
#P window setfont "Sans Serif" 9.;
#P comment 22 42 292 196617 reversing delay with selectable feedback;
#P user panel 17 12 400 50;
#X brgb 226 250 200;
#X frgb 0 0 0;
#X border 0;
#X rounded 0;
#X shadow 0;
#X done;
#N vpatcher 366 282 849 656;
#P origin 0 -51;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P hidden newex 42 37 62 196617 del 100000;
#P hidden newex 42 62 21 196617 t 0;
#P hidden newex 42 15 20 196617 t b;
#P flonum 99 223 48 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user ezdac~ 42 375 86 408 0;
#P button 42 150 15 0;
#P message 218 174 31 196617 $1 1;
#P toggle 253 247 27 0;
#P newex 265 199 21 196617 t 0;
#P newex 265 174 61 196617 delay 1000;
#P message 42 223 43 196617 $1 250;
#P newex 42 338 221 196617 prreverse~ 3000 100 1 1;
#P newex 42 199 38 196617 * 110;
#N counter 1 14;
#X flags 0 0;
#P newobj 42 174 68 196617 counter 1 14;
#P newex 253 129 64 196617 metro 1250;
#P toggle 42 84 30 0;
#P newex 42 307 121 196617 *~;
#P message 153 174 64 196617 0.1 1 0 750;
#P newex 42 129 64 196617 metro 1000;
#P newex 42 278 40 196617 tri~;
#P newex 153 247 32 196617 line~;
#P newex 42 247 32 196617 line~;
#P window linecount 0;
#P comment 71 84 100 196617 start/stop;
#P comment 348 168 100 196617 when feedback is on , the reversed signal is
fed back into the buffer so sounds can be built up in alternately forward
and reverse layers.;
#P hidden comment 118 41 186 196617 shouldn’t be left running forever
really!;
#P hidden fasten 9 0 22 0 47 120 36 120 36 10 47 10;
#P hidden connect 22 0 24 0;
#P hidden connect 24 0 23 0;
#P hidden connect 23 0 9 0;
#P connect 9 0 6 0;
#P connect 6 0 19 0;
#P connect 19 0 11 0;
#P connect 11 0 12 0;
#P connect 12 0 14 0;
#P connect 14 0 3 0;
#P connect 3 0 5 0;
#P connect 5 0 8 0;
#P connect 8 0 13 0;
#P connect 13 0 20 0;
#P fasten 13 0 20 1 46 354;
#P fasten 12 0 21 0 47 219 104 219;
#P fasten 19 0 7 0 47 169 158 169;
#P connect 7 0 4 0;
#P connect 18 0 4 0;
#P connect 4 0 8 1;
#P fasten 9 0 18 0 47 117 223 117;
#P fasten 9 0 10 0 47 117 258 117;
#P connect 10 0 17 0;
#P connect 16 0 17 0;
#P connect 17 0 13 1;
#P connect 10 0 15 0;
#P connect 15 0 16 0;
#P pop;
#P newobj 372 255 57 196617 p feedback;
#P window linecount 3;
#P comment 518 293 155 196617 soft gates the input during reverse
playback before it reaches buffer.;
#P window linecount 2;
#P comment 518 267 154 196617 feeds the reversed signal back
into buffer.;
#P window linecount 4;
#P comment 518 141 154 196617 sets the length in ms of the
transition fade between forwards and reverse audio.;
#P window linecount 5;
#P comment 518 79 154 196617 sets the length in ms of the
tapin~ buffer. This is twice the length the reversed signal can be. default:
10000 ms.;
#P window linecount 4;
#P comment 518 217 154 196617 soft gates (ie faded over the interp
time) the dry signal during reverse playback (not heard if ‘thru 0′ is
set).;
#P window linecount 2;
#P comment 518 191 154 196617

plays the dry signal to the outuput.;
#P user gain~ 80 137 22 47 158 0 1.071519 7.94321 10.;
#P user gain~ 17 137 22 47 158 0 1.071519 7.94321 10.;
#P user ezdac~ 17 297 61 330 0;
#P toggle 126 142 15 0;
#P window linecount 1;
#P newex 146 113 21 196617 t 1;
#P newex 126 113 21 196617 t 0;
#P user ubutton 126 73 33 31 0 0;
#N vpatcher 398 247 998 647;
#N comlet test signal out;
#P outlet 35 271 15 0;
#P window setfont "Sans Serif" 9.;
#P newex 35 24 48 196617 loadbang;
#P toggle 35 48 15 0;
#P window linecount 1;
#P newex 35 223 121 196617 *~;
#P message 146 111 64 196617 0.1 1 0 500;
#P window linecount 0;
#P message 35 111 74 196617 440 , 110 500;
#P newex 35 81 58 196617 metro 700;
#P window linecount 1;
#P newex 35 189 40 196617 tri~;
#P newex 146 151 32 196617 line~;
#P window linecount 0;
#P newex 35 151 32 196617 line~;
#P connect 8 0 7 0;
#P connect 7 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 0 0;
#P connect 0 0 2 0;
#P connect 2 0 6 0;
#P connect 6 0 9 0;
#P connect 3 0 5 0;
#P connect 5 0 1 0;
#P connect 1 0 6 1;
#P pop;
#P newobj 17 73 61 196617 p testsound;
#P user ezadc~ 80 73 124 106 0;
#P toggle 443 144 15 0;
#P toggle 377 144 15 0;
#P toggle 331 144 15 0;
#P toggle 285 144 15 0;
#P flonum 231 144 52 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 177 144 52 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 443 172 52 196617 ingate $1;
#P newex 17 222 119 196617 prreverse~ 4000 100 1;
#P message 285 172 44 196617 thru $1;
#P message 331 172 44 196617 gate $1;
#P message 231 172 52 196617 interp $1;
#P message 177 172 52 196617 buflen $1;
#P message 377 172 64 196617 feedback $1;
#P user panel 126 73 33 32;
#X brgb 191 191 191;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P window linecount 2;
#P comment 169 73 107 196617 < -- click and hold here to cause reversing;
#P window linecount 1;
#P comment 520 29 100 196617 by Peter Reid 2006;
#P comment 309 255 64 196617 double click:;
#P connect 18 0 24 0;
#P connect 24 0 9 0;
#P connect 25 0 9 0;
#P connect 9 0 23 0;
#P connect 9 0 23 1;
#P connect 17 1 25 0;
#P connect 17 0 25 0;
#P connect 19 0 20 0;
#P connect 21 0 22 0;
#P connect 20 0 22 0;
#P connect 22 0 9 1;
#P fasten 5 0 9 1 182 204 131 204;
#P fasten 6 0 9 1 236 204 131 204;
#P fasten 8 0 9 1 290 204 131 204;
#P fasten 7 0 9 1 336 204 131 204;
#P fasten 4 0 9 1 382 204 131 204;
#P fasten 10 0 9 1 448 204 131 204;
#P connect 19 1 21 0;
#P connect 11 0 5 0;
#P connect 12 0 6 0;
#P connect 13 0 8 0;
#P connect 14 0 7 0;
#P connect 15 0 4 0;
#P connect 16 0 10 0;
#P window clipboard copycount 38;


September 19, 2006 | 5:21 pm

thats pretty useful. thanks

i made something similar using record~ and play~. got some nice effects using long loops, reversing the last few seconds of what i’d been doing for a sort of time sucking effect. your object looks better designed than my patch though

maybe an adjustable feedback level?

the help file text is a bit confusingly laid out


September 20, 2006 | 7:55 am

Peter Reid wrote:
> Dear Maxers,
>
> I would like to make a max msp object available to the community.
> Before I put it on a website and fully ‘release’ it, I would like to
> invite people to try it and leave any comments they may have.

First I’d never mix the original to the output in an
abstraction/external. If you need it you can easily patch it, if you
don’t want it it should not be there…

One enhancement comes to mind: if you hold the bottom for the defined
time, you’ll get a non reversed signal, but if you push it again you get
the reverse again. simply restart the reverse automatically when it
comes to the end…

> I am also curious if anyone has come across any similar object or
> tried anything similar in the past.

I once came across a hardware delay which was capable of doing reverse.
It would use pauses in the signal to start a reverse playback. I always
thought this is a cool idea…

Stefan


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
– _|_)—-|—–()————–
———-()——–www.ccmix.com


September 20, 2006 | 8:32 am

Thanks for sharing that.
The adjustable feedback level would be a great option.
And that’s true the help file is a bit confusing
1. you should prepend set you’re parameters with they’re default values
2. replace testsound by (or add) a sfplay. It’s always clearer to me,
for understanding what’s going on, to play a sound I know very well.

Great job thanks

Léo


September 20, 2006 | 9:30 am


September 20, 2006 | 11:00 am

It’s look like flapper~ object
from percolate by Dan Trueman and Luke Dubois

"the flapper~ is a bit like scrub~, except it takes a trigger to set it going, and then scrubs (flaps) back and forth between the trigger point and, well, the "present" (current sample), for as long as you want it to. you can put an envelope on the duration you specify, and scrub away."

http://www.music.columbia.edu/PeRColate/
and

http://lukedubois.com/PeRcolate_06.zip

GP

http://perso.orange.fr/Paresys/ARGO/


September 20, 2006 | 11:12 am

personally i find the first object you posted more useful. the only other thing i’d want would be variable feedback amount.

it makes sense to have a thru and gate option in this type of object, if you want to use it for making music. i’m happy that youve coded this in, so i dont have to do it myself!

the reverser that i made had a similar gate option, to cut the thru audio. its just musically useful is all


September 20, 2006 | 1:45 pm

signal rate buffer length would be nice, for slowing speeding pitching etc.


September 20, 2006 | 4:59 pm

> > I am also curious if anyone has come across any similar object or
> > tried anything similar in the past.

i have several of them, one own and two or three taken from
other people.

recently i added a reverse module to my "modular" tapping
delay building blocks.

i also have a reverse reverb – but after a while i found out
its bullshit, reversed reverb simply does not sound like
reverb anymore ;)

havent looked in your patch yet i want to add one idea:
a paermanently reverse-playing delay should give you
the option to "sync" its loops start points to something
(can be a bang message) … think of drumloop.


April 18, 2007 | 11:50 am

Dear Maxlist.

In response to feedback on this thread, I have updated the reversing objects. prrev~ is a very simple object that just does the reversing with no feedback. prreverse~ is more or less the same as before, while prrevback~ gives control over almost all the internal sound levels including the feedback level.

The help patches now include an sfplay~.

More information can be found here:

peterreid.org/code/

and direct link to the abstractions/helpfiles

peterreid.org/code/

Please leave suggestions or feedback. I hope you find these objects interesting and/or useful.

peter



FP
August 20, 2007 | 4:53 pm

here’s a reverse plugin made from the peter reid initial patch.

http://www.pan-etc.net/nav/dev/dev-plugin.htm
fp.Reverse

this is not perfect…
…but good exercice. :-)



f.e
August 21, 2007 | 8:17 am



FP
August 21, 2007 | 2:21 pm



FP
August 21, 2007 | 2:29 pm

done on the website and here’s:

is it ok like that ?

just to confirm, is it unecessary to do when building plugin (or
appli) ?
i saw the max window telling it did it by itself.

f./


Viewing 14 posts - 1 through 14 (of 14 total)