Forums > MaxMSP

Groove patch

January 14, 2008 | 7:20 pm

Hi, I am trying to make a looper using groove~ modules.
I would like to use just standard max msp externals, and for this reason I am not using Xgroove~.
I’ve made some attempts but the looper doesn’t work as expected, and I am running out of ideas.
The looper should handle sound files, allow adjustable crossfade (range in ms), and allow continuous variable speedrate.
Can someone help me?
Here’s the patch I am working on at the moment.

max v2;
#N vpatcher 22 101 1263 970;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P message 592 175 26 9109513 stop;
#B color 6;
#P comment 2 199 62 9109513 Speed rate;
#P comment 106 92 107 9109513 Press Spacebar to Stop;
#P button 153 151 15 0;
#P message 125 110 26 9109513 stop;
#B color 6;
#P flonum 725 439 88 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P button 512 398 15 0;
#P message 512 420 14 9109513 0;
#P message 537 425 14 9109513 1;
#P button 537 402 15 0;
#P newex 626 300 27 9109513 *~;
#N vpatcher 257 227 568 491;
#P window setfont "Sans Serif" 9.;
#P newex 50 151 35 9109513 pass~;
#N comlet Delay Output;
#P outlet 50 199 15 0;
#N comlet Delay input;
#P inlet 50 36 15 0;
#P comment 88 141 164 9109513 put pass~ in your subpatch to guarantee a zeroed output signal when it is switched off with mute~;
#P user panel 39 134 219 50;
#X brgb 255 255 255;
#X frgb 255 232 43;
#X border 2;
#X rounded 0;
#X shadow 0;
#X done;
#P connect 2 0 4 0;
#P connect 4 0 3 0;
#P pop;
#P newobj 706 498 51 9109513 p muteme;
#N vpatcher 257 227 568 491;
#P window setfont "Sans Serif" 9.;
#P newex 50 151 35 9109513 pass~;
#N comlet Delay Output;
#P outlet 50 199 15 0;
#N comlet Delay input;
#P inlet 50 36 15 0;
#P comment 88 141 164 9109513 put pass~ in your subpatch to guarantee a zeroed output signal when it is switched off with mute~;
#P user panel 39 134 219 50;
#X brgb 255 255 255;
#X frgb 255 232 43;
#X border 2;
#X rounded 0;
#X shadow 0;
#X done;
#P connect 2 0 4 0;
#P connect 4 0 3 0;
#P pop;
#P newobj 281 507 51 9109513 p muteme;
#P newex 706 460 80 9109513 tapout~ 1000000;
#B color 10;
#P newex 706 388 71 9109513 tapin~ 1000000;
#B color 5;
#P button 90 135 28 6;
#P hidden newex 59 89 46 9109513 select 32;
#P message 630 196 61 9109513 loopinterp $1;
#P message 178 169 61 9109513 loopinterp $1;
#P hidden newex 59 64 40 9109513 key;
#P message 156 170 14 9109513 0;
#P message 133 170 14 9109513 1;
#P message 254 169 44 9109513 startloop;
#P newex 720 413 115 9109513 expr $f1-(($f1/100.0)*15.);
#P toggle 582 457 15 0;
#P newex 582 475 34 9109513 mute~;
#P toggle 501 457 15 0;
#P newex 500 477 34 9109513 mute~;
#P comment 388 410 79 9109513 Fade Time (ms);
#P flonum 348 408 35 9 0. 400. 3 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 359 365 41 9109513 select 0;
#P comment 300 387 51 9109513 Fade OUT;
#P comment 361 386 42 9109513 Fade IN;
#N vpatcher 488 273 1088 673;
#P window setfont "Sans Serif" 9.;
#P comment 136 116 79 9109513 Fade TIME (ms);
#P newex 65 89 43 9109513 onebang;
#N comlet Fade Time (ms);
#P inlet 91 35 15 0;
#N comlet OUTput value ramp;
#P outlet 65 235 15 0;
#N comlet Fade OUT – bang;
#P inlet 132 35 15 0;
#N comlet Fade IN – bang;
#P inlet 60 35 15 0;
#P comment 152 60 51 9109513 Fade OUT;
#P button 131 60 15 0;
#P flonum 91 115 37 9 0. 400. 3 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 131 146 46 9109513 1. , 0. $1 ,;
#P button 60 60 15 0;
#P message 65 141 46 9109513 0. , 1. $1 ,;
#P newex 65 166 44 9109513 line 0. 1.;
#P comment 78 60 42 9109513 Fade IN;
#P connect 8 0 3 0;
#P connect 3 0 12 0;
#P connect 5 0 2 0;
#P connect 12 0 2 0;
#P connect 2 0 1 0;
#P connect 4 0 1 0;
#P connect 1 0 10 0;
#P connect 11 0 5 0;
#P connect 6 0 12 1;
#P connect 9 0 6 0;
#P connect 6 0 4 0;
#P connect 5 0 4 0;
#P pop;
#P newobj 305 430 97 9109513 patcher FADEin-out;
#P user meter~ 706 530 786 543 50 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
#P user meter~ 282 535 362 548 50 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
#P message 640 220 43 9109513 loop $1;
#P message 167 198 43 9109513 loop $1;
#P newex 278 455 27 9109513 *~;
#P newex 297 252 73 9109513 snapshot~ 1 1;
#P newex 297 274 41 9109513 * 100.;
#P flonum 298 345 61 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 297 297 61 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 298 323 40 9109513 % 100;
#P newex 297 366 52 9109513 select 85;
#P flonum 699 227 62 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 597 220 29 9109513 sig~;
#P newex 616 249 177 9109513 groove~ sound1;
#P message 163 665 29 9109513 stop;
#P message 149 641 67 9109513 startwindow;
#P newex 220 670 31 9109513 dac~;
#P flonum 214 201 62 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P button 274 33 15 0;
#P flonum 724 84 59 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 647 88 59 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 573 88 59 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 499 88 59 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 425 88 59 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 2;
#P comment 721 105 58 9109513 total buffer time (ms);
#P comment 646 107 62 9109513 release loop end (ms);
#P comment 573 106 62 9109513 release loop start (ms);
#P comment 499 107 62 9109513 sustain loop end (ms);
#P comment 269 103 68 9109513 sampling rate of the file;
#P comment 425 107 62 9109513 sustain loop start (ms);
#P window linecount 3;
#P comment 356 80 37 9109513 pitch info as a list;
#P window linecount 2;
#P comment 800 83 93 9109513 name of most recently loaded file;
#P flonum 273 84 59 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P newex 274 61 541 9109513 info~ sound1;
#P newex 73 224 46 9109513 + 0.001;
#P window setfont "Sans Serif" 14.;
#P flonum 60 197 60 14 0 0 0 139 0 0 0 40 204 140 222 222 222 0 0 0;
#P window setfont "Sans Serif" 9.;
#P newex 134 198 29 9109513 sig~;
#P newex 131 226 177 9109513 groove~ sound1;
#P message 150 29 43 9109513 replace;
#B color 6;
#P newex 150 53 78 9109513 buffer~ sound1;
#P comment 296 33 132 9109513 bang to send info on buffer;
#P newex 231 639 27 9109513 +~;
#P comment 21 141 62 9109513 Click to start;
#P window setfont "Sans Serif" 10.;
#P comment 32 29 114 9109514 first , load an audio file;
#P window setfont "Sans Serif" 12.;
#P window linecount 6;
#P comment 873 243 162 9109516 This looper should: 1) – Loop a soundfile 2) – Allow crossfade (specifying a range in ms) 3) – allow

