[maxmsp] Breakoint envelopes
Roald Baudoux
roald.baudoux at brutele.be
Wed Jan 30 04:07:53 MST 2008
- Previous message: [maxmsp] Re: Breakoint envelopes
- Next message: [maxmsp] max/msp soundcard search
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Two additional possibilites to use function to control several voices when using poly~: 1. Save the envelope's shape into a buffer. The buffer can be either played back with a cycle~ (useful to synchronize the envelop with a groove~ or a phasor~ for instance) or with a wave~ (see patcher below for recording). 2. Transform the function data so they can be used in a zigzag~ object (see patcher 2). Quite tricky but useful. However I still wonder why the folks at C74 haven't thought about a better solution than having to cope with adsr~ when one wants to use complex envelopes inside poly~. Roald Baudoux 1. function to buffer~ #P window setfont "Sans Serif" 9.; #P window linecount 1; #P message 351 279 14 196617 0; #P newex 503 61 72 196617 loadmess 513; #P newex 503 84 66 196617 sampstoms~; #P message 503 108 43 196617 size \$1; #P message 266 33 33 196617 clear; #P newex 503 134 65 196617 buffer~ tutu; #P newex 232 131 31 196617 t 1 b; #P button 232 112 15 0; #P newex 318 58 72 196617 loadmess 512; #P message 318 121 70 196617 setdomain \$1; #P newex 318 81 66 196617 sampstoms~; #P newex 329 300 67 196617 record~ tutu; #P comment 467 150 17 196617 1.; #P user function 266 154 466 254 1 1 1 0; #X frgb 82 82 82; #X brgb 204 204 204; #X rgb2 85 85 85; #X rgb3 255 255 255; #X rgb4 0 0 0; #X rgb5 0 0 0; #X add 0. 0. 0; #X add 2.778984 0.681818 0; #X add 11.61 1. 0; #X domain 11.61; #X range 0. 1.; #X done; #P newex 329 258 32 196617 line~; #P comment 467 247 17 196617 0.; #P window linecount 5; #P comment 11 45 199 196617 Shows how to draw a waveform store in a buffer using a function object with line~ and record~. It is important to resize the buffer and the function time axis the right way.; #P connect 13 0 11 0; #P fasten 14 1 13 0 564 104 508 104; #P connect 15 0 14 0; #P connect 2 1 16 0; #P connect 2 0 5 0; #P fasten 10 0 5 0 237 281 334 281; #P connect 16 0 5 0; #P connect 3 1 2 0; #P connect 6 1 7 0; #P connect 8 0 6 0; #P connect 12 0 3 0; #P connect 10 1 3 0; #P connect 7 0 3 0; #P connect 9 0 10 0; #P connect 3 3 9 0; #P window clipboard copycount 17; 2. function to zigzag~ #P window setfont "Sans Serif" 9.; #P window linecount 1; #N vpatcher 119 145 745 575; #N comlet listdump contents; #P inlet 74 37 15 0; #N comlet to zigzag~'s right input; #P outlet 300 370 15 0; #P window setfont "Sans Serif" 9.; #P message 246 91 119 196617 insert 50 0. 0. \, jump 50; #B color 5; #P newex 74 306 74 196617 prepend insert; #N counter 0 200; #X flags 0 0; #P newobj 74 218 306 196617 counter 0 200; #P newex 109 256 45 196617 buddy 0.; #P message 366 120 45 196617 delete 0; #B color 6; #P newex 370 90 40 196617 uzi 50; #B color 6; #P newex 74 62 308 196617 t l b 0 b b; #P newex 74 284 81 196617 pack 1 0. 0.; #P newex 74 129 150 196617 unpack 0. 0.; #P newex 74 188 27 196617 - 0.; #P message 148 105 17 196617 0.; #P newex 91 161 50 196617 bucket 0.; #P newex 74 104 45 196617 zl iter 2; #N comlet to zigzag~'s left input; #P outlet 246 370 15 0; #P comment 412 93 159 196617 empties zigzag~ (up to 50 points); #P comment 167 106 70 196617 resets bucket; #P comment 384 219 69 196617 counts points; #P comment 159 285 182 196617 creates new point : index - delta x - y; #P comment 104 191 113 196617 replaces x with delta x; #P connect 20 0 12 0; #P connect 12 0 6 0; #P connect 6 0 10 0; #P connect 10 0 9 0; #P connect 9 0 16 0; #P connect 16 0 11 0; #P connect 11 0 17 0; #P connect 10 0 7 0; #P connect 8 0 7 0; #P connect 7 0 9 1; #P connect 10 1 15 0; #P connect 15 0 11 1; #P connect 9 0 15 1; #P connect 15 1 11 2; #P connect 12 1 8 0; #P connect 12 2 16 2; #P fasten 12 3 18 0 301 85 251 85; #P connect 18 0 5 0; #P connect 14 0 5 0; #P fasten 17 0 19 0 79 346 305 346; #P fasten 13 2 14 0 405 113 371 113; #P connect 12 4 13 0; #P pop; #P newobj 612 425 109 196617 p function_to_zigzag~; #P window linecount 4; #P comment 52 235 285 196617 2) When a new point is inserted \, the enveloppe isautomatically triggered. The only trick I have found to avoid this is by insertion of a special point after deleting the old envelope and before inserting the new envelope.; #P window linecount 1; #P message 571 42 32 196617 clear; #P button 352 309 52 0; #P comment 512 26 17 196617 2.; #P message 540 25 45 196617 listdump; #P user function 540 70 740 170 1 1 0 0; #X frgb 82 82 82; #X brgb 204 204 204; #X rgb2 85 85 85; #X rgb3 255 255 255; #X rgb4 0 0 0; #X rgb5 0 0 0; #X add 0. 0. 0; #X add 148.936172 0.786667 0; #X add 196.808502 0.653333 0; #X add 218.085098 0.226667 0; #X add 244.680847 0.213333 0; #X add 244.680847 0.546667 0; #X add 452.127655 0.453333 0; #X add 494.680847 0.853333 0; #X add 515.957458 0.213333 0; #X add 521.27655 1. 0; #X add 585.106384 0.413333 0; #X add 654.25531 0.2 0; #X add 686.170166 0.76 0; #X add 712.76593 0.186667 0; #X add 1000. 0. 0; #X domain 1000.; #X range 0. 1.; #X done; #P user scope~ 752 488 882 618 256 3 128 -1. 1. 0 0. 0 0. 102 255 51 135 135 135 0; #P message 355 46 32 196617 clear; #P newex 520 497 38 196617 noise~; #P message 314 26 45 196617 listdump; #P user function 314 71 514 171 1 1 0 0; #X frgb 82 82 82; #X brgb 204 204 204; #X rgb2 85 85 85; #X rgb3 255 255 255; #X rgb4 0 0 0; #X rgb5 0 0 0; #X add 0. 0. 0; #X add 175.531906 1. 0; #X add 1000. 0. 0; #X domain 1000.; #X range 0. 1.; #X done; #P newex 520 531 102 196617 *~ 1.; #P user bargraf~ 315 443 128 24 100 0 0 0 0 155 155 155 0 186 0 77 202 0 124 225 0 255 255 0 255 0 0 225 225 225 108 108 108 225 225 225 108 108 108 0 0 0 12 1; #P user bargraf~ 284 443 128 24 100 0 0 0 0 155 155 155 0 186 0 77 202 0 124 225 0 255 255 0 255 0 0 225 225 225 108 108 108 225 225 225 108 108 108 0 0 0 12 1; #P message 175 561 27 196617 stop; #B color 5; #P message 108 561 65 196617 startwindow; #B color 6; #P newex 256 590 96 196617 dac~; #P user gain~ 342 443 24 100 158 0 1.071519 7.94321 10.; #P user gain~ 256 443 24 100 158 0 1.071519 7.94321 10.; #P newex 612 495 53 196617 zigzag~; #P comment 293 26 17 196617 1.; #P window linecount 3; #P comment 55 150 186 196617 The purpose of the patcher is to create envelopes with function and store them in zigzag~.; #P window linecount 2; #P comment 52 202 285 196617 1) The patcher use a uzi with the "delete 0" message to delete all points in zigzag~. Is there an easier way to achieve this?; #P window linecount 1; #P comment 66 303 140 196617 Roald Baudoux \, 02/02/2005; #P fasten 12 0 5 0 525 564 386 564 386 407 261 407; #P fasten 12 0 6 0 525 567 383 567 383 413 347 413; #P fasten 12 0 17 0 525 554 724 554 724 455 757 455; #P fasten 24 1 4 1 716 453 660 453; #P connect 4 0 12 1; #P fasten 21 0 4 0 357 390 417 390 417 488 617 488; #P connect 24 0 4 0; #P fasten 13 2 24 0 445 299 617 299; #P fasten 18 2 24 0 671 296 617 296; #P connect 22 0 18 0; #P connect 19 0 18 0; #P connect 15 0 12 0; #P fasten 6 0 11 0 347 575 340 575 340 438 320 438; #P connect 6 0 7 1; #P fasten 5 1 6 0 275 574 311 574 311 436 347 436; #P connect 16 0 13 0; #P connect 14 0 13 0; #P fasten 5 0 10 0 261 579 281 579 281 437 289 437; #P fasten 8 0 7 0 113 589 152 589 261 589; #P fasten 9 0 7 0 180 589 261 589; #P connect 5 0 7 0; #P window clipboard copycount 25; Le 26-janv.-08 à 21:59, seanzshow a écrit : > > I am trying to build an additive synth with 16 oscilators, each > having its own amplitude envelope. > > I wish to eliminate having 16 envelopes on the interface so was > wondeing if there was a way to have a master envelope that could be > assigned to a particular oscilator, while using a ...preset?... to > save the previous oscilators envelope settings to be recalled when > the oscilator was next selected?? > > This would require the oscilators particular envelope to mirror the > master one when the required message was sent. It would also > require the master envelope to revert to the selected oscilators > precviously saved settings when that osc was subsequently selected.??? > > It occured to me there may be a way of using poly to achieve this? > _______________________________________________ > maxmsp mailing list > maxmsp at cycling74.com > http://www.cycling74.com/mailman/listinfo/maxmsp
- Previous message: [maxmsp] Re: Breakoint envelopes
- Next message: [maxmsp] max/msp soundcard search
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
