max v2; #N vpatcher 91 58 1202 737; #P origin 0 -125; #P flonum 896 198 58 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P slider 1059 21 15 600 0 10; #P message 509 148 20 196617 10; #P message 858 147 33 196617 3000; #P message 816 148 33 196617 2100; #P message 775 148 33 196617 1800; #P message 733 148 33 196617 1500; #P message 688 148 33 196617 1200; #P message 652 148 26 196617 900; #P message 618 148 26 196617 500; #P message 581 148 26 196617 300; #P message 545 148 26 196617 100; #P number 596 175 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P user GSwitch 487 370 41 32 0 0; #P number 565 240 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P message 519 176 49 196617 seed 777; #P newex 538 201 69 196617 random 1000; #B color 5; #P newex 611 405 38 196617 - 10.; #P newex 618 367 34 196617 * 0.5; #P newex 529 254 35 196617 metro; #P message 820 255 49 196617 seed 777; #P comment 630 239 62 196617 Click to get a random number; #P comment 721 244 83 196617 Set range via right inlet; #P comment 716 306 220 196617 Optional arguments initializes range (default 1) and seed (default 0 \, which means time value is used to initialize the seed); #P slider 695 236 15 40 0 1; #P number 729 276 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P button 483 212 15 0; #P number 621 331 82 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 621 303 91 196617 random 40; #B color 5; #P comment 687 371 227 196617 When it receives a bang \, random will generate a number between 0 and one less than its range; #P comment 617 219 134 196617 Generate a random number; #P comment 617 200 62 196622 random; #P comment 872 239 100 196617 set random number generator seed--a value of 0 uses an unpredictable time value to set the seed; #P user hint 209 163 482 246 ŒThis is a hint!¹ 1000 100 0 65535 65535 52428 9 3 0 1 0 0 0; #P toggle 209 495 15 0; #P newex 261 377 27 196617 sig~; #P flonum 398 343 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P flonum 330 345 56 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P flonum 260 345 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P flonum 189 343 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P toggle 131 346 15 0; #P message 134 378 42 196617 loop \$1; #P newex 256 522 153 196617 dac~; #P newex 266 440 100 196617 groove~ soundbite 2; #P newex 258 270 124 196617 buffer~ soundbite 6000 2; #P newex 114 272 113 196617 record~ soundbite 2; #P toggle 65 243 15 0; #P toggle 114 173 15 0; #P newex 112 198 41 196617 adc~; #P comment 209 162 274 196617 The groove ~ object is the most versatile object for playing sound from a buffer ~. You can specify the buffer ~ to read \, the starting point \, the playback speed (either forward or backward) \, and starting and ending points for a repeating loop within the sample. As with other objects that read from a buffer ~ \, groove ~ accesses the buffer ~ remotely \, without patch cords \, by sharing its name.; #P comment 425 448 468 196617 In the example above \, the message loop 1 turns looping on \, the start time of 0 ms indicates the beginning of the buffer ~ \, the playback speed of 1 means to play forward at normal speed \, and the loop start and end times mean that (because looping is turned on) when groove ~ reaches a point 860 milliseconds into the buffer~ it will return to a point 572 ms into the buffer ~ and continue playing from there. Notice that the start time must be received as a float (or int) \, and the playback speed must be received as a signal. This means the speed can be varied continuously by sending a time-varying signal in the left inlet. Whenever a new start time is received \, groove ~ goes immediately to that time in the buffer ~ and continues playing from there at the current speed. When groove ~ receives the message loop 1 or startloop it goes to the beginning of the loop and begins playing at the current speed. (Note that loop points are ignored when groove ~ is playing in reverse \, so this does not work when the playback speed is negative.) groove ~ stops when it reaches the end of the buffer ~ (or the beginning if it?s playing backward) \, or when it receives a speed of 0.; #P comment 119 320 41 196617 looping; #P comment 185 320 52 196617 start time; #P comment 252 320 73 196617 playback speed; #P comment 332 318 74 196617 loop start time; #P comment 407 317 67 196617 loop end time; #P comment 12 429 114 196640 BEWARE! Feedback easily possible!; #P connect 9 0 8 0; #P connect 8 0 11 0; #P fasten 10 0 11 0 70 272; #P connect 16 0 15 0; #P connect 8 1 11 1; #P connect 13 0 14 0; #P fasten 22 0 14 0 214 517 261 517; #P connect 43 0 18 0; #P connect 18 0 21 0; #P fasten 15 0 13 0 139 418 271 418; #P fasten 17 0 13 0 194 420 271 420; #P connect 21 0 13 0; #P fasten 19 0 13 1 335 405 316 405; #P fasten 20 0 13 2 403 409 361 409; #P connect 13 1 14 1; #P fasten 37 0 30 0 534 300 513 300 513 191 488 191; #P connect 39 0 43 2; #P connect 30 0 37 0; #P connect 41 0 40 0; #P connect 30 0 40 0; #P connect 42 0 37 1; #P connect 40 0 42 0; #P fasten 45 0 44 0 550 170 601 170; #P fasten 46 0 44 0 586 172 601 172; #P fasten 47 0 44 0 623 168 601 168; #P fasten 53 0 44 0 863 170 601 170; #P fasten 52 0 44 0 821 170 601 170; #P fasten 51 0 44 0 780 171 601 171; #P fasten 50 0 44 0 738 170 601 170; #P fasten 49 0 44 0 693 171 601 171; #P fasten 48 0 44 0 657 169 601 169; #P fasten 54 0 44 0 514 171 601 171; #P fasten 56 0 44 0 901 222 828 222 828 170 601 170; #P connect 44 0 40 1; #P connect 38 0 39 0; #P connect 29 0 38 0; #P fasten 36 0 28 0 825 299 626 299; #P connect 37 0 28 0; #P connect 28 0 29 0; #P connect 31 0 28 1; #P connect 32 0 31 0; #P fasten 55 0 56 0 1064 632 1024 632 1024 146 901 146; #P pop;