continuous variable speedrate any help?;
#P window setfont "Sans Serif" 9.;
#P window linecount 2;
#P comment 835 408 154 9109513 Delay the second groove by 85% (not working);
#P hidden connect 60 0 63 0;
#P connect 58 0 10 0;
#P connect 59 0 10 0;
#P connect 10 0 11 0;
#P hidden connect 63 0 75 0;
#P connect 57 0 8 0;
#P connect 75 0 8 0;
#P connect 61 0 8 0;
#P connect 42 0 8 0;
#P connect 9 0 8 0;
#P connect 64 0 58 0;
#P hidden connect 11 0 9 0;
#P connect 7 0 6 0;
#P connect 75 0 76 0;
#P connect 76 0 59 0;
#P connect 58 0 42 0;
#P connect 10 0 61 0;
#P connect 28 0 8 1;
#P connect 4 0 29 0;
#P connect 30 0 29 0;
#P connect 31 0 29 0;
#P connect 67 0 4 0;
#P connect 4 0 29 1;
#P connect 68 0 4 1;
#P connect 10 0 57 0;
#P connect 12 0 13 0;
#P connect 10 0 27 0;
#P connect 27 0 12 0;
#P connect 8 0 41 0;
#P connect 52 0 67 0;
#P connect 41 0 67 0;
#P connect 67 0 44 0;
#P connect 46 0 41 1;
#P connect 26 0 8 2;
#P connect 8 1 40 0;
#P connect 40 0 39 0;
#P connect 39 0 37 0;
#P connect 38 0 35 0;
#P connect 37 0 36 0;
#P connect 36 0 38 0;
#P connect 49 0 46 0;
#P connect 50 0 46 1;
#P connect 38 0 49 0;
#P connect 35 0 46 2;
#P connect 12 2 22 0;
#P connect 12 3 23 0;
#P connect 53 0 52 0;
#P connect 71 0 53 0;
#P connect 72 0 53 0;
#P connect 64 0 73 0;
#P connect 73 0 72 0;
#P connect 59 0 70 0;
#P connect 70 0 71 0;
#P connect 12 4 24 0;
#P connect 72 0 55 0;
#P connect 71 0 55 0;
#P connect 55 0 54 0;
#P connect 76 0 79 0;
#P connect 11 0 33 0;
#P connect 57 0 32 0;
#P connect 62 0 32 0;
#P connect 33 0 32 0;
#P connect 43 0 32 0;
#P connect 75 0 32 0;
#P connect 79 0 32 0;
#P connect 32 0 69 0;
#P connect 58 0 43 0;
#P connect 46 0 69 1;
#P connect 12 5 25 0;
#P connect 34 0 32 1;
#P connect 69 0 65 0;
#P connect 74 0 66 0;
#P connect 65 0 66 0;
#P connect 54 0 68 0;
#P connect 66 0 68 0;
#P connect 68 0 45 0;
#P connect 26 0 56 0;
#P connect 12 6 26 0;
#P connect 56 0 74 0;
#P connect 26 0 32 2;
#P pop;

Thank you very much,

Carlo


January 14, 2008 | 7:51 pm

did you want to crossfade between two separate soundfiles?
if so, you need another buffer with another name.

clean it up a bit, and I think you’ve basically got it



jml
January 14, 2008 | 7:56 pm

some of this may help…
one of the more important things to remember is to grab your loop point at signal-rate.

jl

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 150 275 118 196617 < example config of loop;
#P comment 361 289 118 196617 < example config of loop;
#P button 323 76 15 0;
#P message 62 243 14 196617 0;
#P newex 296 203 27 196617 / 4.;
#P flonum 152 200 52 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 48 149 60 196617 loadmess 1;
#P newex 119 385 36 196617 edge~;
#P toggle 119 405 29 0;
#P newex 119 365 33 196617 >~ 0.;
#P newex 119 345 38 196617 delta~;
#P newex 232 485 27 196617 *~;
#N vpatcher 488 273 843 613;
#P window setfont "Sans Serif" 9.;
#P newex 58 98 27 196617 + 1;
#P window linecount 1;
#P message 115 175 50 196617 1. , 0. $1;
#P message 225 174 50 196617 0. , 1. $1;
#P newex 58 58 27 196617 t i b;
#P newex 58 132 67 196617 gate 2;
#P inlet 132 31 15 0;
#P newex 115 94 27 196617 f;
#N comlet OUTput value ramp;
#P outlet 170 263 15 0;
#P newex 170 228 32 196617 line~;
#N comlet OUTput value ramp;
#P outlet 58 263 15 0;
#N comlet Fade IN – bang;
#P inlet 58 31 19 0;
#P window linecount 0;
#P message 170 174 50 196617 1. , 0. $1;
#P message 58 174 50 196617 0. , 1. $1;
#P newex 58 228 32 196617 line~;
#P connect 3 0 10 0;
#P connect 10 0 13 0;
#P connect 13 0 9 0;
#P connect 9 0 1 0;
#P connect 12 0 0 0;
#P connect 1 0 0 0;
#P connect 0 0 4 0;
#P connect 10 1 7 0;
#P connect 7 0 9 1;
#P connect 9 1 12 0;
#P connect 8 0 7 1;
#P connect 9 0 2 0;
#P connect 11 0 5 0;
#P connect 2 0 5 0;
#P connect 5 0 6 0;
#P connect 9 1 11 0;
#P pop;
#P newobj 119 452 140 196617 patcher FADEin-out;
#P message 48 176 165 196617 loop $1 , loopinterp 1 , startloop , 0;
#P newex 48 493 27 196617 *~;
#P newex 232 304 81 196617 groove~ sound1;
#P message 158 560 29 196617 stop;
#P message 90 560 67 196617 startwindow;
#P newex 49 602 31 196617 dac~;
#P flonum 83 275 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 296 174 59 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 218 141 105 196617 info~ sound1;
#P newex 151 219 38 196617 sig~ 1;
#P newex 48 305 81 196617 groove~ sound1;
#P message 150 52 43 196617 replace;
#B color 6;
#P newex 150 110 78 196617 buffer~ sound1;
#P newex 49 518 194 196617 +~;
#P window setfont "Sans Serif" 10.;
#P comment 32 52 128 196618 first , load an audio file;
#P window setfont "Sans Serif" 12.;
#P window linecount 6;
#P comment 324 457 176 196620 This looper should: 1) – Loop a soundfile 2) – Allow crossfade (specifying a range in ms) 3) – allow continuous variable speedrate any help?;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 358 228 91 196617 Fade Time (ms);
#P flonum 296 226 55 9 0. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 331 286 27 196617 + 0.;
#P connect 18 0 8 0;
#P connect 18 0 16 0;
#P connect 11 0 8 2;
#P connect 11 0 27 0;
#P connect 9 0 8 0;
#P connect 9 0 16 0;
#P connect 5 0 13 0;
#P connect 5 0 13 1;
#P connect 1 0 19 1;
#P connect 1 0 16 1;
#P connect 1 0 0 0;
#P connect 1 0 0 1;
#P connect 22 0 24 0;
#P connect 21 0 22 0;
#P connect 8 1 21 0;
#P connect 0 0 16 2;
#P connect 29 0 10 0;
#P connect 17 0 5 0;
#P connect 20 0 5 1;
#P connect 26 0 9 0;
#P connect 28 0 8 0;
#P connect 8 0 17 0;
#P connect 27 0 1 0;
#P connect 25 0 18 0;
#P connect 24 0 23 0;
#P connect 23 0 19 0;
#P connect 19 1 20 1;
#P connect 19 0 17 1;
#P connect 6 1 10 0;
#P connect 10 6 11 0;
#P connect 16 0 20 0;
#P connect 15 0 13 0;
#P connect 14 0 13 0;
#P connect 12 0 8 1;
#P connect 7 0 6 0;
#P window clipboard copycount 32;


