Forums > MaxMSP

waveform~ problem

April 19, 2006 | 3:18 pm

i have deviced a loop recorder and player

I want to use waveform~ to make changes to the buffer once recorded, but i cant get it to update to that that waveform~ is showing all of the required buffer, and nothing else

here is the patcher

#P window setfont "Sans Serif" 9.;
#P user waveform~ 101 561 200 74 3 9;
#W mode select;
#W mouseoutput continuous;
#W unit ms;
#W grid 1000.;
#W ticks 0;
#W labels 1;
#W vlabels 0;
#W vticks 1;
#W bpm 120. 4.;
#W frgb 33 0 0;
#W brgb 60 178 173;
#W rgb2 0 95 255;
#W rgb3 0 0 0;
#W rgb4 0 0 0;
#W rgb5 190 137 255;
#W rgb6 100 100 100;
#W rgb7 100 100 100;
#P window linecount 1;
#P newex 104 399 20 196617 t b;
#P comment 761 559 59 196617 output;
#P number 367 524 66 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 289 486 105 196617 info~ test_end;
#P message 102 459 66 196617 set test_end;
#P message 735 261 33 196617 clear;
#P message 643 513 14 196617 1;
#P user ezdac~ 747 725 791 758 0;
#P newex 460 220 53 196617 t b b i b;
#P button 699 501 15 0;
#P toggle 643 554 15 0;
#P message 643 624 41 196617 loop $1;
#P message 699 555 14 196617 1;
#P newex 701 586 29 196617 sig~;
#P newex 701 647 89 196617 groove~ test_end;
#P newex 603 270 66 196617 prepend size;
#P user meter~ 167 92 247 105 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 newex 728 335 113 196617 buffer~ test_end 1000;
#P message 110 353 98 196617 setbuf test_end 0 1;
#P button 278 100 15 0;
#P button 460 191 15 0;
#P newex 33 89 100 196617 receive~ test_audio;
#P newex 1059 244 86 196617 send~ test_audio;
#P button 1044 67 15 0;
#P toggle 1000 129 15 0;
#P message 992 165 41 196617 loop $1;
#P message 1054 110 14 196617 1;
#P newex 1056 141 29 196617 sig~;
#P newex 1059 179 68 196617 groove~ test;
#P message 1176 134 43 196617 replace;
#P newex 1176 176 65 196617 buffer~ test;
#P newex 153 269 114 196617 stutter~ 115000 1000;
#P number 332 190 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 373 191 57 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 252 190 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 293 190 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 268 149 67 196617 clocker_plus;
#P window linecount 5;
#P comment 1089 68 59 196617 load a test sound here click bang to play and loop;
#P window linecount 3;
#P comment 353 102 100 196617 click once to start , once to stop recording;
#P connect 34 0 39 0;
#P connect 38 0 34 0;
#P connect 20 0 38 0;
#P connect 30 1 20 0;
#P connect 20 0 7 0;
#P connect 5 0 7 0;
#P connect 17 0 7 0;
#P connect 17 0 22 0;
#P connect 3 0 39 3;
#P connect 2 0 4 0;
#P connect 19 0 2 0;
#P connect 38 0 35 0;
#P connect 2 1 3 0;
#P connect 19 0 2 1;
#P connect 2 2 6 0;
#P connect 35 6 36 0;
#P connect 2 3 5 0;
#P connect 2 4 18 0;
#P connect 3 0 30 0;
#P connect 30 2 23 0;
#P connect 29 0 32 0;
#P connect 32 0 28 0;
#P connect 28 0 27 0;
#P connect 30 0 29 0;
#P connect 29 0 26 0;
#P connect 26 0 25 0;
#P connect 25 0 24 0;
#P connect 27 0 24 0;
#P connect 23 0 21 0;
#P connect 33 0 21 0;
#P connect 30 3 33 0;
#P connect 24 0 31 0;
#P connect 24 0 31 1;
#P connect 14 0 13 0;
#P connect 12 0 14 0;
#P connect 8 1 15 0;
#P connect 15 0 12 0;
#P connect 12 0 11 0;
#P connect 11 0 10 0;
#P connect 13 0 10 0;
#P connect 10 0 16 0;
#P connect 9 0 8 0;
#P window clipboard copycount 40;


April 19, 2006 | 3:19 pm

you will also need the following object, saved in a max folder and named clocker_plus

