#N canvas 227 82 801 532 10; #X obj 509 7 loadbang; #X obj 509 36 i \$0; #X msg 573 8 \; pd-fx-insert.pd loadbang; #X obj 39 30 osc~ 440; #X floatatom 38 7 5 0 0 0 - - -; #X obj 270 480 dac~; #X floatatom 260 302 5 0 0 0 - - -; #X floatatom 403 299 5 0 0 0 - - -; #X obj 257 280 snapshot~; #X obj 399 279 snapshot~; #X obj 332 231 metro 100; #X obj 332 212 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1; #N canvas 0 0 770 542 dyn-audio 0; #X obj 26 124 inlet~; #X obj 26 308 *~; #X obj 39 276 line~; #X obj 85 275 line~; #X obj 71 305 *~; #X obj 72 123 inlet~; #X obj 377 315 *~; #X obj 391 271 line~; #X obj 435 269 line~; #X obj 423 312 *~; #X obj 190 3 r \$0-fx-insert; #X msg 80 405 set \$1-l; #X obj 190 118 spigot 1; #X obj 499 137 r \$0-fx-insert; #X obj 499 182 route fade; #X obj 98 230 r \$0-fx-insert; #X obj 97 251 route fade; #X obj 190 48 route set float; #X msg 141 405 set \$1-r; #X msg 310 396 set \$1-r; #X obj 190 140 t a b; #X obj 243 181 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 194 280 == 0; #X obj 277 277 == 1; #X obj 247 301 spigot; #X obj 159 304 spigot; #X obj 251 139 loadbang; #X msg 252 159 0; #X obj 84 207 == 0; #X obj 398 202 == 1; #X obj 190 97 symbol; #X msg 253 396 set \$1-l; #X obj 255 99 spigot; #X obj 190 71 unpack s f; #X obj 255 72 <= 0; #X obj 167 336 loadbang; #X obj 168 361 symbol \$0-fx-out; #X obj 71 457 throw~; #X obj 24 432 throw~; #X obj 421 450 throw~; #X obj 375 470 throw~; #X text 396 43 the pair of audio signal is alternating at each new connection to the FX chain with the help of the toggle button for having a crossfading between the new and the old connection.; #X connect 0 0 1 0; #X connect 0 0 6 0; #X connect 1 0 38 0; #X connect 2 0 1 1; #X connect 3 0 4 1; #X connect 4 0 37 0; #X connect 5 0 4 0; #X connect 5 0 9 0; #X connect 6 0 40 0; #X connect 7 0 6 1; #X connect 8 0 9 1; #X connect 9 0 39 0; #X connect 10 0 17 0; #X connect 11 0 38 0; #X connect 12 0 20 0; #X connect 13 0 14 0; #X connect 14 0 7 1; #X connect 14 0 8 1; #X connect 15 0 16 0; #X connect 16 0 3 1; #X connect 16 0 2 1; #X connect 17 0 33 0; #X connect 17 1 34 0; #X connect 18 0 37 0; #X connect 19 0 39 0; #X connect 20 0 25 0; #X connect 20 0 24 0; #X connect 20 1 21 0; #X connect 21 0 22 0; #X connect 21 0 23 0; #X connect 21 0 28 0; #X connect 21 0 29 0; #X connect 22 0 25 1; #X connect 23 0 24 1; #X connect 24 0 19 0; #X connect 24 0 31 0; #X connect 25 0 11 0; #X connect 25 0 18 0; #X connect 26 0 27 0; #X connect 27 0 21 0; #X connect 28 0 2 0; #X connect 28 0 3 0; #X connect 29 0 7 0; #X connect 29 0 8 0; #X connect 30 0 12 0; #X connect 31 0 40 0; #X connect 32 0 34 1; #X connect 33 0 30 0; #X connect 33 1 32 0; #X connect 34 0 12 1; #X connect 34 0 32 1; #X connect 35 0 36 0; #X connect 36 0 11 0; #X connect 36 0 18 0; #X connect 36 0 31 0; #X connect 36 0 19 0; #X restore 20 137 pd dyn-audio; #X msg 332 191 1; #X obj 235 256 catch~ \$0-fx-out-l; #X obj 389 257 catch~ \$0-fx-out-r; #X obj 123 -3 cnv 15 160 120 empty empty Add_an_Fx_in_the_chain 0 12 0 8 -260818 -66577 0; #X obj 289 -4 cnv 15 160 40 empty empty Place_in_the_FX_chain 0 6 0 8 -44926 -66577 0; #N canvas 0 0 793 499 dyn-create 0; #X obj 61 121 i \$0; #X obj 91 120 i 0; #X obj 116 120 + 1; #X obj 144 121 symbol; #X obj 62 21 r \$0-fx-insert; #X obj 61 69 t b b a; #X obj 96 227 s \$0-fx-insert; #X obj 126 45 loadbang; #X msg 126 72 0; #X msg 624 280 obj 200 100 s test; #X obj 635 358 s pd-$0-fx-array; #X msg 619 322 find 14-fx-1002 \, cut; #X obj 495 336 r \$0-fx-insert; #X obj 61 153 pack f f s; #X obj 61 45 route add; #X obj 482 434 litememory \$0; #X obj 482 387 i; #X obj 482 412 pack f s s; #X obj 495 360 route float add; #X obj 482 315 t b a; #X msg 96 206 set \$1-fx-$2; #X msg 482 266 \$1-fx-$2; #X msg 417 411 clear; #X obj 418 387 loadbang; #X obj 483 463 print; #X obj 482 288 symbol; #X msg 34 355 \; pd-$1-fx-array obj 100 100 pd \$1-fx-$2 \; pd-$1-fx-$2 obj 100 100 \$3 \$1 \, obj 100 10 catch~ \$1-fx-$2-l \, obj 150 10 catch~ \$1-fx-$2-r \, obj 100 200 throw~ \$1-fx-out-l \, obj 150 200 throw~ \$1-fx-out-r \, connect 1 0 0 0 \, connect 2 0 0 1 \, connect 0 0 3 0 \, connect 0 1 4 0 \, vis 0 \, loadbang \;; #N canvas 0 0 534 384 memory 0; #X text 235 32 this is the memory; #X obj 105 32 r \$0-msg-in; #X obj 102 120 s \$0-msg-out; #X msg 107 73; #X connect 1 0 3 0; #X connect 3 0 2 0; #X restore 573 434 pd memory array; #X text 223 37 a sub array is created first into the main array \, then it's possible to find and cut it with using a $a argument. Inside the sub array the send/receive audio signal is created and connected to the created FX abstraction; #X text 556 235 not finished yet; #X connect 0 0 13 0; #X connect 1 0 2 0; #X connect 1 0 13 1; #X connect 2 0 1 1; #X connect 3 0 13 2; #X connect 4 0 14 0; #X connect 5 0 0 0; #X connect 5 1 1 0; #X connect 5 2 3 0; #X connect 7 0 8 0; #X connect 8 0 1 1; #X connect 9 0 10 0; #X connect 11 0 10 0; #X connect 12 0 18 0; #X connect 13 0 26 0; #X connect 13 0 20 0; #X connect 13 0 21 0; #X connect 14 0 5 0; #X connect 15 0 24 0; #X connect 16 0 17 0; #X connect 17 0 15 0; #X connect 18 0 16 1; #X connect 18 1 17 2; #X connect 19 0 16 0; #X connect 19 1 17 1; #X connect 20 0 6 0; #X connect 21 0 25 0; #X connect 22 0 15 0; #X connect 23 0 22 0; #X connect 25 0 19 0; #X restore 20 161 pd dyn-create; #X obj 332 169 loadbang; #X obj 255 143 s \$0-fx-insert; #X msg 172 96 add \$1; #X obj 171 72 symbol; #X floatatom 292 16 3 0 999 0 - - -; #X msg 224 25 cut; #X obj 299 41 cnv 15 180 80 empty empty Fading_during_FX_changing 0 6 0 8 -241291 -66577 0; #X msg 346 94 fade \$1; #X floatatom 352 68 5 0 0 1 milliseconds - -; #X text 593 -12 init the main patch; #X obj 500 163 cnv 15 120 40 empty empty FX_chain_is_here 0 6 0 8 -44926 -66577 0; #N canvas 0 1 630 479 1003-fx-array 0; #N canvas 0 0 454 304 1002-fx-0 0; #X obj 100 100 gain 1002; #X obj 100 10 catch~ 1002-fx-0-l; #X obj 150 10 catch~ 1002-fx-0-r; #X obj 100 200 throw~ 1002-fx-out-l; #X obj 150 200 throw~ 1002-fx-out-r; #X connect 0 0 3 0; #X connect 0 1 4 0; #X connect 1 0 0 0; #X connect 2 0 0 1; #X restore 100 100 pd 1002-fx-0; #N canvas 0 0 450 300 1002-fx-1 0; #X obj 100 100 gain 1002; #X obj 100 10 catch~ 1002-fx-1-l; #X obj 150 10 catch~ 1002-fx-1-r; #X obj 100 200 throw~ 1002-fx-out-l; #X obj 150 200 throw~ 1002-fx-out-r; #X connect 0 0 3 0; #X connect 0 1 4 0; #X connect 1 0 0 0; #X connect 2 0 0 1; #X restore 100 100 pd 1002-fx-1; #X restore 516 180 pd \$0-fx-array; #X msg 276 391 \$1 100; #X obj 312 457 *~; #X obj 242 455 *~; #X obj 276 413 line~; #X obj 259 345 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 276 369 * 1; #X obj 320 320 vsl 15 70 0.01 1 1 1 empty empty empty 0 -8 0 8 -262144 -1 -1 2000 1; #X msg 505 56 \; pd-$1-fx-array clear \; \$1-fx-insert 0 \; \$1-fx-insert fade 3000 \; pd dsp 1 \;; #X obj 282 343 t b a; #X obj 29 286 s \$0-gain; #X obj 38 196 vsl 15 70 0.01 1 1 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X msg 132 23 fx/gain; #X connect 0 0 1 0; #X connect 1 0 38 0; #X connect 3 0 12 0; #X connect 3 0 12 1; #X connect 4 0 3 0; #X connect 8 0 6 0; #X connect 9 0 7 0; #X connect 10 0 8 0; #X connect 10 0 9 0; #X connect 11 0 10 0; #X connect 13 0 11 0; #X connect 14 0 8 0; #X connect 14 0 33 0; #X connect 15 0 9 0; #X connect 15 0 32 0; #X connect 19 0 13 0; #X connect 21 0 20 0; #X connect 22 0 21 0; #X connect 23 0 20 0; #X connect 24 0 20 0; #X connect 26 0 20 0; #X connect 27 0 26 0; #X connect 31 0 34 0; #X connect 32 0 5 1; #X connect 33 0 5 0; #X connect 34 0 32 1; #X connect 34 0 33 1; #X connect 35 0 36 0; #X connect 36 0 31 0; #X connect 37 0 39 0; #X connect 39 0 36 0; #X connect 39 1 36 1; #X connect 41 0 40 0; #X connect 42 0 22 0;