Forums > MaxMSP

strugling abit to make an "operator" for additive synth

November 25, 2007 | 4:29 pm

Hello

Im trying to make a litle "operator" (oscillator) for a hopefully flexible additive synthesizer. Im going to have around 50 of these set up in a "modulation matrix" for being able to morph between basic waveforms like saw and square, and maybe also using the resulting waveforms as a fm modulator in an "2 operator" fm synth,
where the latter additive patch is the modulator and a sine as carrier (or something like this)

max v2;
#N vpatcher 15 55 929 648;
#N comlet freq multipliator/amplitude divider bang input;
#P inlet 442 241 15 0;
#P window setfont "Sans Serif" 9.;
#P flonum 442 301 51 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 380 426 27 9109513 /~ 1.;
#P newex 381 317 27 9109513 *;
#P newex 381 364 36 9109513 cycle~;
#P newex 442 263 27 9109513 * 2.;
#N comlet right freq multiplicator input/right amplitude divider input;
#P inlet 459 241 15 0;
#N comlet left multiplicator input;
#P inlet 381 297 15 0;
#P outlet 380 450 15 0;
#P connect 4 0 6 0;
#P connect 6 0 0 0;
#P connect 1 0 5 0;
#P connect 5 0 4 0;
#P connect 7 1 6 1;
#P connect 7 0 5 1;
#P connect 3 0 7 0;
#P connect 2 0 3 1;
#P pop;

The inlets in the right of the patch should recieve data from "global" multislider envelopes.

Would something like this be difficult to accomplish?

Please modify my little operator to be clever :)


November 26, 2007 | 10:58 am

These "operators" is going to be "controlled" by something like this genious patch from adamj

max v2;
#N vpatcher 0 0 1024 688;
#P window setfont "Sans Serif" 9.;
#P number 416 151 37 9 220 880 3 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P newex 428 346 37 9109513 int;
#P newex 349 262 37 9109513 t b b;
#P newex 445 324 51 9109513 zl slice 1;
#P newex 460 459 37 9109513 line~;
#P newex 460 429 37 9109513 zl reg;
#P newex 486 383 55 9109513 append 20;
#P newex 486 355 37 9109513 iter;
#P user multiSlider 437 207 119 97 220. 880. 65 2665 47 0 0 4 0 0 0;
#M frgb 0 0 0;
#M brgb 255 255 255;
#M rgb2 127 127 127;
#M rgb3 0 0 0;
#M rgb4 37 52 91;
#M rgb5 74 105 182;
#M rgb6 112 158 18;
#M rgb7 149 211 110;
#M rgb8 187 9 201;
#M rgb9 224 62 37;
#M rgb10 7 114 128;
#P newex 486 405 67 9109513 zl group 128;
#P window linecount 2;
#P comment 249 103 73 9109513 3: trigger both envs;
#P window linecount 1;
#P comment 194 171 116 9109513 1: draw amplitude env;
#P newex 581 155 37 9109513 t b i;
#P newex 617 194 37 9109513 * 64;
#P number 617 216 37 9 0 0 160 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P button 324 101 37 0;
#P newex 192 308 49 9109513 append 0;
#P user meter~ 166 479 203 547 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 user gain~ 309 555 13 10 158 0 1.071519 7.94321 10.;
#P newex 308 527 37 9109513 *~;
#P newex 460 485 40 9109513 tri~;
#P user ezdac~ 308 605 352 638 0;
#P newex 166 441 37 9109513 line~;
#P newex 166 415 37 9109513 zl reg;
#P number 581 135 37 9 1 100 3 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 598 270 62 9109513 prepend set;
#P newex 192 365 55 9109513 append 20;
#P newex 192 329 37 9109513 iter;
#P user multiSlider 192 210 106 82 0. 1. 63 2937 15 0 0 2 0 0 0;
#M frgb 0 0 0;
#M brgb 255 255 255;
#M rgb2 127 127 127;
#M rgb3 0 0 0;
#M rgb4 37 52 91;
#M rgb5 74 105 182;
#M rgb6 112 158 18;
#M rgb7 149 211 110;
#M rgb8 187 9 201;
#M rgb9 224 62 37;
#M rgb10 7 114 128;
#P newex 192 386 67 9109513 zl group 128;
#P comment 654 219 48 9109513 ms total;
#P comment 620 137 71 9109513 ms per slider;
#P comment 582 117 112 9109513 change length of env;
#P window linecount 2;
#P comment 91 307 100 9109513 append 0 ensures the envelope will end;
#P window linecount 3;
#P comment 359 414 87 9109513 sending an int jumps to that value immediately;
#P comment 459 149 100 9109513 2. set a contstant frequency or draw freq env;
#P fasten 20 0 12 0 329 156 171 156;
#P connect 12 0 13 0;
#P connect 13 0 18 0;
#P fasten 23 0 7 0 586 192 197 192;
#P connect 7 0 19 0;
#P connect 19 0 8 0;
#P fasten 10 0 9 0 603 314 290 314 290 353 197 353;
#P connect 8 0 9 0;
#P connect 9 0 6 0;
#P connect 6 0 12 1;
#P connect 13 0 16 0;
#P connect 17 0 14 0;
#P connect 16 0 17 0;
#P connect 15 0 16 1;
#P connect 17 0 14 1;
#P connect 20 0 33 0;
#P connect 33 1 34 0;
#P connect 35 0 27 0;
#P fasten 23 0 27 0 586 192 442 192;
#P connect 27 0 32 0;
#P connect 32 0 34 1;
#P connect 33 0 30 0;
#P fasten 34 0 31 0 433 433;
#P connect 30 0 31 0;
#P connect 31 0 15 0;
#P connect 32 1 28 0;
#P connect 28 0 29 0;
#P fasten 10 0 29 0 603 376 491 376;
#P connect 29 0 26 0;
#P connect 26 0 30 1;
#P connect 11 0 23 0;
#P connect 23 1 10 0;
#P connect 23 1 22 0;
#P connect 22 0 21 0;
#P pop;