January 15, 2008 | 12:23 am

well, actually I need to loop a single soundfile using 2 groove~ modules
crossfading each other.

Carlo

—– Original Message —–
From: "Michael"
To:
Sent: Monday, January 14, 2008 8:51 PM
Subject: [maxmsp] Re: Groove patch

>
> did you want to crossfade between two separate soundfiles?
> if so, you need another buffer with another name.
>
> clean it up a bit, and I think you’ve basically got it


January 15, 2008 | 12:26 am

Hi thanks for your help,
what do you mean for "example config of loop"?
Doesn’t snapshot good enough to grab the loop points? Actually, it is a
signal-rate value.
Best,

Carlo

—– Original Message —–
From: "jLubow"
To:
Sent: Monday, January 14, 2008 8:56 PM
Subject: [maxmsp] Re: Groove patch

>
> some of this may help…
> one of the more important things to remember is to grab your loop point at
> signal-rate.
>
> jl
>
> #P window setfont "Sans Serif" 9.;
> #P window linecount 1;
> #P comment 150 275 118 196617 < example config of loop;
> #P comment 361 289 118 196617 < example config of loop;
> #P button 323 76 15 0;
> #P message 62 243 14 196617 0;
> #P newex 296 203 27 196617 / 4.;
> #P flonum 152 200 52 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 48 149 60 196617 loadmess 1;
> #P newex 119 385 36 196617 edge~;
> #P toggle 119 405 29 0;
> #P newex 119 365 33 196617 >~ 0.;
> #P newex 119 345 38 196617 delta~;
> #P newex 232 485 27 196617 *~;
> #N vpatcher 488 273 843 613;
> #P window setfont "Sans Serif" 9.;
> #P newex 58 98 27 196617 + 1;
> #P window linecount 1;
> #P message 115 175 50 196617 1. , 0. $1;
> #P message 225 174 50 196617 0. , 1. $1;
> #P newex 58 58 27 196617 t i b;
> #P newex 58 132 67 196617 gate 2;
> #P inlet 132 31 15 0;
> #P newex 115 94 27 196617 f;
> #N comlet OUTput value ramp;
> #P outlet 170 263 15 0;
> #P newex 170 228 32 196617 line~;
> #N comlet OUTput value ramp;
> #P outlet 58 263 15 0;
> #N comlet Fade IN – bang;
> #P inlet 58 31 19 0;
> #P window linecount 0;
> #P message 170 174 50 196617 1. , 0. $1;
> #P message 58 174 50 196617 0. , 1. $1;
> #P newex 58 228 32 196617 line~;
> #P connect 3 0 10 0;
> #P connect 10 0 13 0;
> #P connect 13 0 9 0;
> #P connect 9 0 1 0;
> #P connect 12 0 0 0;
> #P connect 1 0 0 0;
> #P connect 0 0 4 0;
> #P connect 10 1 7 0;
> #P connect 7 0 9 1;
> #P connect 9 1 12 0;
> #P connect 8 0 7 1;
> #P connect 9 0 2 0;
> #P connect 11 0 5 0;
> #P connect 2 0 5 0;
> #P connect 5 0 6 0;
> #P connect 9 1 11 0;
> #P pop;
> #P newobj 119 452 140 196617 patcher FADEin-out;
> #P message 48 176 165 196617 loop $1 , loopinterp 1 , startloop , 0;
> #P newex 48 493 27 196617 *~;
> #P newex 232 304 81 196617 groove~ sound1;
> #P message 158 560 29 196617 stop;
> #P message 90 560 67 196617 startwindow;
> #P newex 49 602 31 196617 dac~;
> #P flonum 83 275 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 296 174 59 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 218 141 105 196617 info~ sound1;
> #P newex 151 219 38 196617 sig~ 1;
> #P newex 48 305 81 196617 groove~ sound1;
> #P message 150 52 43 196617 replace;
> #B color 6;
> #P newex 150 110 78 196617 buffer~ sound1;
> #P newex 49 518 194 196617 +~;
> #P window setfont "Sans Serif" 10.;
> #P comment 32 52 128 196618 first , load an audio file;
> #P window setfont "Sans Serif" 12.;
> #P window linecount 6;
> #P comment 324 457 176 196620 This looper should: 1) – Loop a soundfile
> 2) – Allow crossfade (specifying a range in ms) 3) – allow continuous
> variable speedrate any help?;
> #P window setfont "Sans Serif" 9.;
> #P window linecount 1;
> #P comment 358 228 91 196617 Fade Time (ms);
> #P flonum 296 226 55 9 0. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 331 286 27 196617 + 0.;
> #P connect 18 0 8 0;
> #P connect 18 0 16 0;
> #P connect 11 0 8 2;
> #P connect 11 0 27 0;
> #P connect 9 0 8 0;
> #P connect 9 0 16 0;
> #P connect 5 0 13 0;
> #P connect 5 0 13 1;
> #P connect 1 0 19 1;
> #P connect 1 0 16 1;
> #P connect 1 0 0 0;
> #P connect 1 0 0 1;
> #P connect 22 0 24 0;
> #P connect 21 0 22 0;
> #P connect 8 1 21 0;
> #P connect 0 0 16 2;
> #P connect 29 0 10 0;
> #P connect 17 0 5 0;
> #P connect 20 0 5 1;
> #P connect 26 0 9 0;
> #P connect 28 0 8 0;
> #P connect 8 0 17 0;
> #P connect 27 0 1 0;
> #P connect 25 0 18 0;
> #P connect 24 0 23 0;
> #P connect 23 0 19 0;
> #P connect 19 1 20 1;
> #P connect 19 0 17 1;
> #P connect 6 1 10 0;
> #P connect 10 6 11 0;
> #P connect 16 0 20 0;
> #P connect 15 0 13 0;
> #P connect 14 0 13 0;
> #P connect 12 0 8 1;
> #P connect 7 0 6 0;
> #P window clipboard copycount 32;
>