#P toggle 382 203 15 0;
#P outlet 427 344 15 0;
#P button 429 297 15 0;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 429 217 29 196617 gate;
#P window linecount 27;
#P comment 561 36 53 196617 if you want the current outputs to be reset as soon as the clocker is stopped , then attatch the same toggle to the second input accects zeros or every second bang (use only one type) also output bang when stopped when connected;
#P inlet 273 39 15 0;
#P window linecount 1;
#P message 271 178 14 196617 0;
#P newex 273 129 69 196617 select 0 bang;
#N comlet stopped milli;
#P outlet 322 346 15 0;
#P number 322 297 54 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 266 247 66 196617 mstosamps~;
#N comlet current samp;
#P outlet 214 346 15 0;
#N comlet stopped milli;
#P outlet 104 345 15 0;
#N comlet current milli;
#P outlet 42 346 15 0;
#P inlet 105 36 15 0;
#P number 44 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 214 297 54 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 158 247 66 196617 mstosamps~;
#P newex 48 146 46 196617 select 0;
#P number 105 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 105 91 15 0;
#P number 105 217 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 105 179 62 196617 prepend set;
#P newex 105 146 52 196617 clocker 1;
#P window linecount 14;
#P comment 191 55 64 196617 clocker_plus takes bangs , toggle or 1 and 0. outputs current time and banged time at stop in both milliseconds and samples (at at current sample rate);
#P connect 17 1 24 0;
#P connect 17 1 21 1;
#P connect 21 0 22 0;
#P connect 17 0 18 0;
#P connect 17 0 22 0;
#P connect 24 0 21 0;
#P connect 22 0 23 0;
#P connect 15 0 16 0;
#P connect 14 1 15 0;
#P connect 19 0 17 0;
#P connect 3 0 5 0;
#P connect 3 0 14 0;
#P connect 8 0 13 0;
#P connect 18 0 9 0;
#P connect 18 0 8 0;
#P connect 7 1 8 0;
#P connect 1 0 9 0;
#P connect 1 0 2 0;
#P connect 1 0 7 0;
#P connect 2 0 3 0;
#P connect 6 0 3 0;
#P connect 4 0 6 0;
#P connect 4 0 1 0;
#P connect 10 0 4 0;
#P connect 5 0 12 0;
#P connect 9 0 11 0;
#P window clipboard copycount 25;


April 19, 2006 | 4:14 pm

last night apple posted the following via software-update:
Java 2 Standard Edition (J2SE) 5.0 Release 4 delivers numerous
enhancements for the Apple implementation of J2SE 5.0 on Mac OS X v10.4.

since i am (still) a real noob at java, but dont want to break
anything running here: any caveats with the update?

thanks for comments
hans

hans w. koch
im krahnenhof 11
d-50668 koeln
+49-221-554902
http://www.hans-w-koch.net


April 19, 2006 | 6:44 pm

John wrote:
> i have deviced a loop recorder and player
>
> I want to use waveform~ to make changes to the buffer once recorded,
> but i cant get it to update to that that waveform~ is showing all of
> the required buffer, and nothing else

Just bang the set test_end message again:
(I included the subpatcher as p and trimed the size, I just can’t afford
such a big screen…)

I must admit your advancing fast… ;-)