Im sorry for bothering with everything, but my max part of the brain (i guess thats the right half) is on vacation.


November 26, 2007 | 9:18 pm

petterdass schrieb:
> Im trying to make a litle "operator" (oscillator) for a hopefully
> flexible additive synthesizer. Im going to have around 50 of these
> set up in a "modulation matrix" for being able to morph between basic
> waveforms like saw and square,

I doubt that mixing 50 oscilators with a matrix~ just to get different
wave forms is very effective.

What about actually modifying the waveform directly and morphing by
interpoaltion with pattrstorage? As a starting point and for further
studies the patch below…

> and maybe also using the resulting waveforms as a fm modulator in an
> "2 operator" fm synth, where the latter additive patch is the
> modulator and a sine as carrier (or something like this)

This doesn’t really look like fm, there was a thread recently with some
patches….

but here is an additive waveform constructor:

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 582 85 91 196617 recall interpolated;
#P flonum 587 110 35 9 1. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 496 110 35 9 1 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 496 131 49 196617 store $1;
#P message 752 252 15 196617 0;
#N vpatcher 10 59 610 459;
#P window setfont "Sans Serif" 9.;
#P message 104 75 31 196617 set 0;
#P newex 50 50 64 196617 t b l b;
#P newex 77 74 25 196617 iter;
#P newex 50 101 64 196617 accum 0.;
#P inlet 50 30 15 0;
#P outlet 50 123 15 0;
#P connect 1 0 4 0;
#P fasten 5 0 2 0 109 96 55 96;
#P connect 4 0 2 0;
#P connect 2 0 0 0;
#P connect 4 1 3 0;
#P connect 3 0 2 1;
#P connect 4 2 5 0;
#P pop;
#P newobj 306 193 50 196617 p listsum;
#P button 121 30 15 0;
#N vpatcher 466 150 752 468;
#P window setfont "Sans Serif" 9.;
#P window linecount 0;
#P newex 131 95 30 196617 % 2;
#P newex 90 116 51 196617 * 1.;
#P inlet 50 49 15 0;
#P number 69 49 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P newex 90 95 38 196617 !/ 1.;
#P newex 90 136 38 196617 thresh;
#P newex 50 69 50 196617 uzi 24;
#P outlet 90 158 15 0;
#P connect 5 0 1 0;
#P connect 4 0 1 0;
#P connect 1 2 3 0;
#P connect 3 0 6 0;
#P connect 6 0 2 0;
#P connect 2 0 0 0;
#P connect 1 2 7 0;
#P connect 7 0 6 1;
#P pop;
#P newobj 121 51 46 196617 p square;
#P button 83 30 15 0;
#N vpatcher 10 59 610 459;
#P inlet 50 49 15 0;
#P window setfont "Sans Serif" 9.;
#P number 69 49 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 90 90 38 196617 !/ 1.;
#P newex 90 111 38 196617 thresh;
#P newex 50 69 50 196617 uzi 24;
#P outlet 90 133 15 0;
#P connect 4 0 1 0;
#P connect 5 0 1 0;
#P connect 1 2 3 0;
#P connect 3 0 2 0;
#P connect 2 0 0 0;
#P pop;
#P newobj 83 51 34 196617 p saw;
#P newex 474 33 50 196617 autopattr;
#X prestore multiSlider 24 0 1. 0.2 0.133333 0.1 0.08 0.066667 0.057143
0.05 0.044444 0.04 0.036364 0.033333 0.030769 0.028571 0.026667 0.025
0.023529 0.022222 0.021053 0.02 0.019048 0.018182 0.017391 0.016667;
#P objectname u691000001;
#P newex 496 155 114 196617 pattrstorage MyWaves;
#X client_rect 0 0 640 240;
#X storage_rect 0 0 640 240;
#P objectname MyWaves;
#P newex 739 309 39 196617 / 127.;
#P newex 552 205 50 196617 notein;
#P user ezdac~ 552 469 596 502 0;
#P newex 552 417 30 196617 *~;
#P newex 572 377 124 196617 adsr~ 0 300 0.5 100;
#P newex 552 279 45 196617 mtof;
#P user kslider 552 232 35 1 36 48 19 7 0 128 128 128 128 128 128 255
255 255 0 0 0 0 0 0;
#P newex 552 302 45 196617 phasor~;
#P newex 552 331 73 196617 wave~ Mybuf;
#P newex 306 265 50 196617 !/ 1.;
#P newex 151 395 165 196617 * 1.;
#P message 271 217 31 196617 set 0;
#P newex 111 461 99 196617 loadmess set Mybuf;
#P user waveform~ 111 492 264 86 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 newex 111 416 50 196617 pack 0 0.;
#P newex 171 351 59 196617 * 0.;
#P newex 171 309 70 196617 * 1.;
#P newex 171 265 59 196617 unpack 0 0.;
#P newex 231 288 38 196617 / 513.;
#P newex 231 265 65 196617 * 6.283186;
#P newex 171 239 58 196617 listfunnel 1;
#P newex 171 144 60 196617 t b l l;
#P newex 171 217 35 196617 zl reg;
#P newex 151 375 50 196617 accum 0.;
#P newex 111 193 170 196617 t i b b f b;
#P user multiSlider 171 33 290 105 0. 1. 24 2937 47 0 0 2 0 0 0;
#M frgb 125 25 25;
#M brgb 139 206 208;
#M rgb2 127 127 127;
#M rgb3 91 91 91;
#M rgb4 37 52 91;
#M rgb5 74 105 182;
#M rgb6 112 158 18;
#M rgb7 149 211 110;
#M rgb8 187 9 201;
#M rgb9 224 62 37;
#M rgb10 7 114 128;
#P objectname multiSlider;
#P newex 171 330 27 196617 sin;
#P newex 402 192 134 196617 buffer~ Mybuf 11.632653;
#P newex 111 438 79 196617 peek~ Mybuf;
#P newex 71 169 50 196617 uzi 512 0;
#P comment 474 85 100 196617 store some settings;
#P fasten 9 0 1 0 176 165 76 165;
#P connect 34 0 33 0;
#P connect 1 2 6 0;
#P connect 6 0 16 0;
#P connect 16 0 2 0;
#P connect 18 0 17 0;
#P connect 36 0 35 0;
#P fasten 19 0 7 0 276 371 156 371;
#P connect 6 1 7 0;
#P connect 7 0 20 0;
#P connect 20 0 16 1;
#P hidden fasten 35 0 5 0 126 71 176 71;
#P hidden fasten 33 0 5 0 88 71 176 71;
#P hidden connect 32 0 5 0;
#P connect 5 0 9 0;
#P connect 6 2 8 0;
#P connect 8 0 10 0;
#P connect 10 0 13 0;
#P connect 13 0 14 0;
#P connect 14 0 4 0;
#P connect 4 0 15 0;
#P connect 15 0 7 1;
#P connect 9 1 8 1;
#P connect 13 1 15 1;
#P connect 6 3 11 0;
#P connect 11 0 12 0;
#P connect 12 0 14 1;
#P connect 6 4 19 0;
#P connect 9 2 37 0;
#P connect 37 0 21 0;
#P connect 21 0 20 1;
#P connect 40 0 39 0;
#P fasten 41 0 31 0 592 149 501 149;
#P connect 39 0 31 0;
#P connect 29 0 24 0;
#P connect 24 0 25 0;
#P connect 25 0 23 0;
#P connect 23 0 22 0;
#P connect 22 0 27 0;
#P connect 27 0 28 0;
#P fasten 30 0 26 0 744 359 577 359;
#P connect 26 0 27 1;
#P connect 27 0 28 1;
#P fasten 29 1 24 1 577 227 744 227;
#P connect 38 0 30 0;
#P connect 24 1 30 0;
#P window clipboard copycount 43;


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
– _|_)—-|—–()————–
———-()——–www.ccmix.com