jml
January 16, 2008 | 6:45 am

snapshot converts a signal- at audio rate- control rate data stream at a given time interval.
it’s not as efficient, and you’ll not see any more accuracy with this methodology. it does work really well for other types of patches, but i tend to try to stay away from it because of the amount by which it taxes the CPU.

instead i’d recommend the delta~ reading; for more info on this check the archives.

as for the "example"; it’s just an example of some loop points you might want to set along with another example of a way to set them dynamically.

jl


January 16, 2008 | 9:56 am

Carlo Laurenzi schrieb:
> Doesn’t snapshot good enough to grab the loop points? Actually, it is a
> signal-rate value.

snapshot~ is polling the audio values. That is expensive, because most
of the time it gets values which are not important. I always use edge~
to find a specific point in an audio signal…

Good for fading the signal of groove~ is trapezoid~ by the way. Can be
directly controlled by the sync output of groove~…

not as clean as my other examples, but take it as a starting point:

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 108 82 32 196617 sel 1;
#P newex 54 150 54 196617 t f 0. stop;
#P newex 290 232 13 196617 f;
#P newex 422 201 55 196617 clip 0. 0.5;
#P newex 422 147 13 196617 b;
#P newex 464 229 30 196617 !- 1.;
#P flonum 459 180 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 422 180 35 196617 !/ 20.;
#P flonum 447 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 367 113 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 280 85 33 196617 sel 0.;
#P newex 236 63 101 196617 info~ hitme;
#P newex 287 133 13 196617 b;
#P flonum 118 127 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 262 155 62 196617 !- 0.;
#P newex 391 279 44 196617 ==~ 1;
#P newex 259 279 44 196617 ==~ 1;
#P user number~ 346 348 385 363 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221
221 222 222 222 0 0 0;
#P message 425 345 49 196617 startloop;
#P message 293 348 49 196617 startloop;
#P user number~ 194 348 261 363 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221
221 222 222 222 0 0 0;
#P user ezdac~ 174 405 218 438 0;
#P message 175 21 31 196617 read;
#P newex 175 41 71 196617 buffer~ hitme;
#P newex 391 299 44 196617 edge~;
#P newex 259 299 44 196617 edge~;
#P newex 306 299 84 196617 *~;
#P newex 174 299 84 196617 *~;
#P newex 380 258 95 196617 trapezoid~ 0.1 0.9;
#P newex 306 232 84 196617 groove~ hitme;
#B color 5;
#P newex 248 258 95 196617 trapezoid~ 0.1 0.9;
#P button 54 100 15 0;
#P flonum 54 127 47 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 192 149 24 196617 0.5;
#P flonum 314 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 262 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 174 64 15 0;
#P newex 174 169 27 196617 sig~;
#P newex 174 232 84 196617 groove~ hitme;
#B color 5;
#P comment 501 115 100 196617 ms crossfade;
#P comment 44 81 36 196617 start;
#P fasten 15 1 38 0 298 320 304 320 304 227 295 227;
#P connect 15 1 21 0;
#P connect 11 1 23 0;
#P connect 11 1 12 0;
#P connect 12 0 14 1;
#P connect 12 0 25 0;
#P connect 10 0 13 1;
#P connect 10 0 24 0;
#P fasten 37 0 38 0 427 221 295 221;
#P connect 37 0 12 1;
#P fasten 37 0 35 0 427 221 469 221;
#P fasten 35 0 10 2 469 254 337 254;
#P connect 35 0 12 2;
#P connect 33 0 37 0;
#P hidden connect 33 0 34 0;
#P connect 32 0 36 0;
#P connect 32 0 33 1;
#P hidden connect 26 0 31 0;
#P fasten 26 0 33 0 267 176 427 176;
#P connect 6 0 2 2;
#P connect 6 0 28 0;
#P connect 6 0 26 1;
#P connect 6 0 11 2;
#P connect 5 0 2 1;
#P connect 5 0 26 0;
#P connect 5 0 11 1;
#P connect 3 0 2 0;
#P fasten 3 0 11 0 179 194 311 194;
#P fasten 4 0 40 0 179 80 113 80;
#P connect 4 0 3 0;
#P connect 40 0 9 0;
#P fasten 39 2 11 0 103 203 311 203;
#P fasten 39 0 2 0 59 212 179 212;
#P connect 8 0 39 0;
#P fasten 39 1 10 1 81 253 295 253;
#P connect 29 6 6 0;
#P connect 38 0 10 1;
#P connect 16 1 22 0;
#P connect 2 1 20 0;
#P connect 2 1 10 0;
#P connect 36 0 33 0;
#P connect 28 0 26 0;
#P connect 30 1 6 0;
#P connect 29 3 30 0;
#P connect 29 2 5 0;
#P connect 17 1 29 0;
#P connect 9 0 8 0;
#P connect 7 0 3 0;
#P connect 27 0 3 0;
#P fasten 22 0 2 0 430 367 164 367 164 227 179 227;
#P connect 2 0 13 0;
#P connect 13 0 19 0;
#P connect 14 0 19 1;
#P connect 24 0 15 0;
#P fasten 21 0 11 0 298 375 502 375 502 226 311 226;
#P connect 11 0 14 0;
#P connect 25 0 16 0;
#P connect 18 0 17 0;
#P window clipboard copycount 41;


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


January 17, 2008 | 1:36 am

Hi Stefan,
Thank you very much for your insight.
I don’t understand why Groove~ modules stop playing and crossfading if I
play the loop in reverse (setting -1 speedrate, for example).
Playing loops in reverse is one of the things I need the most..
Can you help me?
Thank you.