#P window setfont "Sans Serif" 9.;
#P user waveform~ 32 422 200 74 3 9;
#W mode select;
#W mouseoutput continuous;
#W unit ms;
#W grid 1000.;
#W ticks 0;
#W labels 1;
#W vlabels 0;
#W vticks 1;
#W bpm 120. 4.;
#W frgb 33 0 0;
#W brgb 60 178 173;
#W rgb2 0 95 255;
#W rgb3 0 0 0;
#W rgb4 0 0 0;
#W rgb5 190 137 255;
#W rgb6 100 100 100;
#W rgb7 100 100 100;
#P window linecount 1;
#P newex 32 307 20 196617 t b;
#P comment 313 313 59 196617 output;
#P number 143 381 66 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 65 343 105 196617 info~ test_end;
#P message 32 389 66 196617 set test_end;
#P message 355 209 33 196617 clear;
#P message 244 313 14 196617 1;
#P user ezdac~ 274 433 318 466 0;
#P newex 202 173 164 196617 t b b i b;
#P button 286 259 15 0;
#P toggle 244 345 15 0;
#P message 244 374 41 196617 loop $1;
#P message 286 313 14 196617 1;
#P newex 286 344 29 196617 sig~;
#P newex 286 405 89 196617 groove~ test_end;
#P newex 286 208 66 196617 prepend size;
#P user meter~ 51 138 131 151 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 newex 355 272 113 196617 buffer~ test_end 1000;
#P message 69 248 98 196617;
#P button 136 62 15 0;
#P button 306 136 15 0;
#P newex 34 97 100 196617 receive~ test_audio;
#P newex 428 187 86 196617 send~ test_audio;
#P button 428 47 15 0;
#P toggle 364 110 15 0;
#P message 364 134 41 196617 loop $1;
#P message 428 89 14 196617 1;
#P newex 428 119 29 196617 sig~;
#P newex 428 157 68 196617 groove~ test;
#P message 501 115 43 196617 replace;
#P newex 501 157 65 196617 buffer~ test;
#P newex 34 215 114 196617 stutter~ 115000 1000;
#P number 210 136 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 247 136 57 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 136 136 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 173 136 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N vpatcher 10 59 610 459;
#P toggle 360 188 15 0;
#P outlet 436 351 15 0;
#P button 436 304 15 0;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 436 224 29 196617 gate;
#P window linecount 27;
#P comment 478 43 53 196617 if you want the current outputs to be reset
as soon as the clocker is stopped , then attatch the same toggle to the
second input accects zeros or every second bang (use only one type) also
output bang when stopped when connected;
#P window linecount 1;
#P message 280 187 14 196617 0;
#P newex 280 136 69 196617 select 0 bang;
#N comlet stopped milli;
#P outlet 329 353 15 0;
#P number 329 304 54 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 273 254 66 196617 mstosamps~;
#N comlet current samp;
#P outlet 221 353 15 0;
#N comlet stopped milli;
#P outlet 112 352 15 0;
#N comlet current milli;
#P outlet 51 353 15 0;
#P inlet 112 43 15 0;
#P number 51 307 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 221 304 54 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 165 254 66 196617 mstosamps~;
#P newex 64 153 46 196617 select 0;
#P number 112 307 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 112 98 15 0;
#P number 112 224 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 112 186 62 196617 prepend set;
#P newex 112 153 52 196617 clocker 1;
#P window linecount 14;
#P comment 198 62 64 196617 clocker_plus takes bangs , toggle or 1 and
0. outputs current time and banged time at stop in both milliseconds and
samples (at at current sample rate);
#P connect 1 0 9 0;
#P connect 18 0 9 0;
#P connect 9 0 11 0;
#P connect 4 0 6 0;
#P connect 10 0 4 0;
#P connect 4 0 1 0;
#P connect 1 0 2 0;
#P connect 6 0 3 0;
#P connect 2 0 3 0;
#P connect 3 0 5 0;
#P connect 5 0 12 0;
#P connect 1 0 7 0;
#P connect 7 1 8 0;
#P connect 18 0 8 0;
#P connect 8 0 13 0;
#P connect 3 0 14 0;
#P fasten 10 0 17 0 117 60 285 60;
#P connect 17 0 18 0;
#P connect 14 1 15 0;
#P connect 15 0 16 0;
#P connect 17 1 23 0;
#P connect 23 0 20 0;
#P connect 17 0 21 0;
#P connect 20 0 21 0;
#P connect 21 0 22 0;
#P connect 17 1 20 1;
#P pop;
#P newobj 136 97 158 196617 p clocker_plus;
#P window linecount 5;
#P comment 502 47 59 196617 load a test sound here click bang to play
and loop;
#P window linecount 3;
#P comment 235 48 100 196617 click once to start , once to stop recording;
#P connect 38 0 34 0;
#P connect 38 0 35 0;
#P fasten 30 0 38 0 207 295 37 295;
#P connect 30 0 29 0;
#P connect 29 0 32 0;
#P connect 29 0 26 0;
#P connect 24 0 31 0;
#P connect 24 0 31 1;
#P connect 20 0 38 0;
#P connect 20 0 7 0;
#P connect 17 0 7 0;
#P connect 17 0 22 0;
#P fasten 12 0 14 0 433 105 369 105;
#P connect 12 0 11 0;
#P connect 3 0 39 3;
#P connect 3 0 30 0;
#P connect 19 0 2 0;
#P connect 2 0 4 0;
#P connect 2 1 3 0;
#P connect 2 2 6 0;
#P connect 2 3 5 0;
#P connect 2 4 18 0;
#P connect 9 0 8 0;
#P connect 10 0 16 0;
#P fasten 13 0 10 0 369 153 433 153;
#P connect 11 0 10 0;
#P connect 15 0 12 0;
#P connect 8 1 15 0;
#P connect 14 0 13 0;
#P connect 30 3 33 0;
#P connect 33 0 21 0;
#P connect 23 0 21 0;
#P connect 27 0 24 0;
#P connect 25 0 24 0;
#P connect 26 0 25 0;
#P connect 28 0 27 0;
#P connect 32 0 28 0;
#P connect 30 2 23 0;
#P connect 35 6 36 0;
#P connect 5 0 7 0;
#P connect 30 1 20 0;
#P connect 34 0 39 0;
#P window clipboard copycount 40;