November 26, 2007 | 9:30 pm

Quote: petterdass wrote on Sun, 25 November 2007 08:29
—————————————————-
> Hello
>
> Im trying to make a litle "operator" (oscillator) for a hopefully flexible additive synthesizer. Im going to have around 50 of these set up in a "modulation matrix" for being able to morph between basic waveforms like saw and square, and maybe also using the resulting waveforms as a fm modulator in an "2 operator" fm synth,
> where the latter additive patch is the modulator and a sine as carrier (or something like this)
>

Hi-

After looking at your patches, I don’t quite follow your question. It seems like your patch is changing the frequency of cycle, and the amplitude, with the same number. Off the top of my head:

• Multiplying the frequency by x and dividing the amplitude by x is going to yield an idiosyncratic result. It will tend to make higher frequencies quieter, but I might do it differently.

• Amplitude and frequency are probably best controlled with other signals. adamj’s patch does this.

• As I type, I see Stefan has given you an even more helpful answer.

mz


November 27, 2007 | 8:44 am

"After looking at your patches, I don’t quite follow your question. It seems like your patch is changing the frequency of cycle, and the amplitude, with the same number. Off the top of my head:

• Multiplying the frequency by x and dividing the amplitude by x is going to yield an idiosyncratic result. It will tend to make higher frequencies quieter, but I might do it differently"