Carlo

—– Original Message —–
From: "Stefan Tiedje"
To:
Sent: Wednesday, January 16, 2008 10:56 AM
Subject: Re: [maxmsp] Re: Groove patch

> Carlo Laurenzi schrieb:
>> Doesn’t snapshot good enough to grab the loop points? Actually, it is a
>> signal-rate value.
>
> snapshot~ is polling the audio values. That is expensive, because most of
> the time it gets values which are not important. I always use edge~ to
> find a specific point in an audio signal…
>
> Good for fading the signal of groove~ is trapezoid~ by the way. Can be
> directly controlled by the sync output of groove~…
>
> not as clean as my other examples, but take it as a starting point:
>
> #P window setfont "Sans Serif" 9.;
> #P window linecount 1;
> #P newex 108 82 32 196617 sel 1;
> #P newex 54 150 54 196617 t f 0. stop;
> #P newex 290 232 13 196617 f;
> #P newex 422 201 55 196617 clip 0. 0.5;
> #P newex 422 147 13 196617 b;
> #P newex 464 229 30 196617 !- 1.;
> #P flonum 459 180 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 422 180 35 196617 !/ 20.;
> #P flonum 447 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 367 113 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 280 85 33 196617 sel 0.;
> #P newex 236 63 101 196617 info~ hitme;
> #P newex 287 133 13 196617 b;
> #P flonum 118 127 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 262 155 62 196617 !- 0.;
> #P newex 391 279 44 196617 ==~ 1;
> #P newex 259 279 44 196617 ==~ 1;
> #P user number~ 346 348 385 363 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221
> 221 222 222 222 0 0 0;
> #P message 425 345 49 196617 startloop;
> #P message 293 348 49 196617 startloop;
> #P user number~ 194 348 261 363 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221
> 221 222 222 222 0 0 0;
> #P user ezdac~ 174 405 218 438 0;
> #P message 175 21 31 196617 read;
> #P newex 175 41 71 196617 buffer~ hitme;
> #P newex 391 299 44 196617 edge~;
> #P newex 259 299 44 196617 edge~;
> #P newex 306 299 84 196617 *~;
> #P newex 174 299 84 196617 *~;
> #P newex 380 258 95 196617 trapezoid~ 0.1 0.9;
> #P newex 306 232 84 196617 groove~ hitme;
> #B color 5;
> #P newex 248 258 95 196617 trapezoid~ 0.1 0.9;
> #P button 54 100 15 0;
> #P flonum 54 127 47 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P message 192 149 24 196617 0.5;
> #P flonum 314 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 262 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P toggle 174 64 15 0;
> #P newex 174 169 27 196617 sig~;
> #P newex 174 232 84 196617 groove~ hitme;
> #B color 5;
> #P comment 501 115 100 196617 ms crossfade;
> #P comment 44 81 36 196617 start;
> #P fasten 15 1 38 0 298 320 304 320 304 227 295 227;
> #P connect 15 1 21 0;
> #P connect 11 1 23 0;
> #P connect 11 1 12 0;
> #P connect 12 0 14 1;
> #P connect 12 0 25 0;
> #P connect 10 0 13 1;
> #P connect 10 0 24 0;
> #P fasten 37 0 38 0 427 221 295 221;
> #P connect 37 0 12 1;
> #P fasten 37 0 35 0 427 221 469 221;
> #P fasten 35 0 10 2 469 254 337 254;
> #P connect 35 0 12 2;
> #P connect 33 0 37 0;
> #P hidden connect 33 0 34 0;
> #P connect 32 0 36 0;
> #P connect 32 0 33 1;
> #P hidden connect 26 0 31 0;
> #P fasten 26 0 33 0 267 176 427 176;
> #P connect 6 0 2 2;
> #P connect 6 0 28 0;
> #P connect 6 0 26 1;
> #P connect 6 0 11 2;
> #P connect 5 0 2 1;
> #P connect 5 0 26 0;
> #P connect 5 0 11 1;
> #P connect 3 0 2 0;
> #P fasten 3 0 11 0 179 194 311 194;
> #P fasten 4 0 40 0 179 80 113 80;
> #P connect 4 0 3 0;
> #P connect 40 0 9 0;
> #P fasten 39 2 11 0 103 203 311 203;
> #P fasten 39 0 2 0 59 212 179 212;
> #P connect 8 0 39 0;
> #P fasten 39 1 10 1 81 253 295 253;
> #P connect 29 6 6 0;
> #P connect 38 0 10 1;
> #P connect 16 1 22 0;
> #P connect 2 1 20 0;
> #P connect 2 1 10 0;
> #P connect 36 0 33 0;
> #P connect 28 0 26 0;
> #P connect 30 1 6 0;
> #P connect 29 3 30 0;
> #P connect 29 2 5 0;
> #P connect 17 1 29 0;
> #P connect 9 0 8 0;
> #P connect 7 0 3 0;
> #P connect 27 0 3 0;
> #P fasten 22 0 2 0 430 367 164 367 164 227 179 227;
> #P connect 2 0 13 0;
> #P connect 13 0 19 0;
> #P connect 14 0 19 1;
> #P connect 24 0 15 0;
> #P fasten 21 0 11 0 298 375 502 375 502 226 311 226;
> #P connect 11 0 14 0;
> #P connect 25 0 16 0;
> #P connect 18 0 17 0;
> #P window clipboard copycount 41;
>
>
> —
> Stefan Tiedje————x——-
> –_____———–|————–
> –(_|_ —-|—–|—–()——-
> — _|_)—-|—–()————–
> ———-()——–www.ccmix.com
>
>



Ron
January 20, 2008 | 7:41 pm

I tried your patch – does a very nice job outputting sound at different intervaals of time one channel to another.

good

thanks

ron

Stefan Tiedje wrote: Carlo Laurenzi schrieb:
> Doesn’t snapshot good enough to grab the loop points? Actually, it is a
> signal-rate value.

snapshot~ is polling the audio values. That is expensive, because most
of the time it gets values which are not important. I always use edge~
to find a specific point in an audio signal…

Good for fading the signal of groove~ is trapezoid~ by the way. Can be
directly controlled by the sync output of groove~…