[][] [][][] [][] [][][]
[][][][][][][][][][][][][][][]

Stefan Tiedje
Klanggestalter
Electronic Composition
&
Improvisation

/~~~~~
\ /|() ()|
))))) )| | |( \
/// _/)/ )))))
___/ ///

————————-x—-
–_____———–|———–
–(_|_ —-|—–|—–()—-
– _|_)—-|—–()———–
———-()————x—–

14, Av. Pr. Franklin Roosevelt,
94320 Thiais, France
Phone at CCMIX +33-1-57 42 91 09


April 19, 2006 | 7:12 pm


April 19, 2006 | 8:44 pm

No problem for me until now.

Léo

hans w. koch a écrit :
> last night apple posted the following via software-update:
> Java 2 Standard Edition (J2SE) 5.0 Release 4 delivers numerous
> enhancements for the Apple implementation of J2SE 5.0 on Mac OS X v10.4.
>
> since i am (still) a real noob at java, but dont want to break anything
> running here: any caveats with the update?
>
> thanks for comments
> hans


April 19, 2006 | 10:28 pm


April 19, 2006 | 10:30 pm

solved it, the message box going to the stutter was empty

but still doesnt update properly


April 19, 2006 | 11:00 pm

it doesnt seem to work when you record a shorter loop, then try a longer one, it locks at the shorter length


April 20, 2006 | 9:56 am

On 19 Apr 2006, at 17:14, hans w. koch wrote:

> since i am (still) a real noob at java, but dont want to break
> anything running here: any caveats with the update?

You might get more responses if don’t follow up to a message entitled
"waveform~ problem". I now read the Max/MSP list as threads, and
almost missed this message. If you just hit "reply" and edit the
subject line, you run a real risk of having your message ignored by
those who might be interested in it.

Regarding your question: I’m going to run a pile of updates on one of
my G4′s to see what works. (My TiBook is still on 10.4.5 but I have
an exhibit running happily on 10.4.6, both with Java 1.5 Rel 3 I think.)

– N.

nick rothwell — composition, systems, performance — http://
http://www.cassiel.com


April 20, 2006 | 12:36 pm


April 21, 2006 | 5:49 pm


April 27, 2006 | 12:26 am


April 27, 2006 | 11:18 pm

Claudio Maldonado wrote:
> Thanks for the reply Stefan.
> How dificult it would be?. i mean, is there any way to avoid creating
> multiple files?
> ( I put the patch at the end for anyone who want to see it.)

Of course you could try to create your own fileformat, but why not just
create a folder, you’d need the mkdir object of Bill Orcutt, and off you
go. Compose the necessary filenames and thats it. If they are all placed
at a clear place (that folder) its fine for any user I guess.

Stefan

[][] [][][] [][] [][][]
[][][][][][][][][][][][][][][]

Stefan Tiedje
Klanggestalter
Electronic Composition
&
Improvisation

/~~~~~
\ /|() ()|
))))) )| | |( \
/// _/)/ )))))
___/ ///

————————-x—-
–_____———–|———–
–(_|_ —-|—–|—–()—-
– _|_)—-|—–()———–
———-()————x—–

14, Av. Pr. Franklin Roosevelt,
94320 Thiais, France
Phone at CCMIX +33-1-57 42 91 09


April 29, 2006 | 9:20 pm

Quote: 88mph wrote on Wed, 19 April 2006 09:18
—————————————————-

> I want to use waveform~ to make changes to the buffer once recorded, but i cant get it to update to that that waveform~ is showing all of the required buffer, and nothing else

Im not quite sure what youre trying to do…but why are you setting the buffer length on each record? Could you use a static buffer length of say 30000ms and then report the record time to groove~ as the loop end? And then have the record time go to the second inlet on waveform~ to only show the recorded part of the buffer? I have a patch that does the same thing as this, but you can record a loop of live audio coming in and it matches the recorded loop’s bpm to the project bpm and plays it back at the speed required for it to be in time with the project. It also doesnt loop, it plays a one-shot of the loop and on every x beats it will repeat. So if I record a 4 beat loop and set it to play a one-shot every 4 beats, it loops perfectly in time. Then I can just duplicate each looper and have as many as i want, all recording any audio and looping it in the time i specify.

If youd like to check it out let me know, or you can disregard this entire message if I’m missing the point completely.


April 30, 2006 | 2:49 am

here is that patch i mentioned:
it seems you have to save it first, then reopen it for the loadbangs to work…makes sense i guess, im still alittle new to max so maybe this is common knowledge.

max v2;
#N vpatcher 803 132 1163 619;
#P origin 9 0;
#P window setfont "Sans Serif" 9.;
#P window linecount 4;
#P comment 109 398 217 9109513 It could also easily be used to playback audio files and match them to the specified tempo by just adding an info~ object to report the audio file’s length.;
#P window linecount 1;
#P message 95 86 23 9109513 120;
#P newex 95 55 45 9109513 loadbang;
#N vpatcher 157 134 786 559;
#P origin 0 -108;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P message 276 316 14 9109513 1;
#P newex 276 293 28 9109513 sel 1;
#P hidden message 395 193 43 9109513 set cell1;
#P user waveform~ 395 209 200 74 139 9;
#W mode select;
#W mouseoutput continuous;
#W unit ms;
#W grid 1000.;
#W ticks 0;
#W labels 1;
#W vlabels 0;
#W vticks 1;
#W bpm 120. 4.;
#W frgb 33 0 0;
#W brgb 231 238 248;
#W rgb2 0 95 255;
#W rgb3 0 0 0;
#W rgb4 0 0 0;
#W rgb5 157 202 255;
#W rgb6 100 100 100;
#W rgb7 100 100 100;
#P window linecount 9;
#P comment 426 70 171 9109513 You can adjust the rate~ multiplier after the loop is recorded. A 4 beat loop might play back at too high a pitch , so changing the number of beats (rate~ multiplier) to 8 , you will make it play back slower , but still in time. You will have to send a bang to the patcher playSpeed to output the new playspeed after atering the rate~ multiplier.;
#P user led 37 27 17 17 0 150;
#P toggle 17 273 15 0;
#P window linecount 1;
#P message 121 296 14 9109513 0;
#P window linecount 5;
#P comment 175 28 71 9109513 Bang will output new playspeed value if the rate~ multiplier is changed.;
#P window linecount 3;
#P comment 425 27 173 9109513 This number also sets the multiplier for rate~ to send out bangs every int beats. Its signal comes from sync~.;
#P window linecount 1;
#P message 278 169 14 9109513 4;
#P flonum 268 27 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P user meter~ 57 102 137 115 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 351 248 14 9109513 0;
#P user led 100 219 17 17 0 150;
#N comlet (signal) audio in;
#P inlet 37 106 15 0;
#N comlet (signal) tempo signal;
#P inlet 249 118 15 0;
#N comlet (signal) audio out;
#P outlet 351 314 15 0;
#P newex 249 142 45 9109513 loadbang;
#P toggle 351 267 15 0;
#P newex 351 289 31 9109513 gate~;
#P button 259 293 15 0;
#P button 188 214 15 0;
#P button 160 28 15 0;
#N vpatcher 287 35 887 435;
#P window setfont "Sans Serif" 9.;
#P window linecount 2;
#P comment 346 122 196 9109513 i dont really understand this option , but inside loops seems to work best..;
#P window linecount 1;
#P hidden message 159 117 14 9109513 3;
#P hidden message 154 155 14 9109513 0;
#P hidden message 155 206 14 9109513 1;
#P window linecount 0;
#P hidden message 159 242 14 9109513 0;
#P hidden message 244 61 18 9109513 10;
#P hidden newex 130 34 45 9109513 loadbang;
#P window linecount 1;
#P comment 338 242 583 9109513 Loop mode. Here I select one-shot because the loop will be triggered by bangs coming from the rate~ object every int number of beats.;
#P comment 308 203 100 9109513 Interpolation;
#P comment 347 163 100 9109513 Fade shape;
#P window linecount 0;
#P newex 244 181 78 9109513 prepend xshape;
#P user umenu 244 162 100 9109543 1 64 178 1;
#X add linear;
#X add quarter sine;
#X add half sine;
#P newex 244 140 72 9109513 prepend xfade;
#P user umenu 244 121 100 9109543 1 64 137 1;
#X add keep loop;
#X add keep loop length;
#X add keep fade length;
#X add inside loop;
#P flonum 244 83 49 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 244 101 49 9109513 xzone $1;
#P user umenu 244 241 89 9109543 1 32 257 1;
#X add one-shot;
#X add forward;
#X add bidirectional;
#P user umenu 244 202 61 9109543 1 32 218 1;
#X add none;
#X add 4-point;
#X add linear;
#P message 244 221 50 9109513 interp $1;
#P message 244 259 41 9109513 loop $1;
#P outlet 244 286 15 0;
#P comment 298 84 100 9109513 Fade amount;
#P hidden connect 15 0 19 0;
#P hidden connect 15 0 18 0;
#P hidden connect 15 0 20 0;
#P hidden fasten 15 0 17 0 144 228;
#P hidden fasten 15 0 16 0 249 53;
#P hidden connect 16 0 7 0;
#P connect 7 0 6 0;
#P hidden connect 20 0 8 0;
#P connect 8 0 9 0;
#P hidden connect 19 0 10 0;
#P connect 10 0 11 0;
#P hidden connect 18 0 4 0;
#P connect 4 0 3 0;
#P hidden connect 17 0 5 0;
#P connect 5 0 2 0;
#P hidden fasten 6 0 1 0 199 166;
#P hidden fasten 9 0 1 0 196 186;
#P hidden fasten 11 0 1 0 209 222;
#P hidden fasten 3 0 1 0 222 257;
#P connect 2 0 1 0;
#P pop;
#P newobj 181 340 75 9109513 p grooveoptions;
#P flonum 160 193 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P user gain~ 372 170 13 91 158 0 1.071519 7.94321 10.;
#P newex 144 339 27 9109513 t b b;
#P message 170 236 31 9109513 pos 0;
#P newex 144 317 29 9109513 gate;
#P toggle 144 296 15 0;
#P message 186 295 26 9109513 stop;
#P message 160 295 27 9109513 start;
#P newex 160 213 25 9109513 sig~;
#N vpatcher 653 112 1253 512;
#P window setfont "Sans Serif" 9.;
#P window linecount 7;
#P comment 13 247 100 9109513 Changing tempo automatically outputs playspeed value.;
#P comment 13 47 100 9109513 at record stop , the record time will be sent here and the the playspeed will be outputted.;
#P window linecount 1;
#P comment 313 98 264 9109513 loop bpm = 60000 / (loop length ms / number of beats in loop);
#P button 163 146 15 0;
#P flonum 230 173 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#N comlet bang for output;
#P inlet 153 43 15 0;
#N comlet loop playspeed (adjusted to tempo);
#P outlet 201 194 15 0;
#P window linecount 0;
#P newex 201 171 27 9109513 f;
#P window linecount 1;
#P newex 226 61 40 9109513 t b b f;
#P window linecount 0;
#P newex 177 61 40 9109513 t b b f;
#P window linecount 1;
#P newex 201 133 66 9109513 expr $f2 / $f1;
#N comlet tempo (bpm);
#P inlet 177 43 15 0;
#N comlet number of beats in loop;
#P inlet 226 43 15 0;
#N comlet loop length (ms);
#P inlet 201 43 15 0;
#P window linecount 0;
#P newex 201 96 109 9109513 expr 60000. / ($f1 / $f2);
#P comment 269 135 175 9109513 playspeed = (project bpm / loop bpm);
#P comment 13 121 100 9109513 If you change the number of beats in loop (aka rate~ multiplier) the new playspeed wont be sent to xgroove~ until you send a bang , or until a new loop is recorded.;
#P fasten 3 0 13 0 206 86 168 86;
#P fasten 7 0 13 0 182 83 168 83;
#P connect 5 0 7 0;
#P fasten 8 1 2 0 246 90 206 90;
#P connect 3 0 2 0;
#P fasten 8 0 6 0 231 92 197 92 197 125 206 125;
#P connect 2 0 6 0;
#P fasten 7 1 6 0 197 88 194 88 194 129 206 129;
#P fasten 11 0 9 0 158 167 206 167;
#P fasten 13 0 9 0 168 165 206 165;
#P connect 9 0 10 0;
#P fasten 6 0 9 1 206 161 223 161;
#P connect 4 0 8 0;
#P fasten 6 0 12 0 206 157 235 157;
#P fasten 7 2 6 1 212 88 199 88 199 131 262 131;
#P fasten 8 2 2 1 261 93 305 93;
#P pop;
#P newobj 160 168 79 9109513 p playSpeed;
#P newex 160 264 79 9109513 xgroove~ cell1;
#P message 249 215 49 9109513 sync lock;
#P newex 49 129 27 9109513 t i i;
#P newex 49 152 28 9109513 sel 1;
#N vpatcher 395 407 995 807;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 206 132 27 9109513 – 1;
#P newex 230 97 45 9109513 cpuclock;
#P window linecount 0;
#P newex 177 98 45 9109513 cpuclock;
#P outlet 228 181 15 0;
#P inlet 243 64 15 0;
#P inlet 195 63 15 0;
#P connect 0 0 3 0;
#P connect 4 0 5 0;
#P connect 3 0 5 1;
#P connect 5 0 2 0;
#P connect 1 0 4 0;
#P pop;
#P newobj 100 264 52 9109513 p cputimer;
#P newex 100 241 41 9109513 togedge;
#P message 49 174 28 9109513 clear;
#N vpatcher 407 425 1007 825;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 243 183 33 9109513 edge~;
#P newex 240 155 31 9109513 ==~ 1;
#P inlet 239 81 15 0;
#P window linecount 0;
#P newex 239 127 43 9109513 change~;
#P outlet 259 291 15 0;
#P connect 2 0 1 0;
#P connect 1 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 0 0;
#P pop;
#P newobj 249 264 67 9109513 p tempobangs;
#P flonum 268 190 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 249 235 29 9109513 rate~;
#P newex 49 194 89 9109513 buffer~ cell1 20000;
#P newex 37 218 61 9109513 record~ cell1;
#P newex 183 142 40 9109513 r tempo;
#P window linecount 7;
#P comment 303 27 120 9109513 Set this number to int number of beats to be recorded. The recorded loop’s bpm wont be correctly calculated if this number is not the right number of beats.;
#P window linecount 2;
#P comment 386 291 100 9109513 Record start turns gate off.;
#P window linecount 1;
#P comment 256 342 100 9109513 set xgroove~’s options;
#P window linecount 7;
#P comment 17 296 100 9109513 This will toggle the bangs from rate~ on/off. When turned on , the recorded loop will be triggered by the next bang and each bang after that.;
#P window linecount 1;
#P comment 54 28 100 9109513 Recording Start/Stop;
#P window linecount 3;
#P comment 505 362 100 9109513 Open the other patcher objects to get more info on them.;
#P window linecount 1;
#P comment 32 274 100 9109513 Loop on/off;
#P window linecount 6;
#P comment 387 323 100 9109513 Your recording doesnt have to be a particular number of beats , anything you record will seemlessly loop in time.;
#P fasten 18 0 9 0 54 150 42 150;
#P connect 40 0 9 0;
#P fasten 17 1 9 0 42 171;
#P fasten 41 0 18 0 105 239 34 239 34 103 54 103;
#P fasten 18 1 17 0 71 149 54 149;
#P connect 17 0 14 0;
#P connect 14 0 10 0;
#P fasten 40 0 43 0 42 125 34 125 34 100 62 100;
#P hidden fasten 50 0 41 0 42 97 105 97;
#P connect 41 0 15 0;
#P connect 15 0 16 0;
#P fasten 41 0 48 0 105 239 96 239 96 289 126 289;
#P fasten 15 1 16 1 136 262 147 262;
#P fasten 48 0 25 0 126 316 136 316 136 289 149 289;
#P fasten 49 0 25 0 22 291 149 291;
#P connect 25 0 26 0;
#P connect 26 0 28 0;
#P connect 32 0 21 0;
#P connect 21 0 30 0;
#P connect 30 0 22 0;
#P fasten 24 0 20 0 191 316 242 316 242 258 165 258;
#P connect 22 0 20 0;
#P lcolor 5;
#P fasten 27 0 20 0 175 255 165 255;
#P connect 23 0 20 0;
#P fasten 31 0 20 0 186 363 138 363 138 291 159 291 159 263 165 263;
#P fasten 28 0 23 0 149 361 140 361 140 293 165 293;
#P fasten 13 0 26 1 254 314 168 314;
#P fasten 33 0 27 0 193 233 175 233;
#P connect 8 0 21 1;
#P fasten 28 1 33 0 166 361 178 361 178 320 246 320 246 210 193 210;
#P fasten 24 0 33 0 191 318 244 318 244 211 193 211;
#P fasten 16 0 21 2 105 284 154 284 154 165 211 165;
#P fasten 16 0 20 2 105 287 157 287 157 261 233 261;
#P fasten 12 0 21 3 273 208 265 208 265 165 234 165;
#P connect 37 0 19 0;
#P connect 19 0 11 0;
#P connect 39 0 11 0;
#P connect 11 0 13 0;
#P connect 13 0 34 0;
#P connect 44 0 12 0;
#P connect 45 0 12 0;
#P connect 12 0 11 1;
#P fasten 25 0 54 0 149 314 267 314 267 288 281 288;
#P connect 54 0 55 0;
#P fasten 37 0 45 0 254 167 283 167;
#P fasten 18 0 42 0 53 151 178 151 178 138 356 138;
#P fasten 55 0 36 0 281 339 347 339 347 265;
#P connect 42 0 36 0;
#P connect 36 0 35 0;
#P connect 35 0 38 0;
#P fasten 20 0 29 0 165 288 333 288 333 166 377 166;
#P lcolor 5;
#P fasten 29 0 35 1 377 284 377 284;
#P hidden fasten 37 0 53 0 256 163 400 163;
#P hidden connect 53 0 52 0;
#P hidden fasten 16 0 52 1 105 293 118 293 118 366 393 366 393 190 447 190;
#P pop 1;
#P newobj 11 138 35 9109513 p cell1;
#P newex 51 55 42 9109513 s tempo;
#P user gain~ 12 256 24 100 158 0 1.071519 7.94321 10.;
#P newex 152 107 27 9109513 + 1;
#P number 168 31 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 203 31 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 152 85 26 9109513 % 4;
#P button 152 31 15 0;
#N counter 1 4;
#X flags 0 0;
#P newobj 152 58 66 9109513 counter 1 4;
#P newex 245 53 40 9109513 sync~;
#P button 245 111 15 0;
#N vpatcher 407 425 1007 825;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 243 183 33 9109513 edge~;
#P newex 240 155 31 9109513 ==~ 1;
#P inlet 239 81 15 0;
#P window linecount 0;
#P newex 239 127 43 9109513 change~;
#P outlet 259 291 15 0;
#P connect 2 0 1 0;
#P connect 1 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 0 0;
#P pop;
#P newobj 245 85 67 9109513 p tempobangs;
#P flonum 51 32 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 43 339 26 9109513 stop;
#P message 43 317 56 9109513 startwindow;
#P newex 11 32 28 9109513 adc~;
#P newex 43 360 28 9109513 dac~;
#P comment 84 33 63 9109513 BPM;
#P window linecount 3;
#P comment 49 139 100 9109513 First set a tempo , then bring up the cell1 patcher.;
#P window linecount 15;
#P comment 109 197 217 9109513 This is a looper patch still in the works. You can record a selected loop of incoming audio any number of beats long , and then a new playspeed is calculated for the loop so that it fits the given bpm of the project. The loop is triggered to play one time through once every specified number of beats. This will be equal to the number of beats in the recorded loop so that a continuous loop will be played. I use it for auditioning audio from a turntable or a external sampler , then having it played back in my specified bpm. The cell patcher can be duplicated if you make sure to change the buffer name and all its associated objects. I think Im going to make 8 cells , but I’m trying to make sure I find the most efficient way to do it.;
#P window linecount 7;
#P comment 182 85 63 9109513 Im still working out issues with the counter object. It doesnt affect the patch yet.;
#P fasten 5 1 20 0 34 58 16 58;
#P connect 5 0 20 0;
#P connect 20 0 18 0;
#P fasten 11 0 20 1 250 80 41 80;
#P fasten 18 0 4 0 17 383 48 383;
#P connect 7 0 4 0;
#P fasten 6 0 4 0 48 336 40 336 40 358 48 358;
#P fasten 22 0 8 0 100 107 48 107 48 29 56 29;
#P connect 8 0 19 0;
#P fasten 18 0 4 1 17 383 66 383;
#P connect 21 0 22 0;
#P fasten 9 0 12 0 250 106 242 106 242 53 157 53;
#P connect 12 0 14 0;
#P connect 14 0 17 0;
#P fasten 17 0 16 0 157 129 149 129 149 28 173 28;
#P fasten 13 0 12 3 157 55 199 55;
#P fasten 12 3 15 0 211 80 240 80 240 28 208 28;
#P fasten 8 0 11 0 56 51 250 51;
#P connect 11 0 9 0;
#P connect 9 0 10 0;
#P pop;


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