When making "basic waveforms" additively, isnt that the right way?

i.e 100hz sawtooth – 1partial 100hz sine, second partial 100hz x2, amplitude /2 etc


November 27, 2007 | 9:33 am

At 1:44 AM -0700 11/27/07, petterdass wrote:
>When making "basic waveforms" additively, isnt that the right way?
>
>i.e 100hz sawtooth – 1partial 100hz sine, second partial 100hz x2, amplitude /2 etc

Well, that method will work for sawtooth, and I have an example illustrating that, called Partial Workshop, that can be found at http://www.xfade.com/max/examples It will generate a few basic waveforms as well as letting you draw in the harmonic levels.

That said, if you’re going to be doing additive stuff, CNMAT has some great objects that you may find helpful.

-C


Chris Muir | "There are many futures and only one status quo.
cbm@well.com | This is why conservatives mostly agree,
http://www.xfade.com | and radicals always argue." – Brian Eno


November 28, 2007 | 11:49 am

Thanks all, but im struggling to make something very simple, like this :

max v2;
#N vpatcher 15 55 666 595;
#P window setfont "Sans Serif" 9.;
#P newex 190 285 27 9109513 gate;
#P button 191 204 15 0;
#N comlet nyquist input;
#P inlet 191 243 15 0;
#P window setfont "Fixedwidth Serif" 10.;
#P newex 132 259 38 9240586 < = 1.;
#P button 270 202 15 0;
#P window setfont "Fixedwidth Serif" 9.;
#P newex 207 202 32 9240585 * 1.;
#P newex 230 350 29 9240585 /~ 1.;
#P window setfont "Sans Serif" 9.;
#P newex 190 319 36 9109513 cycle~;
#N comlet freq multiplication/ amp division;
#P inlet 321 184 17 0;
#N comlet freq;
#P inlet 207 180 15 0;
#P outlet 230 381 15 0;
#P comment 63 261 52 9109513 antialiasing;
#P connect 6 0 8 0;
#P connect 10 0 8 0;
#P connect 9 0 8 1;
#P connect 8 0 11 0;
#P connect 11 0 4 0;
#P connect 2 0 10 0;
#P connect 2 0 6 0;
#P connect 7 0 6 0;
#P connect 6 0 11 1;
#P connect 3 0 6 1;
#P connect 4 0 5 0;
#P connect 5 0 1 0;
#P connect 3 0 5 1;
#P connect 3 0 7 0;
#P pop;