not as clean as my other examples, but take it as a starting point:

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 108 82 32 196617 sel 1;
#P newex 54 150 54 196617 t f 0. stop;
#P newex 290 232 13 196617 f;
#P newex 422 201 55 196617 clip 0. 0.5;
#P newex 422 147 13 196617 b;
#P newex 464 229 30 196617 !- 1.;
#P flonum 459 180 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 422 180 35 196617 !/ 20.;
#P flonum 447 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 367 113 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 280 85 33 196617 sel 0.;
#P newex 236 63 101 196617 info~ hitme;
#P newex 287 133 13 196617 b;
#P flonum 118 127 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 262 155 62 196617 !- 0.;
#P newex 391 279 44 196617 ==~ 1;
#P newex 259 279 44 196617 ==~ 1;
#P user number~ 346 348 385 363 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221
221 222 222 222 0 0 0;
#P message 425 345 49 196617 startloop;
#P message 293 348 49 196617 startloop;
#P user number~ 194 348 261 363 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221
221 222 222 222 0 0 0;
#P user ezdac~ 174 405 218 438 0;
#P message 175 21 31 196617 read;
#P newex 175 41 71 196617 buffer~ hitme;
#P newex 391 299 44 196617 edge~;
#P newex 259 299 44 196617 edge~;
#P newex 306 299 84 196617 *~;
#P newex 174 299 84 196617 *~;
#P newex 380 258 95 196617 trapezoid~ 0.1 0.9;
#P newex 306 232 84 196617 groove~ hitme;
#B color 5;
#P newex 248 258 95 196617 trapezoid~ 0.1 0.9;
#P button 54 100 15 0;
#P flonum 54 127 47 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 192 149 24 196617 0.5;
#P flonum 314 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 262 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 174 64 15 0;
#P newex 174 169 27 196617 sig~;
#P newex 174 232 84 196617 groove~ hitme;
#B color 5;
#P comment 501 115 100 196617 ms crossfade;
#P comment 44 81 36 196617 start;
#P fasten 15 1 38 0 298 320 304 320 304 227 295 227;
#P connect 15 1 21 0;
#P connect 11 1 23 0;
#P connect 11 1 12 0;
#P connect 12 0 14 1;
#P connect 12 0 25 0;
#P connect 10 0 13 1;
#P connect 10 0 24 0;
#P fasten 37 0 38 0 427 221 295 221;
#P connect 37 0 12 1;
#P fasten 37 0 35 0 427 221 469 221;
#P fasten 35 0 10 2 469 254 337 254;
#P connect 35 0 12 2;
#P connect 33 0 37 0;
#P hidden connect 33 0 34 0;
#P connect 32 0 36 0;
#P connect 32 0 33 1;
#P hidden connect 26 0 31 0;
#P fasten 26 0 33 0 267 176 427 176;
#P connect 6 0 2 2;
#P connect 6 0 28 0;
#P connect 6 0 26 1;
#P connect 6 0 11 2;
#P connect 5 0 2 1;
#P connect 5 0 26 0;
#P connect 5 0 11 1;
#P connect 3 0 2 0;
#P fasten 3 0 11 0 179 194 311 194;
#P fasten 4 0 40 0 179 80 113 80;
#P connect 4 0 3 0;
#P connect 40 0 9 0;
#P fasten 39 2 11 0 103 203 311 203;
#P fasten 39 0 2 0 59 212 179 212;
#P connect 8 0 39 0;
#P fasten 39 1 10 1 81 253 295 253;
#P connect 29 6 6 0;
#P connect 38 0 10 1;
#P connect 16 1 22 0;
#P connect 2 1 20 0;
#P connect 2 1 10 0;
#P connect 36 0 33 0;
#P connect 28 0 26 0;
#P connect 30 1 6 0;
#P connect 29 3 30 0;
#P connect 29 2 5 0;
#P connect 17 1 29 0;
#P connect 9 0 8 0;
#P connect 7 0 3 0;
#P connect 27 0 3 0;
#P fasten 22 0 2 0 430 367 164 367 164 227 179 227;
#P connect 2 0 13 0;
#P connect 13 0 19 0;
#P connect 14 0 19 1;
#P connect 24 0 15 0;
#P fasten 21 0 11 0 298 375 502 375 502 226 311 226;
#P connect 11 0 14 0;
#P connect 25 0 16 0;
#P connect 18 0 17 0;
#P window clipboard copycount 41;


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


January 21, 2008 | 11:51 am

Have you tried to play the loop backwards?

Carlo
—– Original Message —–
From: ronald alford
To: maxmsp@cycling74.com
Sent: Sunday, January 20, 2008 8:41 PM
Subject: Re: [maxmsp] Re: Groove patch

I tried your patch – does a very nice job outputting sound at different intervaals of time one channel to another.

good

thanks

ron

Stefan Tiedje wrote:
Carlo Laurenzi schrieb:
> Doesn’t snapshot good enough to grab the loop points? Actually, it is a
> signal-rate value.

snapshot~ is polling the audio values. That is expensive, because most
of the time it gets values which are not important. I always use edge~
to find a specific point in an audio signal…

Good for fading the signal of groove~ is trapezoid~ by the way. Can be
directly controlled by the sync output of groove~…

