2d.wave wisdom sought.

Nov 18, 2006 at 9:37pm

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

#28769
Nov 22, 2006 at 6:09am

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 < - this should 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 < - playback speed;
#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 < - volume;
#P comment 466 114 84 1376265 < - select which row;
#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;
#P user panel 32 180 252 341;
#X brgb 255 255 255;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P connect 14 0 13 0;
#P connect 35 0 36 0;
#P lcolor 16;
#P connect 36 0 21 0;
#P connect 21 0 20 0;
#P fasten 44 0 32 0 676 453 361 453;
#P connect 32 0 31 0;
#P connect 31 0 45 0;
#P connect 45 0 9 0;
#P fasten 20 0 10 0 312 613 361 613;
#P connect 9 0 10 0;
#P connect 10 0 11 0;
#P connect 11 0 12 0;
#P fasten 30 0 12 0 320 706 361 706;
#P fasten 11 0 12 1 361 699 380 699;
#P connect 21 0 8 0;
#P connect 8 0 16 0;
#P connect 16 0 33 0;
#P connect 33 0 34 0;
#P connect 34 0 9 1;
#P connect 22 0 11 1;
#P fasten 46 0 45 1 814 524 416 524;
#P connect 35 0 37 0;
#P lcolor 16;
#P connect 37 0 28 0;
#P connect 28 0 27 0;
#P connect 27 0 19 0;
#P connect 19 0 18 0;
#P connect 18 0 10 1;
#P fasten 26 0 27 1 464 277 449 277;
#P connect 35 0 24 0;
#P lcolor 16;
#P connect 24 0 25 0;
#P fasten 56 0 25 0 479 209 464 209;
#P connect 25 0 26 0;
#P connect 55 0 56 0;
#P fasten 56 1 25 1 496 214 488 214;
#P fasten 15 0 10 2 627 358 499 358;
#P connect 42 0 38 0;
#P lcolor 16;
#P connect 38 0 23 0;
#P fasten 17 0 10 3 676 358 568 358;
#P connect 23 2 15 0;
#P connect 23 3 17 0;
#P connect 17 0 39 0;
#P connect 39 0 40 0;
#P connect 40 0 44 0;
#P fasten 15 0 39 1 627 358 693 358;
#P fasten 29 0 23 4 735 241 773 241;
#P connect 53 0 52 0;
#P lcolor 16;
#P connect 52 0 41 0;
#P connect 41 0 43 0;
#P connect 43 0 46 0;
#P pop;

#88628
Nov 22, 2006 at 9:24am

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 < - this should
> 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 < - playback speed;
> #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 < - volume;
> #P comment 466 114 84 1376265 < - select which row;
> #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 ===

#88629
Nov 23, 2006 at 2:17am

> 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.

#88630
Nov 24, 2006 at 11:57am

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

#88631

You must be logged in to reply to this topic.