But this one has some trouble with the comparision i think…


November 28, 2007 | 1:51 pm

Looks like a problem with order of execution. The signal to open or close
the gate must arrive first. This is confusing because this is the (perhaps)
single exception to Max’ order of execution rule. In this case, it is the
right inlet that causes output. I made this simple abstraction so I
wouldn’t have to remember this. I called it "etag"

#P inlet 260 129 15 0;
#P inlet 298 129 15 0;
#P outlet 273 220 15 0;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 272 188 29 196617 gate;
#P connect 3 0 0 1;
#P connect 0 0 1 0;
#P connect 2 0 0 0;
#P window clipboard copycount 4;

Try this version of your patch.

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 132 327 27 196617 gate;
#P button 132 209 15 0;
#N comlet nyquist input;
#P inlet 160 103 15 0;
#P window setfont "Fixedwidth Serif" 10.;
#P newex 132 274 38 1441802 < = 1.;
#P button 208 135 15 0;
#P window setfont "Fixedwidth Serif" 9.;
#P newex 62 205 32 1441801 * 1.;
#P newex 132 390 50 1441801 /~ 1.;
#P window setfont "Sans Serif" 9.;
#P newex 132 361 36 196617 cycle~;
#N comlet freq multiplication/ amp division;
#P inlet 315 103 17 0;
#N comlet freq;
#P inlet 132 103 15 0;
#P outlet 132 421 15 0;
#P comment 59 329 62 196617 antialiasing;
#P fasten 3 0 6 1 320 160 89 160;
#P fasten 3 0 5 1 320 384 177 384;
#P fasten 3 0 7 0 320 127 213 127;
#P fasten 6 0 8 0 67 228 137 228;
#P fasten 6 0 11 1 67 309 154 309;
#P fasten 2 0 6 0 137 186 67 186;
#P connect 2 0 10 0;
#P connect 5 0 1 0;
#P connect 4 0 5 0;
#P fasten 7 0 6 0 213 154 67 154;
#P connect 11 0 4 0;
#P connect 8 0 11 0;
#P connect 9 0 8 1;
#P connect 10 0 8 0;
#P window clipboard copycount 12;

On 11/28/07 6:49 AM, "petterdass" wrote:

