#N canvas 446 23 560 557 10;
#X obj 4 526 cnv 15 552 21 empty empty empty 20 12 0 14 #e0e0e0 #202020 0;
#X obj 5 304 cnv 3 550 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 4 461 cnv 3 550 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 4 493 cnv 3 550 3 empty empty arguments 8 12 0 13 #dcdcdc #000000 0;
#X obj 99 310 cnv 17 3 100 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 98 470 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 98 415 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 175 470 signal;
#X text 163 503 1) float;
#X obj 98 438 cnv 17 3 17 empty empty 2 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 175 437 signal;
#X text 175 414 signal;
#X text 175 311 signal;
#X obj 222 217 cyclone/cartopol~;
#X text 109 328 rampsmooth <f \, f>;
#X text 229 328 - linear ramp mode \, values are <up \, down> time, f 52;
#X text 139 345 slide <f \, f>;
#X text 229 345 - logarithmic ramp mode \, values are <up \, down> time, f 52;
#X text 115 362 deltaclip <f \, f>;
#X text 181 378 clear;
#X text 139 394 size <float>;
#N canvas 187 49 205 212 graph 0;
#X obj 61 96 tgl 15 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000 0 1;
#X obj 61 75 loadbang;
#X obj 43 31 inlet~;
#X obj 43 139 tabwrite~ \$0-vectral;
#X obj 61 116 metro 5;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 4 0 3 0;
#X restore 105 277 pd graph;
#X obj 222 190 rfft~, f 8;
#X obj 351 162 cnv 15 198 98 empty empty empty 20 12 0 14 #e0e0e0 #404040 0;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-vectral 256 float 0;
#X coords 0 32 255 -1 200 100 1 0 0;
#X restore 350 161 graph;
#X obj 105 249 cyclone/vectral~ 256;
#X obj 32 149 nbx 3 14 0 100 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 119 149 nbx 3 14 0 100 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 32 172 cyclone/pak f f;
#X msg 32 207 slide \$1 \$2;
#X text 70 148 up;
#X text 162 148 down;
#N canvas 573 129 793 488 more 0;
#X obj 485 175 cyclone/pak deltaclip f f;
#X obj 517 229 cyclone/pak rampsmooth f f;
#X obj 537 286 cyclone/pak slide f f;
#X obj 189 100 cyclone/rampsmooth~;
#X obj 219 131 cyclone/slide~;
#X obj 196 70 cyclone/deltaclip~;
#X text 29 14 The [vectral~] object operates in 3 modes \, which can be better understood if you already know how these three objects work:;
#X text 28 178 All of the three objects above can be used to smoothen (or "filter" \, cause it's also a kind of low pass filtering) signal changes. But hink now that the changes happen between frames rather than between samples.;
#X obj 195 290 cyclone/framedelta~;
#X obj 195 323 cyclone/frameaccum~;
#X text 414 73 - rampsmooth: linear ramp \; - deltaclip: also provides a linear ramp \, but the parameter sets a minimum step change isntead of a target time \; - slide: logarithmic ramp \;;
#X text 411 12 By default \, [vector~] just bypasses the input signal with no filtering. So you need to set the mode of operation and values in order for it to act. The last received message sets the current mode of operation. The modes are:;
#X obj 485 325 cyclone/vectral~;
#X text 225 391 The left and middle inlet are for output/input index sync \, and they need to be from 0 to block size - 1! If the range of the sync signal input index is different than the output index \, the incoming vector will be "bin-shifted" by the difference between the two signals.;
#X text 223 367 ============================================================;
#X obj 558 152 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 632 152 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X text 596 151 up;
#X text 670 152 down;
#X obj 593 202 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 670 202 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X text 631 201 up;
#X text 708 202 down;
#X obj 598 260 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 660 260 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X text 636 259 up;
#X text 698 260 down;
#X text 31 249 Other objects in cyclone that perform operations on frames in a similar way are:;
#X connect 0 0 12 0;
#X connect 1 0 12 0;
#X connect 2 0 12 0;
#X connect 15 0 0 1;
#X connect 16 0 0 2;
#X connect 19 0 1 1;
#X connect 20 0 1 2;
#X connect 23 0 2 1;
#X connect 24 0 2 2;
#X restore 452 275 pd more details;
#X obj 249 249 block~ 512;
#X text 229 378 - sets the last frame values to "0", f 52;
#X obj 122 207 cyclone/count~ 0 256 1, f 14;
#X obj 222 161 noise~;
#X text 229 470 - smoothened/filtered block/vector signal, f 52;
#X text 229 503 - vector/block size (default 512 \, minimum 64), f 52;
#X text 229 414 - input index of the vector/block being processed, f 52;
#X text 229 437 - the signal vector/block to smooth/filter, f 52;
#X text 229 362 - change limited mode \, values are <up \, down> limit, f 52;
#X text 229 394 - sets the vector/block size, f 52;
#X text 229 311 - output index of the processed vector/block, f 52;
#X text 71 87 [vectral~] is useful for smoothening/filtering frame based signal data such as the output of [fft~] \, mostly for viewing purposes.;
#X obj 499 69 cyclone/dsponoff~;
#X obj 2 2 ./header vectral~;
#X text 22 61 Smooth/filter frame changes;
#X connect 13 0 25 2;
#X connect 22 0 13 0;
#X connect 22 1 13 1;
#X connect 25 0 21 0;
#X connect 26 0 28 0;
#X connect 27 0 28 1;
#X connect 28 0 29 0;
#X connect 29 0 25 0;
#X connect 35 0 25 0;
#X connect 35 0 25 1;
#X connect 36 0 22 0;