not as clean as my other examples, but take it as a starting point:

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 108 82 32 196617 sel 1;
#P newex 54 150 54 196617 t f 0. stop;
#P newex 290 232 13 196617 f;
#P newex 422 201 55 196617 clip 0. 0.5;
#P newex 422 147 13 196617 b;
#P newex 464 229 30 196617 !- 1.;
#P flonum 459 180 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 422 180 35 196617 !/ 20.;
#P flonum 447 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 367 113 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 280 85 33 196617 sel 0.;
#P newex 236 63 101 196617 info~ hitme;
#P newex 287 133 13 196617 b;
#P flonum 118 127 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 262 155 62 196617 !- 0.;
#P newex 391 279 44 196617 ==~ 1;
#P newex 259 279 44 196617 ==~ 1;
#P user number~ 346 348 385 363 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221
221 222 222 222 0 0 0;
#P message 425 345 49 196617 startloop;
#P message 293 348 49 196617 startloop;
#P user number~ 194 348 261 363 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221
221 222 222 222 0 0 0;
#P user ezdac~ 174 405 218 438 0;
#P message 175 21 31 196617 read;
#P newex 175 41 71 196617 buffer~ hitme;
#P newex 391 299 44 196617 edge~;
#P newex 259 299 44 196617 edge~;
#P newex 306 299 84 196617 *~;
#P newex 174 299 84 196617 *~;
#P newex 380 258 95 196617 trapezoid~ 0.1 0.9;
#P newex 306 232 84 196617 groove~ hitme;
#B color 5;
#P newex 248 258 95 196617 trapezoid~ 0.1 0.9;
#P button 54 100 15 0;
#P flonum 54 127 47 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 192 149 24 196617 0.5;
#P flonum 314 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 262 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 174 64 15 0;
#P newex 174 169 27 196617 sig~;
#P newex 174 232 84 196617 groove~ hitme;
#B color 5;
#P comment 501 115 100 196617 ms crossfade;
#P comment 44 81 36 196617 start;
#P fasten 15 1 38 0 298 320 304 320 304 227 295 227;
#P connect 15 1 21 0;
#P connect 11 1 23 0;
#P connect 11 1 12 0;
#P connect 12 0 14 1;
#P connect 12 0 25 0;
#P connect 10 0 13 1;
#P connect 10 0 24 0;
#P fasten 37 0 38 0 427 221 295 221;
#P connect 37 0 12 1;
#P fasten 37 0 35 0 427 221 469 221;
#P fasten 35 0 10 2 469 254 337 254;
#P connect 35 0 12 2;
#P connect 33 0 37 0;
#P hidden connect 33 0 34 0;
#P connect 32 0 36 0;
#P connect 32 0 33 1;
#P hidden connect 26 0 31 0;
#P fasten 26 0 33 0 267 176 427 176;
#P connect 6 0 2 2;
#P connect 6 0 28 0;
#P connect 6 0 26 1;
#P connect 6 0 11 2;
#P connect 5 0 2 1;
#P connect 5 0 26 0;
#P connect 5 0 11 1;
#P connect 3 0 2 0;
#P fasten 3 0 11 0 179 194 311 194;
#P fasten 4 0 40 0 179 80 113 80;
#P connect 4 0 3 0;
#P connect 40 0 9 0;
#P fasten 39 2 11 0 103 203 311 203;
#P fasten 39 0 2 0 59 212 179 212;
#P connect 8 0 39 0;
#P fasten 39 1 10 1 81 253 295 253;
#P connect 29 6 6 0;
#P connect 38 0 10 1;
#P connect 16 1 22 0;
#P connect 2 1 20 0;
#P connect 2 1 10 0;
#P connect 36 0 33 0;
#P connect 28 0 26 0;
#P connect 30 1 6 0;
#P connect 29 3 30 0;
#P connect 29 2 5 0;
#P connect 17 1 29 0;
#P connect 9 0 8 0;
#P connect 7 0 3 0;
#P connect 27 0 3 0;
#P fasten 22 0 2 0 430 367 164 367 164 227 179 227;
#P connect 2 0 13 0;
#P connect 13 0 19 0;
#P connect 14 0 19 1;
#P connect 24 0 15 0;
#P fasten 21 0 11 0 298 375 502 375 502 226 311 226;
#P connect 11 0 14 0;
#P connect 25 0 16 0;
#P connect 18 0 17 0;
#P window clipboard copycount 41;


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

——————————————————————————



Ron
January 21, 2008 | 3:58 pm

hmmm…

no, never occurred to me to do that – HOW?

ron

Carlo Laurenzi wrote: Have you tried to play the loop backwards?

Carlo
—– Original Message —–
From: ronald alford
Sent: Sunday, January 20, 2008 8:41 PM
Subject: Re: [maxmsp] Re: Groove patch

I tried your patch – does a very nice job outputting sound at different intervaals of time one channel to another.

good

thanks

ron

Stefan Tiedje wrote: Carlo Laurenzi schrieb:
> Doesn’t snapshot good enough to grab the loop points? Actually, it is a
> signal-rate value.

snapshot~ is polling the audio values. That is expensive, because most
of the time it gets values which are not important. I always use edge~
to find a specific point in an audio signal…

Good for fading the signal of groove~ is trapezoid~ by the way. Can be
directly controlled by the sync output of groove~…

not as clean as my other examples, but take it as a starting point:

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 108 82 32 196617 sel 1;
#P newex 54 150 54 196617 t f 0. stop;
#P newex 290 232 13 196617 f;
#P newex 422 201 55 196617 clip 0. 0.5;
#P newex 422 147 13 196617 b;
#P newex 464 229 30 196617 !- 1.;
#P flonum 459 180 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 422 180 35 196617 !/ 20.;
#P flonum 447 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 367 113 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 280 85 33 196617 sel 0.;
#P newex 236 63 101 196617 info~ hitme;
#P newex 287 133 13 196617 b;
#P flonum 118 127 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 262 155 62 196617 !- 0.;
#P newex 391 279 44 196617 ==~ 1;
#P newex 259 279 44 196617 ==~ 1;
#P user number~ 346 348 385 363 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221
221 222 222 222 0 0 0;
#P message 425 345 49 196617 startloop;
#P message 293 348 49 196617 startloop;
#P user number~ 194 348 261 363 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221
221 222 222 222 0 0 0;
#P user ezdac~ 174 405 218 438 0;
#P message 175 21 31 196617 read;
#P newex 175 41 71 196617 buffer~ hitme;
#P newex 391 299 44 196617 edge~;
#P newex 259 299 44 196617 edge~;
#P newex 306 299 84 196617 *~;
#P newex 174 299 84 196617 *~;
#P newex 380 258 95 196617 trapezoid~ 0.1 0.9;
#P newex 306 232 84 196617 groove~ hitme;
#B color 5;
#P newex 248 258 95 196617 trapezoid~ 0.1 0.9;
#P button 54 100 15 0;
#P flonum 54 127 47 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 192 149 24 196617 0.5;
#P flonum 314 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 262 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 174 64 15 0;
#P newex 174 169 27 196617 sig~;
#P newex 174 232 84 196617 groove~ hitme;
#B color 5;
#P comment 501 115 100 196617 ms crossfade;
#P comment 44 81 36 196617 start;
#P fasten 15 1 38 0 298 320 304 320 304 227 295 227;
#P connect 15 1 21 0;
#P connect 11 1 23 0;
#P connect 11 1 12 0;
#P connect 12 0 14 1;
#P connect 12 0 25 0;
#P connect 10 0 13 1;
#P connect 10 0 24 0;
#P fasten 37 0 38 0 427 221 295 221;
#P connect 37 0 12 1;
#P fasten 37 0 35 0 427 221 469 221;
#P fasten 35 0 10 2 469 254 337 254;
#P connect 35 0 12 2;
#P connect 33 0 37 0;
#P hidden connect 33 0 34 0;
#P connect 32 0 36 0;
#P connect 32 0 33 1;
#P hidden connect 26 0 31 0;
#P fasten 26 0 33 0 267 176 427 176;
#P connect 6 0 2 2;
#P connect 6 0 28 0;
#P connect 6 0 26 1;
#P connect 6 0 11 2;
#P connect 5 0 2 1;
#P connect 5 0 26 0;
#P connect 5 0 11 1;
#P connect 3 0 2 0;
#P fasten 3 0 11 0 179 194 311 194;
#P fasten 4 0 40 0 179 80 113 80;
#P connect 4 0 3 0;
#P connect 40 0 9 0;
#P fasten 39 2 11 0 103 203 311 203;
#P fasten 39 0 2 0 59 212 179 212;
#P connect 8 0 39 0;
#P fasten 39 1 10 1 81 253 295 253;
#P connect 29 6 6 0;
#P connect 38 0 10 1;
#P connect 16 1 22 0;
#P connect 2 1 20 0;
#P connect 2 1 10 0;
#P connect 36 0 33 0;
#P connect 28 0 26 0;
#P connect 30 1 6 0;
#P connect 29 3 30 0;
#P connect 29 2 5 0;
#P connect 17 1 29 0;
#P connect 9 0 8 0;
#P connect 7 0 3 0;
#P connect 27 0 3 0;
#P fasten 22 0 2 0 430 367 164 367 164 227 179 227;
#P connect 2 0 13 0;
#P connect 13 0 19 0;
#P connect 14 0 19 1;
#P connect 24 0 15 0;
#P fasten 21 0 11 0 298 375 502 375 502 226 311 226;
#P connect 11 0 14 0;
#P connect 25 0 16 0;
#P connect 18 0 17 0;
#P window clipboard copycount 41;


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