>
> Thanks all, but im struggling to make something very simple, like this :
>
> max v2;
> #N vpatcher 15 55 666 595;
> #P window setfont "Sans Serif" 9.;
> #P newex 190 285 27 9109513 gate;
> #P button 191 204 15 0;
> #N comlet nyquist input;
> #P inlet 191 243 15 0;
> #P window setfont "Fixedwidth Serif" 10.;
> #P newex 132 259 38 9240586 < = 1.;
> #P button 270 202 15 0;
> #P window setfont "Fixedwidth Serif" 9.;
> #P newex 207 202 32 9240585 * 1.;
> #P newex 230 350 29 9240585 /~ 1.;
> #P window setfont "Sans Serif" 9.;
> #P newex 190 319 36 9109513 cycle~;
> #N comlet freq multiplication/ amp division;
> #P inlet 321 184 17 0;
> #N comlet freq;
> #P inlet 207 180 15 0;
> #P outlet 230 381 15 0;
> #P comment 63 261 52 9109513 antialiasing;
> #P connect 6 0 8 0;
> #P connect 10 0 8 0;
> #P connect 9 0 8 1;
> #P connect 8 0 11 0;
> #P connect 11 0 4 0;
> #P connect 2 0 10 0;
> #P connect 2 0 6 0;
> #P connect 7 0 6 0;
> #P connect 6 0 11 1;
> #P connect 3 0 6 1;
> #P connect 4 0 5 0;
> #P connect 5 0 1 0;
> #P connect 3 0 5 1;
> #P connect 3 0 7 0;
> #P pop;
>
>
> But this one has some trouble with the comparision i think…

Cheers
Gary Lee Nelson
Oberlin College
http://www.timara.oberlin.edu/GaryLeeNelson


November 28, 2007 | 2:47 pm

Thanks

Is this patch now imune to aliasing?
i.e 22000 + = no sound


November 28, 2007 | 7:08 pm

I use this, for a single partial, in my Partial Workshop example –

http://www.xfade.com/max/examples

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 97 120 39 196617 r sync;
#P newex 61 153 46 196617 phasor~;
#P comment 253 120 93 196617 Crude band-limit;
#P newex 31 207 54 196617 *~ 0.;
#P flonum 155 85 68 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P objectname Freq;
#N comlet Harm Amp;
#P inlet 244 31 15 0;
#P button 155 148 15 0;
#P newex 155 178 31 196617 float;
#N comlet Freq;
#P inlet 155 31 15 0;
#P message 235 178 17 196617 0.;
#P newex 155 119 90 196617 split 0. 20000.;
#N comlet Osc Out;
#P outlet 31 253 15 0;
#P newex 155 59 33 196617 * $1;
#P newex 31 178 40 196617 cycle~;
#P window linecount 2;
#P comment 258 70 93 196617 Args – 1. freq mult = $1;
#P connect 4 1 5 0;
#P connect 8 0 7 0;
#P fasten 9 0 7 0 249 169 160 169;
#P fasten 4 0 13 0 160 144 66 144;
#P connect 4 0 8 0;
#P connect 10 0 4 0;
#P connect 2 0 10 0;
#P connect 6 0 2 0;
#P connect 14 0 13 1;
#P connect 7 0 11 1;
#P connect 5 0 11 1;
#P connect 13 0 1 1;
#P connect 11 0 3 0;
#P connect 1 0 11 0;
#P window clipboard copycount 15;


Chris Muir | "There are many futures and only one status quo.
cbm@well.com | This is why conservatives mostly agree,
http://www.xfade.com | and radicals always argue." – Brian Eno


November 28, 2007 | 7:40 pm

Thanks chris, but why have you not connected anything to cycle freq
input, and why is a phasor connected to cycle phase input?


November 28, 2007 | 8:24 pm

At 12:40 PM -0700 11/28/07, petterdass wrote:
>Thanks chris, but why have you not connected anything to cycle freq
>input, and why is a phasor connected to cycle phase input?

phasor~ is driving cycle~, so the frequency is applied to phasor~, and not cycle~.

I think I did it this way so that I could sync all the cycle~s together.

-C


Chris Muir | "There are many futures and only one status quo.
cbm@well.com | This is why conservatives mostly agree,
http://www.xfade.com | and radicals always argue." – Brian Eno


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