2d.wave wisdom sought.
Hello everyone.
Fairly new to MaxMSP, hence the basic nature of this question...
I am in the process of designing a buffer based performance patch, and in my brief period of experimentation, I've found the 2d.wave to suit what I'm most trying to do with buffers- I like that two of them in conjucnction can be set to slowly drift in and out of synch.
I am currently using Sync~ and Rate~ to control them, and have had excellent results so far...
Despite being happy with the sounds I am getting, I'm not really understanding exactly what 2d.wave actually DOES.
For instance, which settings would actually play back a loop, at its recorded speed, looping at it's recorded length? I ahve set it up so that the buffer~ length is sent to the "max length" in of the 2d.wave for starters..
I also don't really understand how the rows are being scanned- I get you can set the number of them with the changable argument, but I'm not really understanding what changing the Phasor frequeny is actually doing to the playback- the manual says "input values change the 'row(s)' is being played back"....I'm having trouble seeing the relationship between the speed of the ramp and the sample position as defined per row, and when it would be playing back a row, or 'rows', plural.
In addition, I notice that when changing the "rows" argument the pitch changes, and I can't wuite figure out why...clearly I'm not understanding some fundamentals about 2d.wave~
Any insight into this mysterious yet playful object would be appreciated!
Cheers, Jeremy
I've been reading the forum for a couple of years now but never posted. I came the other day seeking advice on 2d.wave~ and found your super recent post with nary a reply and not too much other info in the archives. I've at least got this stuff (below) added to the help file to sort out the mysterious inner workings of 2d.wave~ from a sample playback a la groove~ point of view. Hope this helps a bit. Also, be sure and check out Pelado's decimator patch if you've not already.
Yea, first post!
Lewis
Nice. I remember there was a neat, simple explanation
on the old list, which I eventualy foound here:
http://www.synthesisters.com/hypermail/max-msp/Sep03/6594.html
Those who haven't been on the list long enough to know
about it, might like to bookmark the old list archive,
which is at
http://www.synthesisters.com/hypermail/max-msp/
Googling these pages should keep you busy for a while
:)
cheers
Roger
--- Lewis Keller wrote:
>
> I've been reading the forum for a couple of years
> now but never posted. I came the other day seeking
> advice on 2d.wave~ and found your super recent post
> with nary a reply and not too much other info in the
> archives. I've at least got this stuff (below)
> added to the help file to sort out the mysterious
> inner workings of 2d.wave~ from a sample playback a
> la groove~ point of view. Hope this helps a bit.
> Also, be sure and check out Pelado's decimator patch
> if you've not already.
>
> Yea, first post!
>
> Lewis
>
>
> max v2;
> #N vpatcher 40 44 1050 802;
> #P window setfont Helvetica 10.;
> #P window linecount 8;
> #P comment 40 404 233 1376266 Then go back to 16
> rows and try selecting bits of the sample with the
> waveform~ display. Finally tweak with all 4 settings
> and see how they influence one another. This helped
> me to wrap my mind around what is happening in
> 2d.wave~ at least. The expr objects are the key to
> keeping things going at the proper rates to hear the
> sample at its original pitch and speed.;
> #P comment 41 287 233 1376266 Then scrub through the
> rows. Notice the maths which pick the right speed
> for the X Table phasor~ as well as the position of
> the Y Table sig~ (notice the stationary sig~ instead
> of the moving phasor~ to select postion. Then try 8
> , 4 or 32 rows and see what happens. Also change
> the divisor going into the Y Table sig~ to match the
> number of rows or to be some fraction/multiple
> thereof.;
> #P window setfont Helvetica 9.;
> #P window linecount 1;
> #P comment 509 167 338 1376265
> correspond to # of rows to evenly divde things for
> scrubbing "slices";
> #P window setfont "Sans Serif" 9.;
> #P newex 474 185 27 196617 t b i;
> #P window setfont Helvetica 9.;
> #P number 474 166 35 9 0 0 0 21 0 0 0 221 221 221
> 222 222 222 0 0 0;
> #P comment 867 435 88 1376265
> #P window setfont "Sans Serif" 9.;
> #P newex 808 370 48 196617 loadbang;
> #B color 15;
> #P window setfont Helvetica 9.;
> #P message 808 397 14 1376265 1;
> #P window setfont Helvetica 10.;
> #P window linecount 6;
> #P comment 42 194 233 1376266 Load up some regular
> metric loop (like a 4 bar break beat - I actually
> made a loop of myself couting to 16 so that I could
> really hear what was going on since drum loops tend
> to have such similar sounds throughout - I highly
> recommend trying that for a sample) and first try
> dividing it into 16 rows.;
> #P window setfont Helvetica 9.;
> #P window linecount 1;
> #P comment 154 576 81 1376265 load a sample ->;
> #P comment 231 674 81 1376265 start/stop dsp ->;
> #P comment 426 652 48 1376265
> #P comment 466 114 84 1376265
> #P window setfont "Sans Serif" 9.;
> #P flonum 809 496 57 9 0 0 0 3 0 0 0 221 221 221 222
> 222 222 0 0 0;
> #P newex 356 529 65 196617 rate~;
> #P flonum 671 426 57 9 0 0 0 3 0 0 0 221 221 221 222
> 222 222 0 0 0;
> #P newex 808 476 70 196617 expr (1/$f1);
> #P newex 524 195 48 196617 loadbang;
> #P window setfont "Sans Serif" 12.;
> #P flonum 808 432 57 12 0 0 0 3 0 0 0 221 221 221
> 222 222 222 0 0 0;
> #P window setfont "Sans Serif" 9.;
> #P newex 671 398 116 196617 expr (1/$f1) * 10000.;
> #P newex 671 371 27 196617 - 0.;
> #P message 524 222 207 196617 set fred , unit phase
> , snap grid , grid 0.0625;
> #P window setfont Helvetica 9.;
> #P message 425 69 14 1376265 0;
> #P message 307 69 18 1376265 16;
> #P window setfont "Sans Serif" 9.;
> #P newex 307 38 48 196617 loadbang;
> #P flonum 381 257 57 9 0 0 0 3 0 0 0 221 221 221 222
> 222 222 0 0 0;
> #P newex 381 229 70 196617 expr (1/$f1);
> #P flonum 356 461 31 9 0 0 0 3 0 0 0 221 221 221 222
> 222 222 0 0 0;
> #P newex 356 480 46 196617 phasor~;
> #P toggle 315 669 23 0;
> #P message 730 222 51 196617 0 -1 0 -1;
> #P window setfont Helvetica 12.;
> #P number 425 114 35 12 0 31 3 21 0 0 0 221 221 221
> 222 222 222 0 0 0;
> #P window setfont "Sans Serif" 9.;
> #P newex 425 290 29 196617 * 1.;
> #P flonum 459 250 57 9 0 0 0 3 0 0 0 221 221 221 222
> 222 222 0 0 0;
> #P newex 459 227 34 196617 / 16.;
> #P window setfont Helvetica 9.;
> #P message 459 187 14 1376265 1;
> #P window setfont "Sans Serif" 9.;
> #P user waveform~ 524 245 257 74 3 9;
> #W mode select;
> #W snap grid;
> #W mouseoutput continuous;
> #W unit phase;
> #W grid 0.0625;
> #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 setfont "Sans Serif" 12.;
> #P flonum 390 649 35 12 0. 1. 3 3 0 0 0 221 221 221
> 222 222 222 0 0 0;
> #P window setfont Helvetica 12.;
> #P number 307 114 35 12 1 32 3 21 0 0 0 221 221 221
> 222 222 222 0 0 0;
> #P window setfont "Sans Serif" 9.;
> #P message 307 584 45 196617 rows $1;
> #P flonum 425 311 57 9 0 0 0 3 0 0 0 221 221 221 222
> 222 222 0 0 0;
> #P newex 425 333 29 196617 sig~;
> #P flonum 671 331 52 9 0 0 0 3 0 0 0 221 221 221 222
> 222 222 0 0 0;
> #P flonum 381 210 57 9 0 0 0 3 0 0 0 221 221 221 222
> 222 222 0 0 0;
> #P flonum 622 331 45 9 0 0 0 3 0 0 0 221 221 221 222
> 222 222 0 0 0;
> #P window setfont "Sans Serif" 12.;
> #P message 228 572 51 196620 replace;
> #P window setfont "Sans Serif" 9.;
> #P newex 228 637 104 196617 buffer~ fred 4000 2;
> #P newex 356 714 29 196617 dac~;
> #P newex 356 677 44 196617 *~ 0.2;
> #P newex 356 620 217 196617 2d.wave~ fred 0. 0. 1
> 16;
> #B color 5;
> #P newex 356 583 35 196617 rate~;
> #P newex 381 184 35 196617 * 0.1;
> #P window setfont Helvetica 9.;
> #P comment 197 115 107 1376265 select how many rows
> ->;
> #P user panel 416 94 147 54;
> #X brgb 191 191 191;
> #X frgb 0 0 0;
> #X border 1;
> #X rounded 0;
> #X shadow 0;
> #X done;
> #P user panel 179 97 180 54;
> #X brgb 191 191 191;
> #X frgb 0 0 0;
> #X border 1;
> #X rounded 0;
> #X shadow 0;
> #X done;
> #P user panel 800 415 160 56;
> #X brgb 191 191 191;
> #X frgb 0 0 0;
> #X border 1;
> #X rounded 0;
> #X shadow 0;
> #X done;
> #P user panel 148 558 139 48;
> #X brgb 191 191 191;
> #X frgb 0 0 0;
> #X border 1;
> #X rounded 0;
> #X shadow 0;
> #X done;
> #P user panel 386 644 90 30;
> #X brgb 191 191 191;
> #X frgb 0 0 0;
> #X border 1;
> #X rounded 0;
> #X shadow 0;
> #X done;
> #P user panel 227 665 118 33;
> #X brgb 191 191 191;
> #X frgb 0 0 0;
> #X border 1;
> #X rounded 0;
> #X shadow 0;
> #X done;
>
=== message truncated ===
> Nice. I remember there was a neat, simple explanation
> on the old list, which I eventualy foound here:
> http://www.synthesisters.com/hypermail/max-msp/Sep03/6594.html
That is indeed a nice clean explanation, thanks for the link Roger.
> Those who haven't been on the list long enough to know
> about it, might like to bookmark the old list archive,
> which is at
> http://www.synthesisters.com/hypermail/max-msp/
> Googling these pages should keep you busy for a while
> :)
I've looked through old list things before (and been kept VERY busy as you predicted) and for some reason thought they were querried when searching the newer forum. Apparently not. Thanks for the reminder of what a good source of info that is.
Hey, thank you both very much! I'm studying the patch right now...Good to get some insight, I thought I was going to have to forge out on my own-
Looks like there is an interesting example patch in that older thread as well..
Cheers, Jeremy