maxmsp mailing list

———————————

maxmsp mailing list


January 21, 2008 | 6:46 pm

Just write a negative value in the number field connected to sig~..
You’ll notice that the looper will stops looping after few seconds.

Carlo
—– Original Message —–
From: ronald alford
To: maxmsp@cycling74.com
Sent: Monday, January 21, 2008 4:58 PM
Subject: Re: [maxmsp] Re: Groove patch

hmmm…

no, never occurred to me to do that – HOW?

ron

Carlo Laurenzi wrote:
Have you tried to play the loop backwards?

Carlo
—– Original Message —–
From: ronald alford
To: maxmsp@cycling74.com
Sent: Sunday, January 20, 2008 8:41 PM
Subject: Re: [maxmsp] Re: Groove patch

I tried your patch – does a very nice job outputting sound at different intervaals of time one channel to another.

good

thanks

ron

Stefan Tiedje wrote:
Carlo Laurenzi schrieb:
> Doesn’t snapshot good enough to grab the loop points? Actually, it is a
> signal-rate value.

snapshot~ is polling the audio values. That is expensive, because most
of the time it gets values which are not important. I always use edge~
to find a specific point in an audio signal…

Good for fading the signal of groove~ is trapezoid~ by the way. Can be
directly controlled by the sync output of groove~…

not as clean as my other examples, but take it as a starting point:

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 108 82 32 196617 sel 1;
#P newex 54 150 54 196617 t f 0. stop;
#P newex 290 232 13 196617 f;
#P newex 422 201 55 196617 clip 0. 0.5;
#P newex 422 147 13 196617 b;
#P newex 464 229 30 196617 !- 1.;
#P flonum 459 180 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 422 180 35 196617 !/ 20.;
#P flonum 447 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 367 113 62 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 280 85 33 196617 sel 0.;
#P newex 236 63 101 196617 info~ hitme;
#P newex 287 133 13 196617 b;
#P flonum 118 127 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 262 155 62 196617 !- 0.;
#P newex 391 279 44 196617 ==~ 1;
#P newex 259 279 44 196617 ==~ 1;
#P user number~ 346 348 385 363 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221
221 222 222 222 0 0 0;
#P message 425 345 49 196617 startloop;
#P message 293 348 49 196617 startloop;
#P user number~ 194 348 261 363 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221
221 222 222 222 0 0 0;
#P user ezdac~ 174 405 218 438 0;
#P message 175 21 31 196617 read;
#P newex 175 41 71 196617 buffer~ hitme;
#P newex 391 299 44 196617 edge~;
#P newex 259 299 44 196617 edge~;
#P newex 306 299 84 196617 *~;
#P newex 174 299 84 196617 *~;
#P newex 380 258 95 196617 trapezoid~ 0.1 0.9;
#P newex 306 232 84 196617 groove~ hitme;
#B color 5;
#P newex 248 258 95 196617 trapezoid~ 0.1 0.9;
#P button 54 100 15 0;
#P flonum 54 127 47 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 192 149 24 196617 0.5;
#P flonum 314 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 262 113 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 174 64 15 0;
#P newex 174 169 27 196617 sig~;
#P newex 174 232 84 196617 groove~ hitme;
#B color 5;
#P comment 501 115 100 196617 ms crossfade;
#P comment 44 81 36 196617 start;
#P fasten 15 1 38 0 298 320 304 320 304 227 295 227;
#P connect 15 1 21 0;
#P connect 11 1 23 0;
#P connect 11 1 12 0;
#P connect 12 0 14 1;
#P connect 12 0 25 0;
#P connect 10 0 13 1;
#P connect 10 0 24 0;
#P fasten 37 0 38 0 427 221 295 221;
#P connect 37 0 12 1;
#P fasten 37 0 35 0 427 221 469 221;
#P fasten 35 0 10 2 469 254 337 254;
#P connect 35 0 12 2;
#P connect 33 0 37 0;
#P hidden connect 33 0 34 0;
#P connect 32 0 36 0;
#P connect 32 0 33 1;
#P hidden connect 26 0 31 0;
#P fasten 26 0 33 0 267 176 427 176;
#P connect 6 0 2 2;
#P connect 6 0 28 0;
#P connect 6 0 26 1;
#P connect 6 0 11 2;
#P connect 5 0 2 1;
#P connect 5 0 26 0;
#P connect 5 0 11 1;
#P connect 3 0 2 0;
#P fasten 3 0 11 0 179 194 311 194;
#P fasten 4 0 40 0 179 80 113 80;
#P connect 4 0 3 0;
#P connect 40 0 9 0;
#P fasten 39 2 11 0 103 203 311 203;
#P fasten 39 0 2 0 59 212 179 212;
#P connect 8 0 39 0;
#P fasten 39 1 10 1 81 253 295 253;
#P connect 29 6 6 0;
#P connect 38 0 10 1;
#P connect 16 1 22 0;
#P connect 2 1 20 0;
#P connect 2 1 10 0;
#P connect 36 0 33 0;
#P connect 28 0 26 0;
#P connect 30 1 6 0;
#P connect 29 3 30 0;
#P connect 29 2 5 0;
#P connect 17 1 29 0;
#P connect 9 0 8 0;
#P connect 7 0 3 0;
#P connect 27 0 3 0;
#P fasten 22 0 2 0 430 367 164 367 164 227 179 227;
#P connect 2 0 13 0;
#P connect 13 0 19 0;
#P connect 14 0 19 1;
#P connect 24 0 15 0;
#P fasten 21 0 11 0 298 375 502 375 502 226 311 226;
#P connect 11 0 14 0;
#P connect 25 0 16 0;
#P connect 18 0 17 0;
#P window clipboard copycount 41;


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

————————————————————————–

——————————————————————————


January 22, 2008 | 7:13 am

Carlo Laurenzi schrieb:
> Have you tried to play the loop backwards?

That had been left as excersize… ;-)


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


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