diff --git a/help/fluid.ampfeature~-help.pd b/help/fluid.ampfeature~-help.pd index 9f0dd31..9026888 100644 --- a/help/fluid.ampfeature~-help.pd +++ b/help/fluid.ampfeature~-help.pd @@ -1,14 +1,13 @@ #N canvas 51 50 692 774 12; #X obj 17 13 cnv 15 660 42 empty empty fluid.ampfeature~ 1 22 0 36 #4ba3fb #ffffff 0; -#X obj 23 141 fluid.demosound~; +#X obj 23 142 fluid.demosound~; #X obj 509 60 fluid.referencelauncher fluid.ampfeature~.html reference/ampfeature/ ; #X obj 17 60 cnv 15 488 17 empty empty Realtime\\\ Amplitude\\\ Differential\\\ Feature 4 8 0 13 #e0e0e0 #404040 0; #X text 17 79 Calculate the amplitude differential feature used by fluid.ampslice~, f 68; -#X text 22 121 1) Select a source., f 66; #X obj 214 537 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; #X obj 214 512 loadbang; @@ -67,7 +66,6 @@ fluid.ampslice~, f 68; #X connect 26 0 16 0; #X coords 0 -1 1 1 162 90 2 100 100; #X restore 208 262 pd parameters; -#X text 328 393 <-- more parameters; #N canvas 492 171 717 633 parameters 0; #X obj 29 577 r \$0-params; #X obj 29 600 outlet; @@ -121,14 +119,23 @@ take to reach the next value when raising., f 30; #X connect 22 0 18 0; #X connect 24 0 2 0; #X restore 225 392 pd parameters; -#X connect 1 0 9 0; -#X connect 1 0 10 0; +#X obj 24 121 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 94 626 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 328 395 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 94 626 2) audio on!; +#X text 22 121 1) Select a source., f 66; +#X text 328 393 <-- more parameters; #X connect 1 0 8 0; -#X connect 6 0 13 0; -#X connect 7 0 6 0; -#X connect 9 0 8 1; -#X connect 10 0 12 0; -#X connect 13 0 12 0; +#X connect 1 0 9 0; +#X connect 1 0 7 0; +#X connect 5 0 12 0; +#X connect 6 0 5 0; +#X connect 8 0 7 1; +#X connect 9 0 11 0; +#X connect 12 0 11 0; +#X connect 13 0 8 0; +#X connect 13 0 9 0; #X connect 14 0 9 0; -#X connect 14 0 10 0; -#X connect 16 0 10 0; diff --git a/help/fluid.ampgate~-help.pd b/help/fluid.ampgate~-help.pd index b70f9eb..8e9f359 100644 --- a/help/fluid.ampgate~-help.pd +++ b/help/fluid.ampgate~-help.pd @@ -6,7 +6,6 @@ ; #X obj 17 60 cnv 15 488 17 empty empty Gate\\\ Detection\\\ on\\\ a\\\ Signal 4 8 0 13 #e0e0e0 #404040 0; -#X text 22 121 1) Select a source., f 66; #X obj 499 863 cnv 15 178 45 empty empty More\\\ information 4 10 0 13 #e0e0e0 #404040 0; #N canvas 368 121 964 821 looking_ahead_or_back 0; @@ -44,11 +43,6 @@ control; -offthreshold -12; #X obj 327 563 fexpr~ $x1[0]-$x1[-1]; #X text 336 544 delta~; -#X obj 564 541 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 -#000000 0 1; -#X obj 564 561 * 0.2; -#X obj 327 692 *~; -#X obj 415 692 *~; #X obj 327 632 expr~ if($v1==1 \, 1 \, 0), f 10; #X obj 415 632 expr~ if($v1==-1 \, 1 \, 0), f 11; #X msg 327 214 reset \, minlengthabove 441 \, getlatency; @@ -90,30 +84,35 @@ control; #X coords 0 -1 1 1 196 51 2 100 100; #X restore 69 517 pd scope; #X obj 702 539 s \$0-latency2; +#X obj 397 740 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 397 738 1) switch audio on; +#X obj 327 692 *~ 0.2; +#X obj 415 692 *~ 0.2; +#X obj 619 185 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 619 183 2) explore various settings; #X connect 3 0 5 0; #X connect 4 0 7 1; #X connect 5 0 7 0; #X connect 7 0 8 0; #X connect 7 0 9 0; -#X connect 8 0 30 0; +#X connect 8 0 26 0; #X connect 9 0 10 0; -#X connect 9 0 29 0; -#X connect 9 1 28 0; -#X connect 10 0 16 0; -#X connect 10 0 17 0; -#X connect 12 0 13 0; -#X connect 13 0 15 1; -#X connect 13 0 14 1; -#X connect 14 0 0 0; -#X connect 15 0 0 1; -#X connect 16 0 14 0; -#X connect 17 0 15 0; +#X connect 9 0 25 0; +#X connect 9 1 24 0; +#X connect 10 0 12 0; +#X connect 10 0 13 0; +#X connect 12 0 30 0; +#X connect 13 0 31 0; +#X connect 14 0 9 0; +#X connect 15 0 9 0; +#X connect 16 0 9 0; +#X connect 17 0 9 0; #X connect 18 0 9 0; -#X connect 19 0 9 0; -#X connect 20 0 9 0; -#X connect 21 0 9 0; -#X connect 22 0 9 0; -#X connect 28 0 31 0; +#X connect 24 0 27 0; +#X connect 30 0 0 0; +#X connect 31 0 0 1; #X restore 502 883 pd looking_ahead_or_back; #X obj 196 676 vradio 15 1 0 2 empty empty empty 0 -8 0 10 #fcfcfc #000000 #000000 0; @@ -297,18 +296,27 @@ an offset, f 45; #X coords 0 -1 1 1 170 129 2 100 100; #X restore 96 260 pd parameters; #X obj 378 592 s \$0-latency; -#X connect 1 0 11 0; -#X connect 1 0 17 0; -#X connect 7 0 19 0; -#X connect 11 0 16 0; -#X connect 11 1 15 0; -#X connect 12 0 13 0; -#X connect 13 0 11 0; -#X connect 14 0 10 0; -#X connect 15 0 25 0; -#X connect 16 0 14 0; -#X connect 17 0 10 1; -#X connect 18 0 7 0; -#X connect 19 0 14 1; -#X connect 23 0 11 0; -#X connect 24 0 11 0; +#X obj 96 890 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 96 889 2) switch audio on; +#X obj 279 684 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 279 683 3) switch; +#X obj 21 121 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 22 121 1) Select a source., f 66; +#X connect 1 0 10 0; +#X connect 1 0 16 0; +#X connect 6 0 18 0; +#X connect 10 0 15 0; +#X connect 10 1 14 0; +#X connect 11 0 12 0; +#X connect 12 0 10 0; +#X connect 13 0 9 0; +#X connect 14 0 24 0; +#X connect 15 0 13 0; +#X connect 16 0 9 1; +#X connect 17 0 6 0; +#X connect 18 0 13 1; +#X connect 22 0 10 0; +#X connect 23 0 10 0; diff --git a/help/fluid.ampslice~-help.pd b/help/fluid.ampslice~-help.pd index a7480d6..98b3aca 100644 --- a/help/fluid.ampslice~-help.pd +++ b/help/fluid.ampslice~-help.pd @@ -9,7 +9,6 @@ various customisable options and conditions to detect relative amplitude changes as onsets., f 64; #X obj 20 179 fluid.demosound~; -#X text 19 159 1) Select a source., f 66; #X obj 119 382 fluid.ampslice~ -slowrampup 4410 -slowrampdown 4410 -fastrampup 10 -fastrampdown 10 -onthreshold 9 -offthreshold 6 -minslicelength 4410 -highpassfreq 20 -floor -40, f 38; @@ -94,6 +93,12 @@ samples \, or about 100 ms.; #X obj 27 750 fluid.out~ ampslicehelp; #X msg 268 444 fastrampup 10 \, fastrampdown 50 \, slowrampup 500 \, slowrampdown 500, f 47; +#X obj 97 754 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 98 753 1) switch audio on; +#X obj 250 291 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 250 290 2) compare various presets; #X connect 3 0 14 0; #X connect 4 0 9 0; #X connect 5 0 11 0; @@ -134,25 +139,34 @@ slowrampdown 500, f 47; #X obj 141 522 bng 15 250 50 0 empty empty empty 17 7 0 10 #ffe3c6 #000000 #000000; #X obj 141 491 threshold~ 0.5 1 0.1 1; -#X connect 4 0 10 0; -#X connect 4 0 6 0; -#X connect 6 0 18 0; -#X connect 6 0 31 0; -#X connect 6 1 8 0; -#X connect 7 0 6 0; -#X connect 8 0 14 0; -#X connect 9 0 16 0; -#X connect 11 0 13 1; -#X connect 12 0 11 0; -#X connect 13 0 20 0; -#X connect 14 0 13 0; -#X connect 15 0 7 0; -#X connect 16 0 26 0; -#X connect 17 0 16 1; -#X connect 18 0 26 1; -#X connect 19 0 18 1; -#X connect 20 0 9 0; -#X connect 21 0 16 1; -#X connect 27 0 28 0; -#X connect 28 0 26 2; -#X connect 31 0 30 0; +#X obj 19 159 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 99 836 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 99 835 2) switch audio on; +#X obj 160 750 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 160 749 3) select what to listen to; +#X text 20 157 1) Select a source., f 66; +#X connect 4 0 9 0; +#X connect 4 0 5 0; +#X connect 5 0 17 0; +#X connect 5 0 30 0; +#X connect 5 1 7 0; +#X connect 6 0 5 0; +#X connect 7 0 13 0; +#X connect 8 0 15 0; +#X connect 10 0 12 1; +#X connect 11 0 10 0; +#X connect 12 0 19 0; +#X connect 13 0 12 0; +#X connect 14 0 6 0; +#X connect 15 0 25 0; +#X connect 16 0 15 1; +#X connect 17 0 25 1; +#X connect 18 0 17 1; +#X connect 19 0 8 0; +#X connect 20 0 15 1; +#X connect 26 0 27 0; +#X connect 27 0 25 2; +#X connect 30 0 29 0; diff --git a/help/fluid.audiotransport~-help.pd b/help/fluid.audiotransport~-help.pd index 8adf318..7946fbd 100644 --- a/help/fluid.audiotransport~-help.pd +++ b/help/fluid.audiotransport~-help.pd @@ -1,4 +1,4 @@ -#N canvas 282 252 695 776 12; +#N canvas 112 45 695 776 12; #X msg 268 516 interpolation \$1; #X obj 17 13 cnv 15 660 42 empty empty fluid.audiotransport~ 1 22 0 36 #4ba3fb #ffffff 0; @@ -16,8 +16,6 @@ optimal transport.; 1024 64 8192, f 31; #X obj 271 471 hsl 200 35 0 1 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1; -#X text 20 147 1) load sounds in both players; -#X text 304 446 interpolate between the two different sounds; #X obj 532 690 cnv 15 145 50 empty empty More\\\ information 4 10 0 13 #e0e0e0 #404040 0; #N canvas 693 102 692 820 more_info 0; @@ -34,44 +32,60 @@ optimal transport.; 1024 64 8192, f 32; #X obj 32 505 hsl 200 35 0 1 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1; -#X text 20 147 1) load sounds in both players; #X msg 260 477 fftsettings 256 16 256; #X msg 260 499 fftsettings 1024 16 1024; #X msg 260 521 fftsettings 1024 -1 -1; #X msg 260 543 fftsettings 2048 -1 -1; #X msg 260 565 fftsettings 4096 -1 -1; #X msg 260 587 fftsettings 16384 -1 -1; -#X text 256 430 Try these different fftsettings to see how they affect -the results of the audiotransport~ algorithm.; #X text 256 622 The larger the fft size the better it blends the spectral qualities at the expense of smearing attacks. This will have a drastic impact on the characteristic of the interpolation.; #X obj 21 741 fluid.out~ audiotransporthelp; +#X obj 20 148 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 91 745 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 257 433 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 90 744 2) switch audio on; +#X text 20 147 1) load sounds in both players; +#X text 256 430 3) Try these different fftsettings to see how they +affect the results of the audiotransport~ algorithm.; #X connect 0 0 7 0; #X connect 3 0 7 0; #X connect 4 0 5 0; #X connect 5 0 8 0; #X connect 6 0 7 1; -#X connect 7 0 18 0; -#X connect 7 0 18 1; +#X connect 7 0 16 0; +#X connect 7 0 16 1; #X connect 8 0 0 0; +#X connect 9 0 7 0; #X connect 10 0 7 0; #X connect 11 0 7 0; #X connect 12 0 7 0; #X connect 13 0 7 0; #X connect 14 0 7 0; -#X connect 15 0 7 0; #X restore 574 713 pd more_info; #X obj 21 739 fluid.out~ audiotransporthelp; #X obj 79 693 loadbang; #X msg 79 715 1; +#X obj 20 149 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 93 744 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 20 148 1) load sounds in both players; +#X text 93 743 2) switch audio on; +#X obj 291 448 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 291 447 3) interpolate between the two different sounds; #X connect 0 0 9 0; #X connect 5 0 9 0; #X connect 6 0 7 0; #X connect 7 0 10 0; #X connect 8 0 9 1; -#X connect 9 0 15 1; -#X connect 9 0 15 0; +#X connect 9 0 13 1; +#X connect 9 0 13 0; #X connect 10 0 0 0; -#X connect 16 0 17 0; -#X connect 17 0 15 2; +#X connect 14 0 15 0; +#X connect 15 0 13 2; diff --git a/help/fluid.bufampgate-help.pd b/help/fluid.bufampgate-help.pd index df4a6cc..ce6aa1d 100644 --- a/help/fluid.bufampgate-help.pd +++ b/help/fluid.bufampgate-help.pd @@ -75,7 +75,6 @@ of off stats of the gate., f 24; #X obj 467 367 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; #X text 541 501 3) Audio on, f 17; -#X text 468 367 3) Play back onset/offset pairs, f 18; #X text 19 161 1) Select a source; #X text 39 276 2) Slice the source; #X obj 18 485 clone 2 fluid.multiarray help.ampgate.indices.1, f 28 @@ -339,6 +338,7 @@ offthreshold \, else ignore; #X connect 17 0 9 0; #X connect 22 0 5 0; #X restore 457 658 pd looking_ahead_and_back; +#X text 468 367 4) Play back onset/offset pairs, f 18; #X connect 5 0 4 0; #X connect 7 0 8 0; #X connect 8 0 9 0; diff --git a/help/fluid.bufchroma-help.pd b/help/fluid.bufchroma-help.pd index c1dd8cd..6eccd66 100644 --- a/help/fluid.bufchroma-help.pd +++ b/help/fluid.bufchroma-help.pd @@ -115,9 +115,6 @@ empty -2 -8 0 10 #fcfcfc #49a3fa #000000 0 1; #X obj 467 584 note_on_sampling_rates; #X obj 467 607 note_on_multithreading; #X obj 467 562 note_on_multiarrays; -#X text 17 141 1) Pick a source. Piano works well with this example. -; -#X text 503 220 2) Listen to the source; #X text 116 353 3) Open this subpatch to see the results. Each "channel" will contain a single pitch class. Each frame of each channel describes the strength of that pitch class in a single FFT analysis window., @@ -353,6 +350,9 @@ amplitudes in each time frame will be 1, f 85; bufchroma_feats2, f 72; #X obj 23 461 fluid.bufchroma 19 -source bufchroma_in -features bufchroma_feats2 -normalize 1, f 93; +#X obj 59 390 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 57 389 1) explore a few different number of chroma bins; #X connect 6 0 8 0; #X connect 7 0 6 0; #X connect 8 0 12 0; @@ -362,6 +362,16 @@ bufchroma_feats2, f 72; #X text 97 308 'buffer ' message when done; #X obj 467 631 note_on_automatic_multiarrays; #X obj 19 564 fluid.out~; +#X obj 18 143 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 19 596 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 21 595 2) start audio; +#X obj 505 221 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 17 141 1) Pick a source. Piano works well with this example. +; +#X text 503 220 3) Listen to the source; #X connect 0 0 1 0; #X connect 1 0 14 0; #X connect 3 0 12 0; @@ -372,20 +382,20 @@ bufchroma_feats2, f 72; #X connect 12 0 2 1; #X connect 14 0 13 0; #X connect 15 0 16 0; -#X connect 16 0 49 0; -#X connect 36 0 24 0; -#X connect 36 1 25 0; -#X connect 36 2 26 0; -#X connect 36 3 27 0; -#X connect 36 4 28 0; -#X connect 36 5 29 0; -#X connect 36 6 30 0; -#X connect 36 7 31 0; -#X connect 36 8 32 0; -#X connect 36 9 33 0; -#X connect 36 10 34 0; -#X connect 36 11 35 0; -#X connect 49 0 36 0; -#X connect 49 0 50 0; -#X connect 50 0 54 1; -#X connect 50 0 54 0; +#X connect 16 0 47 0; +#X connect 34 0 22 0; +#X connect 34 1 23 0; +#X connect 34 2 24 0; +#X connect 34 3 25 0; +#X connect 34 4 26 0; +#X connect 34 5 27 0; +#X connect 34 6 28 0; +#X connect 34 7 29 0; +#X connect 34 8 30 0; +#X connect 34 9 31 0; +#X connect 34 10 32 0; +#X connect 34 11 33 0; +#X connect 47 0 34 0; +#X connect 47 0 48 0; +#X connect 48 0 52 1; +#X connect 48 0 52 0; diff --git a/help/fluid.bufcompose-help.pd b/help/fluid.bufcompose-help.pd index c62b5c4..d39cebe 100644 --- a/help/fluid.bufcompose-help.pd +++ b/help/fluid.bufcompose-help.pd @@ -19,8 +19,8 @@ It can be used for thing like mixing down multichannel buffers \, or converting from left-right stereo to mid-side. It is used extensively in the example code of Fluid Decomposition.; #X obj 100 837 fluid.out~ bufcompose-help; -#X obj 458 714 cnv 15 217 153 {empty} {empty} {More\ information} 4 -10 0 13 #e0e0e0 #404040 0; +#X obj 458 714 cnv 15 217 153 {empty} {empty} {More\\\ information} +4 10 0 13 #e0e0e0 #404040 0; #N canvas 107 78 690 871 mixing 0; #X msg 18 429 destgain \$1; #X floatatom 18 399 5 0 0 0 - - - 0; @@ -30,8 +30,6 @@ in the example code of Fluid Decomposition.; #X text 16 89 by default \, new content overwrites what is in the destination buffer. By using the destgain attribute \, you can choose how much old stuff gets mixed with new stuff, f 82; -#X text 15 343 1) try different gains; -#X text 192 343 2) clear the destination; #X obj 17 13 cnv 15 660 42 empty empty fluid.bufcompose 1 22 0 36 #4ba3fb #ffffff 0; #X obj 17 60 cnv 15 488 17 empty empty Use\\\ the\\\ destgain\\\ parameter\\\ to\\\ mix\\\ into\\\ the\\\ destination\\\ buffer @@ -43,7 +41,7 @@ old stuff gets mixed with new stuff, f 82; #X array bufcompose_dst2 2.51861e+06 float 2; #X coords 0 1 2.51861e+06 -1 200 140 1 0 0; #X restore 477 539 graph; -#X msg 289 722 stop; +#X msg 243 738 stop; #X obj 217 803 fluid.out~ bufcompose-help; #X obj 442 219 array define bufcompose_help_src2; #X obj 442 241 array define bufcompose_help_src3; @@ -54,51 +52,54 @@ bufcompose_help_src2, f 74; #X msg 18 175 read -resize media/Tremblay-SlideChoirAdd-M.wav bufcompose_help_src3 , f 74; #X msg 193 365 \; bufcompose_dst2 const 0, f 27; -#X msg 194 429 source bufcompose_help_src2 \, destination bufcompose_dst2 +#X msg 194 450 source bufcompose_help_src2 \, destination bufcompose_dst2 \, bang \, source bufcompose_help_src3 \, bang; #X msg 167 654 set bufcompose_help_src2 \, bang; #X msg 167 677 set bufcompose_help_src3 \, bang; #X msg 202 700 set bufcompose_dst2 \, bang; #X obj 217 767 tabplay~; -#X text 16 639 play source1, f 13; -#X text 16 661 play source2, f 13; -#X text 15 684 play mixture, f 13; -#X obj 132 639 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X obj 132 662 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X obj 132 685 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; +#X text 65 657 play source1, f 13; +#X text 65 679 play source2, f 13; +#X text 64 702 play mixture, f 13; #X text 57 596 done; -#X connect 0 0 10 0; +#X obj 15 345 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 192 344 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 290 807 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 288 806 4) Audio on; +#X obj 197 429 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 195 428 3) trigger the process; +#X text 15 343 1) try different gains; +#X text 192 343 2) clear the destination; +#X obj 113 633 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 110 632 5) play the various arrays; +#X connect 0 0 8 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 1 0; #X connect 4 0 1 0; -#X connect 10 0 11 0; -#X connect 13 0 26 0; -#X connect 18 0 19 0; -#X connect 18 0 20 0; -#X connect 19 0 17 0; -#X connect 20 0 17 0; -#X connect 21 0 10 0; -#X connect 22 0 10 0; -#X connect 23 0 26 0; -#X connect 24 0 26 0; -#X connect 25 0 26 0; -#X connect 26 0 14 0; -#X connect 26 0 14 1; -#X connect 30 0 23 0; -#X connect 31 0 24 0; -#X connect 32 0 25 0; +#X connect 8 0 9 0; +#X connect 11 0 24 0; +#X connect 16 0 17 0; +#X connect 16 0 18 0; +#X connect 17 0 15 0; +#X connect 18 0 15 0; +#X connect 19 0 8 0; +#X connect 20 0 8 0; +#X connect 21 0 24 0; +#X connect 22 0 24 0; +#X connect 23 0 24 0; +#X connect 24 0 12 0; +#X connect 24 0 12 1; #X restore 464 735 pd mixing; #N canvas 188 135 699 900 subsections 0; #X text 16 103 the attributes startframe \, numframes \, startchan \, numchans \, deststartframe \, and deststartchan give you fine control over which portion of the source you copy and where it is placed; -#X text 13 402 2) overlay a brief burst of the first source \, with -1" of the second \, read from an offset of 30k samples; -#X text 15 330 1) clear the destination; #X obj 17 13 cnv 15 660 42 empty empty fluid.bufcompose 1 22 0 36 #4ba3fb #ffffff 0; #X obj 17 60 cnv 15 488 17 empty empty Copy\\\ only\\\ a\\\ section\\\ of\\\ the\\\ source\\\ control\\\ its\\\ placement @@ -122,37 +123,41 @@ bufcompose_help_src6, f 74; #X obj 18 496 fluid.bufcompose; #X obj 39 527 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X msg 348 722 stop; +#X msg 249 741 stop; #X obj 197 813 fluid.out~ bufcompose-help; -#X text 16 639 play source1, f 13; -#X text 16 661 play source2, f 13; -#X text 15 684 play mixture, f 13; +#X text 63 652 play source1, f 13; +#X text 63 674 play source2, f 13; +#X text 62 697 play mixture, f 13; #X msg 166 654 set bufcompose_help_src5 \, bang; #X msg 166 677 set bufcompose_help_src6 \, bang; #X msg 201 700 set bufcompose_dst3 \, bang; #X obj 197 777 tabplay~; -#X obj 132 639 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X obj 132 662 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X obj 132 685 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; #X text 57 527 done; -#X connect 9 0 10 0; -#X connect 9 0 11 0; -#X connect 10 0 8 0; -#X connect 11 0 8 0; -#X connect 13 0 14 0; -#X connect 14 0 15 0; -#X connect 16 0 24 0; -#X connect 21 0 24 0; -#X connect 22 0 24 0; -#X connect 23 0 24 0; -#X connect 24 0 17 0; -#X connect 24 0 17 1; -#X connect 25 0 21 0; -#X connect 26 0 22 0; -#X connect 27 0 23 0; +#X obj 269 819 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 160 628 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 267 818 3) Audio on; +#X text 157 627 4) play the various arrays; +#X obj 13 402 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 15 331 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 13 402 2) overlay a brief burst of the first source \, with +1" of the second \, read from an offset of 30k samples; +#X text 15 330 1) clear the destination; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 14 0 22 0; +#X connect 19 0 22 0; +#X connect 20 0 22 0; +#X connect 21 0 22 0; +#X connect 22 0 15 0; +#X connect 22 0 15 1; #X restore 464 757 pd subsections; #N canvas 259 52 702 961 multichannel 0; #X obj 540 335 note_on_multiarrays; @@ -173,12 +178,12 @@ will be repeated; bufcompose_help_src7, f 79; #X msg 51 243 read -resize media/Tremblay-AaS-SynthTwoVoices-M.wav bufcompose_help_src8, f 74; -#X msg 29 532 source bufcompose_help_src8 \, gain 0.7 \, destgain 1 +#X msg 28 536 source bufcompose_help_src8 \, gain 0.7 \, destgain 1 \, deststartchan 0 \, numchans 2 \, bang, f 85; #X obj 358 358 clone fluid.multiarray 2 bufcompose_help_dst4; #X msg 16 508 reset \, source bufcompose_help_src7 \, destination bufcompose_help_dst4 \, bang, f 76; -#X msg 113 767 stop; +#X msg 114 792 stop; #X obj 300 874 fluid.out~ bufcompose-help; #X text 10 661 play source1, f 13; #X text 10 703 play source2, f 13; @@ -197,10 +202,22 @@ bufcompose_help_src8, f 74; #X msg 413 719 set bufcompose_help_src8 \, bang; #X msg 163 761 set bufcompose_help_dst4-0 \, bang; #X msg 413 761 set bufcompose_help_dst4-1 \, bang; -#X text 14 456 Here we make a stereo buffer from a stereo source \, -and then copy in a mono source with numchans = 2 \; it is then repeated -across each destination channel; #X text 37 588 done; +#X obj 374 881 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 166 649 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 372 880 3) Audio on; +#X text 163 648 4) play the various arrays; +#X obj 15 458 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 145 566 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 143 565 2) press this second message - it is only separated +for ease of reading; +#X text 14 456 1) Here we make a stereo buffer from a stereo source +\, and then copy in a mono source with numchans = 2 \; it is then repeated +across each destination channel; #X connect 3 0 4 0; #X connect 7 0 11 0; #X connect 10 0 6 0; @@ -245,12 +262,6 @@ destgain 1 \, bang; #X restore 16 425 pd example5a; #X obj 16 391 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 34 388 make a mono buffer \, with a quiet punch from the synth -\, with a choked piano resonance from the left channel; -#X text 150 440 make a stereo buffer \, with the end of the mono synth -in both channels \, with a piano resonance in swapped stereo; -#X text 261 488 make a stereo buffer: the first second of each buffer -\, the mono synth on the right \, the piano on the left; #X obj 131 443 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X obj 242 491 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc @@ -308,32 +319,48 @@ bufcompose_help_src9, f 74; #X msg 16 220 read -resize media/Tremblay-SA-UprightPianoPedalWide.wav bufcompose_help_src10-0 bufcompose_help_src10-1, f 79; #X text 34 569 done; -#X connect 1 0 12 0; +#X obj 164 749 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 95 658 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 162 748 1) Audio on; +#X obj 33 391 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 94 658 3) Listen to the destination; +#X obj 152 441 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 260 489 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 34 388 2) make a mono buffer \, with a quiet punch from the +synth \, with a choked piano resonance from the left channel; +#X text 150 440 4) make a stereo buffer \, with the end of the mono +synth in both channels \, with a piano resonance in swapped stereo +; +#X text 261 488 5) make a stereo buffer: the first second of each buffer +\, the mono synth on the right \, the piano on the left; +#X connect 1 0 9 0; #X connect 2 0 1 0; -#X connect 6 0 8 0; -#X connect 7 0 9 0; -#X connect 8 0 12 0; -#X connect 9 0 12 0; -#X connect 12 0 13 0; -#X connect 18 0 19 0; -#X connect 18 0 26 0; -#X connect 19 0 17 0; -#X connect 21 0 23 0; -#X connect 21 0 24 0; -#X connect 22 0 23 0; -#X connect 22 0 24 0; -#X connect 23 0 20 0; -#X connect 24 0 20 1; -#X connect 26 0 17 0; +#X connect 3 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 9 0; +#X connect 6 0 9 0; +#X connect 9 0 10 0; +#X connect 15 0 16 0; +#X connect 15 0 23 0; +#X connect 16 0 14 0; +#X connect 18 0 20 0; +#X connect 18 0 21 0; +#X connect 19 0 20 0; +#X connect 19 0 21 0; +#X connect 20 0 17 0; +#X connect 21 0 17 1; +#X connect 23 0 14 0; #X restore 464 801 pd more_examples; #X obj 416 267 array define bufcompose_help_src1; #X msg 18 207 read -resize media/Tremblay-AaS-SynthTwoVoices-M.wav bufcompose_help_src1, f 74; -#X msg 79 464 destination bufcompose_dst; -#X text 19 402 1); -#X text 49 465 2); -#X text 107 490 3); -#X obj 126 492 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X msg 78 493 destination bufcompose_dst; +#X obj 127 544 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X msg 21 422 source bufcompose_help_src1 \, gain 0.5; #N canvas 0 22 450 278 (subpatch) 0; @@ -342,18 +369,33 @@ bufcompose_help_src1, f 74; #X restore 465 452 graph; #X obj 100 781 tabplay~ bufcompose_dst-0; #X obj 464 823 note_on_multithreading; -#X text 144 490 process; +#X text 145 542 process; #X msg 468 616 \; bufcompose_dst-0 const 0; #X text 62 649 'buffer ' message when done; #X obj 23 646 print; #X obj 464 846 note_on_automatic_multiarrays; -#X connect 1 0 30 0; +#X obj 172 840 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 146 757 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 145 757 5) Listen to the source; +#X text 170 839 4) Audio on; +#X obj 20 404 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 77 474 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 108 545 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 108 542 3); +#X text 77 473 2) set a destination; +#X text 19 402 1) set a source and a gain; +#X connect 1 0 27 0; #X connect 2 0 17 0; -#X connect 3 0 25 0; -#X connect 4 0 25 0; +#X connect 3 0 22 0; +#X connect 4 0 22 0; #X connect 17 0 0 0; #X connect 18 0 1 0; -#X connect 22 0 1 0; -#X connect 23 0 1 0; -#X connect 25 0 10 0; -#X connect 25 0 10 1; +#X connect 19 0 1 0; +#X connect 20 0 1 0; +#X connect 22 0 10 0; +#X connect 22 0 10 1; diff --git a/help/fluid.bufflatten-help.pd b/help/fluid.bufflatten-help.pd index 825c7dd..96ecfa2 100644 --- a/help/fluid.bufflatten-help.pd +++ b/help/fluid.bufflatten-help.pd @@ -113,8 +113,8 @@ can be useful to structure an array to added to a DataSet.; #X restore 25 601 pd showresult; #X obj 25 575 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 471 732 cnv 15 213 68 empty empty More\ information 4 10 0 13 -#e0e0e0 #404040 0; +#X obj 471 732 cnv 15 213 68 empty empty More\\\ information 4 10 0 +13 #e0e0e0 #404040 0; #N canvas 172 77 725 956 real_use_case 0; #X obj 17 23 cnv 15 660 42 empty empty fluid.bufflatten 1 22 0 36 #4ba3fb #ffffff 0; @@ -181,7 +181,6 @@ as there are analysis windows, f 29; #X obj 37 709 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X text 57 706 store dataset into a text object; -#X text 244 788 <- double-click 'text' to see data, f 18; #X obj 37 734 fluid.ds2text help.chroma.stats help.bufflatten.text.1 , f 27; #X obj 42 788 text define help.bufflatten.text.1; @@ -192,6 +191,12 @@ frame is a statistical measurement of the chroma values, f 40; isolates the "mean" amplitude of each chroma., f 51; #X text 259 531 Flattens the 12 channels with a single frame in each \, to a single channel of 12 values., f 48; +#X obj 57 275 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 58 274 1) start the process; +#X obj 262 790 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 244 788 <- 2 double-click 'text' to see data, f 18; #X connect 2 0 4 0; #X connect 4 0 6 0; #X connect 6 0 12 0; @@ -199,7 +204,7 @@ isolates the "mean" amplitude of each chroma., f 51; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 15 0 18 0; -#X connect 18 0 21 0; +#X connect 18 0 20 0; #X restore 473 752 pd real_use_case; #X obj 45 162 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; @@ -221,6 +226,9 @@ samples, f 22; ; #X text 177 221 -> samples/frames; #X obj 472 777 note_on_automatic_multiarrays; +#X obj 395 471 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 396 470 3) change the axis and reprocess; #X connect 2 0 12 0; #X connect 3 0 11 0; #X connect 4 0 5 0; diff --git a/help/fluid.bufinfo-help.pd b/help/fluid.bufinfo-help.pd index e66253a..bd09437 100644 --- a/help/fluid.bufinfo-help.pd +++ b/help/fluid.bufinfo-help.pd @@ -14,8 +14,6 @@ generated 'buffers'., f 68; #X text 18 346 nbFrames / nbChannels; #X obj 250 378 array define bufinfo2 111; #X msg 31 238 buffer bufinfo2; -#X text 144 236 works on native arrays too...; -#X text 152 267 ... and on constructed stereo; #N canvas 0 22 450 278 (subpatch) 0; #X array bufinfo3-0 100 float 2; #X coords 0 1 100 -1 100 70 1 0 0; @@ -48,20 +46,25 @@ bufinfo_source, f 68; #X obj 20 271 fluid.bufmfcc 26 -source bufinfo_source; #X floatatom 122 222 5 0 0 0 - - - 0; #X msg 122 244 numcoeffs \$1; -#X text 262 223 load different files \, and change the number of coeffcients -; -#X obj 299 374 array get; +#X obj 293 380 array get; #X msg 359 317 symbol \$1-0; -#X obj 299 354 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 293 360 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X listbox 299 397 51 0 0 0 - - - 0; -#X text 298 419 retrieve a channel's content with native objects; +#X listbox 293 403 51 0 0 0 - - - 0; #X obj 29 469 note_on_automatic_multiarrays; +#X obj 229 219 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 228 218 1) load different files \, and change the number of +coeffcients, f 62; +#X obj 336 359 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 310 357 <-- 2) retrieve a channel's content with pd objects +; #X connect 3 0 4 0; #X connect 4 0 12 0; #X connect 5 0 6 0; #X connect 5 1 9 1; -#X connect 5 1 17 0; +#X connect 5 1 16 0; #X connect 6 0 9 0; #X connect 7 0 3 0; #X connect 9 0 10 0; @@ -69,13 +72,22 @@ bufinfo_source, f 68; #X connect 12 0 5 0; #X connect 13 0 14 0; #X connect 14 0 12 0; -#X connect 16 0 19 0; -#X connect 17 0 16 2; -#X connect 18 0 16 0; +#X connect 15 0 18 0; +#X connect 16 0 15 2; +#X connect 17 0 15 0; #X restore 498 207 pd auto_managed_buffers; #X obj 509 60 fluid.referencelauncher fluid.bufinfo.html reference/bufinfo/ ; +#X obj 23 179 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 24 179 1) try on a fluid.multiarray; +#X obj 149 238 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 157 268 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 150 236 2) works on native arrays too...c; +#X text 157 267 3) ... and on constructed stereo; #X connect 3 0 6 0; #X connect 5 0 3 0; #X connect 9 0 3 0; -#X connect 14 0 3 0; +#X connect 12 0 3 0; diff --git a/help/fluid.bufmelbands-help.pd b/help/fluid.bufmelbands-help.pd index f4c1ea2..cac5ac0 100644 --- a/help/fluid.bufmelbands-help.pd +++ b/help/fluid.bufmelbands-help.pd @@ -33,6 +33,9 @@ bands.; ; #X text 407 271 Because no -features are set \, an output buffer is automatically assigned for us that we can then visualise, f 44; +#X obj 19 146 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 21 145 1) Load a buffer; #X connect 2 0 6 0; #X connect 3 0 2 0; #X connect 6 0 8 0; diff --git a/help/fluid.bufnmfcross-help.pd b/help/fluid.bufnmfcross-help.pd index bfda958..8c50516 100644 --- a/help/fluid.bufnmfcross-help.pd +++ b/help/fluid.bufnmfcross-help.pd @@ -74,15 +74,15 @@ fluid.nmfcross.src, f 47; #X obj 42 455 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; #X text 42 454 3) listen to source \, target or processed sound; -#X obj 459 592 cnv 15 215 65 empty empty More\ information 4 10 0 13 -#e0e0e0 #404040 0; -#N canvas 40 182 692 864 parameters 0; +#X obj 459 592 cnv 15 215 65 empty empty More\\\ information 4 10 0 +13 #e0e0e0 #404040 0; +#N canvas 40 182 692 636 parameters 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.bufnmfcross 1 22 0 36 #4ba3fb #ffffff 0; #X text 18 88 The result of the cross synthesis is a hybrid of the source and target sounds. The algorithm tries to match the target spectrum over time using components learned from the source. These parameters -affect the reconstruction:, f 69; +affect the reconstruction:, f 84; #X obj 42 480 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X obj 42 500 tabplay~ fluid.nmfcross.src, f 20; @@ -109,7 +109,6 @@ affect the reconstruction:, f 69; #X obj 354 500 tabplay~ fluid.nmfcross.result, f 22; #X obj 42 455 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; -#X text 42 454 3) listen to source \, target or processed sound; #X floatatom 403 415 5 0 0 0 - - - 0; #X obj 42 417 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; @@ -153,7 +152,16 @@ consecutive frames from the source, f 60; #X restore 42 169 pd parameters; #X obj 82 322 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 100 321 process; +#X obj 49 148 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 113 593 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 115 592 3) Audio on; +#X obj 104 322 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 51 147 1) Adjust the parameters; +#X text 106 321 2) Bang to start the process; +#X text 42 454 4) Listen to source \, target or processed sound; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 7 0; @@ -162,10 +170,10 @@ consecutive frames from the source, f 60; #X connect 6 0 9 0; #X connect 8 0 4 1; #X connect 9 0 4 2; -#X connect 14 0 13 0; -#X connect 14 1 12 0; -#X connect 16 0 14 0; -#X connect 17 0 14 0; +#X connect 13 0 12 0; +#X connect 13 1 11 0; +#X connect 15 0 13 0; +#X connect 16 0 13 0; #X restore 462 612 pd parameters; #X text 58 358 bang when done; #X obj 40 299 fluid.bufnmfcross -source fluid.nmfcross.src -target diff --git a/help/fluid.bufnoveltyslice-help.pd b/help/fluid.bufnoveltyslice-help.pd index d804fa6..eaaec3d 100644 --- a/help/fluid.bufnoveltyslice-help.pd +++ b/help/fluid.bufnoveltyslice-help.pd @@ -243,6 +243,9 @@ processed., f 33; #X obj 467 688 note_on_automatic_multiarrays; #X text 82 251 2) Segment the audio, f 11; #X text 569 604 3) Start audio, f 17; +#X obj 493 492 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 495 491 4) Select a slice to play; #X connect 7 0 11 0; #X connect 11 0 13 0; #X connect 13 0 6 0; diff --git a/help/fluid.bufpitch-help.pd b/help/fluid.bufpitch-help.pd index e7b0292..cabaf5a 100644 --- a/help/fluid.bufpitch-help.pd +++ b/help/fluid.bufpitch-help.pd @@ -3,8 +3,8 @@ #ffffff 0; #X obj 509 60 fluid.referencelauncher fluid.bufpitch.html reference/pitch/ ; -#X obj 458 715 cnv 15 215 115 empty empty More\ information 4 10 0 -13 #e0e0e0 #404040 0; +#X obj 458 715 cnv 15 215 115 empty empty More\\\ information 4 10 +0 13 #e0e0e0 #404040 0; #N canvas 1955 -858 448 179 loadsrc 0; #X obj 16 83 soundfiler; #X obj 16 115 outlet; @@ -60,8 +60,8 @@ help.bufpitch.2.pitch, f 30; #X obj 189 362 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; #X text 190 362 3) Only return the confidence; -#X obj 270 458 cnv 15 170 17 empty empty order:\\\ pitch\\\ confidence -3 12 0 12 #c6ffc7 #404040 0; +#X obj 270 458 cnv 15 180 20 empty empty order:\ pitch\ /\ confidence +3 10 0 12 #c6ffc7 #404040 0; #X text 268 411 No matter what order you specify the selection in \, the order that those choices are returned will follow the same order as if you didn't select any., f 52; @@ -298,9 +298,8 @@ help.bufpitch.4.src-0 help.bufpitch.4.src-1; #X connect 2 0 0 0; #X connect 3 0 4 0; #X restore 19 190 pd loadsrc; -#X obj 20 123 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +#X obj 20 142 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; -#X text 21 123 1) Pick a source; #X obj 498 165 clone fluid.multiarray 4 help.bufpitch.4.features, f 25; #X obj 498 125 clone fluid.multiarray 2 help.bufpitch.4.src, f 25 @@ -322,11 +321,12 @@ help.bufpitch.4.features; #000000; #X msg 17 344 features help.bufpitch.4.features; #X obj 130 166 fluid.waveform 300 100 0 empty empty 0; -#X connect 2 0 19 0; -#X connect 12 0 15 0; -#X connect 15 0 18 0; -#X connect 17 0 2 0; -#X connect 18 0 16 0; +#X text 21 142 1) Load a source; +#X connect 2 0 18 0; +#X connect 11 0 14 0; +#X connect 14 0 17 0; +#X connect 16 0 2 0; +#X connect 17 0 15 0; #X restore 461 779 pd multichannel; #X obj 17 261 bng 15 250 50 0 empty empty empty 17 7 0 10 #c6ffc7 #000000 #000000; diff --git a/help/fluid.bufscale-help.pd b/help/fluid.bufscale-help.pd index 5210216..0a0e9f2 100644 --- a/help/fluid.bufscale-help.pd +++ b/help/fluid.bufscale-help.pd @@ -24,22 +24,19 @@ range; #X obj 290 354 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X obj 290 384 array get stereoinput-1; -#X text 36 135 put values in left channel; #X obj 17 161 t b b, f 9; #X msg 77 243 symbol stereoinput-0; -#X obj 244 136 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 264 136 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 244 268 array set; -#X msg 244 205 1 1.1 1.2 1.3 1.4; -#X obj 244 162 t b b, f 9; -#X msg 303 244 symbol stereoinput-1; +#X obj 264 268 array set; +#X msg 264 205 1 1.1 1.2 1.3 1.4; +#X obj 264 162 t b b, f 9; +#X msg 323 244 symbol stereoinput-1; #X text 25 186 list of values to store; -#X text 251 186 list of values to store; +#X text 271 186 list of values to store; #X msg 17 204 0 0.1 0.2 0.3 0.4; #X obj 20 611 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 34 352 see stored values in left input; -#X text 308 352 see stored values in right input; #X listbox 205 664 20 0 0 0 - - - 0; #X obj 205 636 array get stereo_output-1; #N canvas 733 69 533 453 parameters 0; @@ -82,34 +79,49 @@ range; #X connect 15 0 16 0; #X connect 16 0 1 0; #X restore 225 525 pd parameters; -#X text 329 524 open to see parameter messages; #X obj 20 479 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 38 478 calculate and store scaled values in destination buffer -; -#X text 263 136 put values in right channel; -#X obj 461 611 cnv 15 215 74 empty empty More\ information 4 10 0 13 -#e0e0e0 #404040 0; +#X obj 461 611 cnv 15 215 74 empty empty More\\\ information 4 10 0 +13 #e0e0e0 #404040 0; #X obj 464 638 note_on_multiarrays; #X obj 463 661 note_on_automatic_multiarrays; -#X connect 0 0 18 0; -#X connect 3 0 28 0; +#X obj 35 135 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 282 136 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 32 353 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 308 354 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 38 479 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 322 527 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 35 134 1) put values in left channel; +#X text 282 134 2) put values in right channel; +#X text 32 351 3) see stored values in left input; +#X text 308 352 4) see stored values in right input; +#X text 38 478 5) calculate and store scaled values in destination +buffer; +#X text 323 524 6) open to see parameter messages; +#X connect 0 0 17 0; +#X connect 3 0 27 0; #X connect 5 0 10 0; #X connect 12 0 13 0; #X connect 13 0 11 0; #X connect 15 0 16 0; #X connect 16 0 14 0; -#X connect 18 0 27 0; -#X connect 18 1 19 0; -#X connect 19 0 1 2; -#X connect 20 0 23 0; +#X connect 17 0 26 0; +#X connect 17 1 18 0; +#X connect 18 0 1 2; +#X connect 19 0 22 0; +#X connect 21 0 20 0; #X connect 22 0 21 0; -#X connect 23 0 22 0; -#X connect 23 1 24 0; -#X connect 24 0 21 2; -#X connect 27 0 1 0; -#X connect 28 0 5 0; -#X connect 28 0 32 0; -#X connect 32 0 31 0; -#X connect 33 0 3 0; -#X connect 35 0 3 0; +#X connect 22 1 23 0; +#X connect 23 0 20 2; +#X connect 26 0 1 0; +#X connect 27 0 5 0; +#X connect 27 0 29 0; +#X connect 29 0 28 0; +#X connect 30 0 3 0; +#X connect 31 0 3 0; diff --git a/help/fluid.bufselect-help.pd b/help/fluid.bufselect-help.pd index 0d05367..d2e9032 100644 --- a/help/fluid.bufselect-help.pd +++ b/help/fluid.bufselect-help.pd @@ -92,12 +92,8 @@ of a list of frame indices and channel numbers.; #X msg 351 575 indices 0 3 1 \, channels 1 2 2 \, bang; #X listbox 17 858 25 0 0 0 - - - 0; #X obj 72 763 array get output-2; -#X text 16 160 1) fill the input arrays; -#X text 251 416 3) send message to select only indices 3 and 2 from -channels 4 and 1; -#X text 18 675 4) get values of output channels; -#X obj 461 786 cnv 15 215 92 empty empty More\ information 4 10 0 13 -#e0e0e0 #404040 0; +#X obj 461 786 cnv 15 215 92 empty empty More\\\ information 4 10 0 +13 #e0e0e0 #404040 0; #N canvas 582 78 690 988 curating_descriptor_data 0; #X text 19 64 comment; #X obj 17 13 cnv 15 660 42 empty empty fluid.bufselect 1 22 0 36 #4ba3fb @@ -379,9 +375,6 @@ bufselect.help.isolated-stat; #X text 15 161 bufselect~ is useful in an analytical context \, because it allows you to extract and isolate specific descriptors and analyses from a larger collection.; -#X text 15 258 1) Select some speactral features to analyse:, f 18 -; -#X text 147 256 2) Select desired statistical analyses, f 17; #N canvas 908 181 679 786 interface 0; #N canvas 1199 -947 966 758 choices 0; #X obj 46 587 list store; @@ -781,9 +774,18 @@ from a larger collection.; #X connect 22 1 19 0; #X coords 0 -1 1 1 244 230 1 100 100; #X restore 17 312 pd interface; -#X text 15 632 3) Display the dataset; #X listbox 26 549 20 0 0 0 - - - 0; #X listbox 266 547 20 0 0 0 - - - 0; +#X obj 15 259 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 155 260 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 21 635 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 15 257 1) Select some speactral features to analyse:, f 18 +; +#X text 155 257 2) Select desired statistical analyses, f 17; +#X text 21 633 3) Display the dataset; #X connect 4 0 5 0; #X connect 6 0 15 0; #X connect 6 0 16 0; @@ -799,14 +801,26 @@ from a larger collection.; #X connect 19 0 11 0; #X connect 20 0 12 0; #X connect 21 0 13 0; -#X connect 25 0 4 0; -#X connect 25 0 27 0; -#X connect 25 1 28 0; -#X connect 25 1 4 1; +#X connect 23 0 4 0; +#X connect 23 0 24 0; +#X connect 23 1 25 0; +#X connect 23 1 4 1; #X restore 465 809 pd curating_descriptor_data; #X obj 465 831 note_on_multithreading; -#X text 16 255 2) show values in input channels 0-5; #X obj 465 854 note_on_automatic_multiarrays; +#X obj 17 159 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 17 253 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 252 416 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 17 675 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 17 158 1) fill the input arrays; +#X text 18 675 4) get values of output channels; +#X text 17 253 2) show values in input channels 0-5; +#X text 252 414 3) send message to select only indices 3 and 2 from +channels 4 and 1; #X connect 1 0 2 0; #X connect 4 0 3 0; #X connect 7 0 3 0; diff --git a/help/fluid.bufselectevery-help.pd b/help/fluid.bufselectevery-help.pd index b953380..e25d47e 100644 --- a/help/fluid.bufselectevery-help.pd +++ b/help/fluid.bufselectevery-help.pd @@ -62,7 +62,6 @@ described in terms of independent hop sizes for frames and channels #X connect 18 0 3 0; #X connect 19 0 7 0; #X restore 17 197 pd array-filler; -#X text 16 160 1) fill the input arrays; #X obj 17 272 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X obj 59 297 array get input-0; @@ -77,7 +76,6 @@ described in terms of independent hop sizes for frames and channels #X obj 90 381 array get input-4; #X listbox 17 528 25 0 0 0 - - - 0; #X obj 100 402 array get input-5; -#X text 16 255 2) show values in input channels 0-4; #X obj 539 200 note_on_multiarrays; #X obj 448 228 clone fluid.multiarray 6 input 6; #X obj 17 694 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 @@ -88,7 +86,6 @@ described in terms of independent hop sizes for frames and channels #X obj 65 741 array get output-1; #X listbox 17 898 25 0 0 0 - - - 0; #X obj 72 762 array get output-2; -#X text 18 675 4) get values of output channels; #X msg 277 382 startframe 0 \, numframes -1 \, framehop 2 \, startchan 0 \, numchans -1 \, chanhop 1 \, bang; #X obj 441 250 clone fluid.multiarray 6 output 6; @@ -98,7 +95,6 @@ described in terms of independent hop sizes for frames and channels #X obj 80 783 array get output-3; #X obj 87 804 array get output-4; #X obj 94 825 array get output-5; -#X text 251 356 3) select every other frame in all channels; #N canvas 1701 -604 740 385 clear 0; #X obj 59 9 inlet; #X msg 59 76 0; @@ -140,15 +136,14 @@ described in terms of independent hop sizes for frames and channels #X msg 298 562 startframe 0 \, numframes -1 \, framehop 3 \, startchan 0 \, numchans -1 \, chanhop 1 \, bang; #X text 296 543 ... or every third frame, f 46; -#X obj 452 885 cnv 15 217 93 empty empty More\ information 4 10 0 13 -#e0e0e0 #404040 0; +#X obj 452 885 cnv 15 217 93 empty empty More\\\ information 4 10 0 +13 #e0e0e0 #404040 0; #N canvas 209 78 703 901 curating_descriptor_data 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.bufselectevery 1 22 0 36 #4ba3fb #ffffff 0; #X obj 16 472 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X listbox 16 526 185 0 0 0 - - - 0; -#X text 35 470 3) Display the dataset; #X obj 17 60 cnv 15 488 17 empty empty Extract\\\ every\\\ N\\\ samples\\\ /\\\ channels\\\ from\\\ a\\\ buffer 4 8 0 13 #e0e0e0 #404040 0; #N canvas 257 92 648 610 buffers 0; @@ -195,7 +190,6 @@ single derivative.; #000000; #X listbox 16 796 58 0 0 0 - - - 0; #X obj 16 496 array get descriptordata1-0; -#X text 43 204 1) Trigger some descriptor analysis; #X obj 16 626 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #N canvas 2185 -531 448 387 analysis_to_dataset1 0; @@ -329,55 +323,79 @@ single derivative.; #X connect 11 0 1 0; #X restore 16 657 pd analysis_to_dataset2; #X obj 16 766 array get descriptordata2-0; -#X text 39 739 5) Display the dataset; -#X text 39 390 2) Copy the bufselect.help.stats buffer to a fluid.dataset~ -; -#X text 39 624 4) Copy the output of bufselectevery~ to a fluid.dataset~ -; #X obj 387 98 clone fluid.multiarray 7 descriptordata 7; #X text 269 732 bufselectevery~ extracts every seventh value. Because bufstats~ returns 7 statistics for each derivative (21 values) using bufselect~ in this way extracts the mean (the first item in every group of 7) of each derivative.; -#X connect 1 0 14 0; +#X obj 43 204 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 39 393 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 34 472 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 34 626 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 34 742 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 35 470 3) Display the dataset; +#X text 43 203 1) Trigger some descriptor analysis; +#X text 36 741 5) Display the dataset; +#X text 39 391 2) Copy the bufselect.help.stats buffer to a fluid.dataset~ +; +#X text 35 625 4) Copy the output of bufselectevery~ to a fluid.dataset~ +; +#X connect 1 0 13 0; +#X connect 6 0 5 0; #X connect 7 0 6 0; #X connect 8 0 7 0; -#X connect 9 0 8 0; -#X connect 10 0 17 0; -#X connect 12 0 19 0; -#X connect 14 0 2 0; -#X connect 16 0 18 0; -#X connect 19 0 13 0; +#X connect 9 0 15 0; +#X connect 11 0 17 0; +#X connect 13 0 2 0; +#X connect 14 0 16 0; +#X connect 17 0 12 0; #X restore 456 908 pd curating_descriptor_data; #X obj 456 930 note_on_multithreading; #X obj 456 953 note_on_automatic_multiarrays; +#X obj 17 159 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 17 255 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 278 363 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 17 676 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 18 158 1) fill the input arrays; +#X text 18 254 2) show values in input channels 0-4; +#X text 18 675 4) get values of output channels; +#X text 279 362 3) select every other frame in all channels; #X connect 5 0 6 0; +#X connect 7 0 8 0; +#X connect 7 0 11 0; +#X connect 7 0 14 0; +#X connect 7 0 15 0; +#X connect 7 0 17 0; +#X connect 7 0 19 0; #X connect 8 0 9 0; -#X connect 8 0 12 0; -#X connect 8 0 15 0; -#X connect 8 0 16 0; -#X connect 8 0 18 0; -#X connect 8 0 20 0; -#X connect 9 0 10 0; -#X connect 12 0 11 0; +#X connect 11 0 10 0; +#X connect 14 0 12 0; #X connect 15 0 13 0; -#X connect 16 0 14 0; -#X connect 18 0 17 0; -#X connect 20 0 19 0; -#X connect 24 0 27 0; -#X connect 24 0 28 0; -#X connect 24 0 30 0; -#X connect 24 0 37 0; -#X connect 24 0 38 0; -#X connect 24 0 39 0; -#X connect 27 0 25 0; -#X connect 28 0 26 0; -#X connect 30 0 29 0; -#X connect 32 0 42 0; -#X connect 37 0 34 0; -#X connect 38 0 35 0; -#X connect 39 0 36 0; -#X connect 42 0 0 0; -#X connect 42 1 41 0; -#X connect 44 0 42 0; -#X connect 45 0 42 0; +#X connect 17 0 16 0; +#X connect 19 0 18 0; +#X connect 22 0 25 0; +#X connect 22 0 26 0; +#X connect 22 0 28 0; +#X connect 22 0 34 0; +#X connect 22 0 35 0; +#X connect 22 0 36 0; +#X connect 25 0 23 0; +#X connect 26 0 24 0; +#X connect 28 0 27 0; +#X connect 29 0 38 0; +#X connect 34 0 31 0; +#X connect 35 0 32 0; +#X connect 36 0 33 0; +#X connect 38 0 0 0; +#X connect 38 1 37 0; +#X connect 40 0 38 0; +#X connect 41 0 38 0; diff --git a/help/fluid.bufspectralshape-help.pd b/help/fluid.bufspectralshape-help.pd index 27e4767..acc1cda 100644 --- a/help/fluid.bufspectralshape-help.pd +++ b/help/fluid.bufspectralshape-help.pd @@ -134,8 +134,8 @@ chosen., f 63; #X text 105 355 Think of this parameter like a filter \, rather than a reordering of the outputs., f 63; #X msg 39 450 select centroid skew \, bang; -#X obj 18 409 cnv 15 420 17 empty empty order:\\\ centroid\\\ spread\\\ skew\\\ kurtosis\\\ rolloff\\\ flatness\\\ crest -3 12 0 12 #c6ffc7 #404040 0; +#X obj 18 409 cnv 15 500 20 empty empty order:\ centroid\ /\ spread\ /\ skew\ /\ kurtosis\ /\ rolloff\ /\ flatness\ /\ crest +3 10 0 12 #c6ffc7 #404040 0; #X msg 59 490 select skew centroid \, bang; #X msg 79 530 select skew kurtosis centroid \, bang; #X text 250 448 only return the centroid and skew; @@ -184,7 +184,7 @@ help.specshape.features -numchans 1; #X obj 17 408 fluid.waveform 490 100 0 empty empty 0; #X obj 38 326 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; -#X text 39 326 2) Do spectral shape analysis; +#X text 38 325 2) Do spectral shape analysis; #X text 515 422 Use the mouse to scrub through different parts of the audio file and retrieve the analysis, f 24; #N canvas 998 -1001 1511 939 feature_lookup 0; diff --git a/help/fluid.bufstats-help.pd b/help/fluid.bufstats-help.pd index 3f4e1be..91c6416 100644 --- a/help/fluid.bufstats-help.pd +++ b/help/fluid.bufstats-help.pd @@ -76,9 +76,9 @@ ; #X obj 17 60 cnv 15 488 17 empty empty Statistically\\\ summarise\\\ a\\\ time\\\ series\\\ in\\\ an\\\ array 4 8 0 13 #e0e0e0 #404040 0; -#X obj 465 545 cnv 15 215 152 empty empty More\ information 4 10 0 -13 #e0e0e0 #404040 0; -#N canvas 880 94 698 745 musical_example 0; +#X obj 465 545 cnv 15 215 152 empty empty More\\\ information 4 10 +0 13 #e0e0e0 #404040 0; +#N canvas 155 91 698 745 musical_example 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.bufstats 1 22 0 36 #4ba3fb #ffffff 0; #X obj 19 230 soundfiler; @@ -313,7 +313,10 @@ and retrieve the ordinal.; the segments by their pitch value; #X obj 80 563 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; -#X text 80 562 4) Playback slices sorted by pitch; +#X text 80 562 5) Playback slices sorted by pitch; +#X obj 103 714 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 103 713 4) audio on; #X connect 5 0 9 0; #X connect 6 0 7 0; #X connect 7 0 8 0; @@ -618,9 +621,6 @@ help.bufstats.src.3, f 32; #X obj 16 800 fluid.out~ bufstatshelp; #X obj 209 639 vradio 30 1 0 3 empty empty empty 0 -8 0 10 #fcfcfc #000000 #000000 0; -#X text 442 632 Play back the section of the source that was analysed -alongside a sine tone at the detected frequency. Decide which one is -the closest for yourself!, f 27; #X text 242 698 weighted by confidence and outliers cutoff, f 23; #X text 421 670 <-, f 30; #X text 242 643 just the mean, f 23; @@ -631,6 +631,11 @@ the closest for yourself!, f 27; #X floatatom 356 566 5 0 0 0 - - - 0; #X obj 16 493 t a a a, f 49; #X text 409 226 2) listen to the source (an acoustic bass), f 23; +#X obj 443 632 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 443 631 4) Play back the section of the source that was analysed +alongside a sine tone at the detected frequency. Decide which one is +the closest for yourself!, f 27; #X connect 5 0 13 0; #X connect 6 0 14 0; #X connect 10 0 21 0; @@ -638,21 +643,21 @@ the closest for yourself!, f 27; #X connect 14 0 7 0; #X connect 14 0 7 1; #X connect 17 0 16 0; -#X connect 18 0 31 0; -#X connect 19 0 32 0; -#X connect 20 0 33 0; +#X connect 18 0 30 0; +#X connect 19 0 31 0; +#X connect 20 0 32 0; #X connect 21 0 17 0; -#X connect 21 0 34 0; +#X connect 21 0 33 0; #X connect 22 0 23 0; #X connect 22 1 23 1; #X connect 24 0 22 1; -#X connect 30 0 22 0; -#X connect 31 0 30 0; -#X connect 32 0 30 1; -#X connect 33 0 30 2; -#X connect 34 0 18 0; -#X connect 34 1 19 0; -#X connect 34 2 20 0; +#X connect 29 0 22 0; +#X connect 30 0 29 0; +#X connect 31 0 29 1; +#X connect 32 0 29 2; +#X connect 33 0 18 0; +#X connect 33 1 19 0; +#X connect 33 2 20 0; #X restore 468 631 pd weighted_statistics; #N canvas 134 49 693 684 multichannel 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.bufstats 1 22 0 36 #4ba3fb @@ -695,8 +700,6 @@ const; #X connect 9 0 13 0; #X connect 10 0 11 0; #X restore 22 117 pd composer; -#X text 44 82 1) compose an artificially wide "stereo" array - a line -on the left channel \, and noise on the right channel, f 76; #N canvas 0 22 450 278 (subpatch) 0; #X array help.bufstats.src-0 101 float 2; #X coords 0 1 101 0 202 140 1 0 0; @@ -705,7 +708,6 @@ on the left channel \, and noise on the right channel, f 76; #X array help.bufstats.src-1 101 float 2; #X coords 0 1 101 0 202 140 1 0 0; #X restore 377 159 graph; -#X text 41 309 2) process; #X msg 22 393 0; #X obj 22 444 list split 7; #N canvas 1539 -672 450 300 stats 0; @@ -822,20 +824,29 @@ on the left channel \, and noise on the right channel, f 76; #X obj 352 422 array get help.bufstats.dst-1 0; #X obj 22 420 array get help.bufstats.dst-0 0; #X obj 353 657 clone 2 fluid.multiarray help.bufstats.dst; +#X obj 44 85 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 41 311 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 64 392 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 44 83 1) compose an artificially wide "stereo" array - a line +on the left channel \, and noise on the right channel, f 76; +#X text 41 309 2) process; #X text 65 391 3) retrieves the stats of channel 0 and channel 1 separately ; #X connect 1 0 3 0; -#X connect 2 0 15 0; +#X connect 2 0 13 0; #X connect 3 0 2 0; -#X connect 8 0 17 0; -#X connect 8 0 16 0; -#X connect 9 0 11 0; -#X connect 9 1 10 0; -#X connect 12 0 14 0; -#X connect 12 1 13 0; -#X connect 15 0 8 0; -#X connect 16 0 12 0; -#X connect 17 0 9 0; +#X connect 6 0 15 0; +#X connect 6 0 14 0; +#X connect 7 0 9 0; +#X connect 7 1 8 0; +#X connect 10 0 12 0; +#X connect 10 1 11 0; +#X connect 13 0 6 0; +#X connect 14 0 10 0; +#X connect 15 0 7 0; #X restore 468 653 pd multichannel; #X text 17 79 Statistical analysis on array channels.; #X obj 17 174 vradio 15 1 0 4 empty empty empty 0 -8 0 10 #fcfcfc #000000 @@ -871,10 +882,6 @@ help.bufstats.select.src; help.bufstats.select.dst, f 47; #X obj 23 479 array get help.bufstats.select.dst; #X listbox 23 502 71 0 0 0 - - - 0; -#X text 19 127 1) Load a soundfile; -#X text 191 249 2) Only returns the mean and skew; -#X text 403 282 3) Back to default; -#X text 248 310 4) same as above; #X obj 93 341 cnv 15 580 75 empty empty empty 4 10 0 13 #e0e0e0 #404040 0; #X text 98 343 No matter what order you specify the selection in \, @@ -883,6 +890,18 @@ as if you didn't select any. A good trick for getting the order is to see the attributes listed out in the object when no -select is chosen. Think of this parameter like a filter \, rather than a reordering of the outputs., f 81; +#X obj 20 128 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 191 250 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 247 311 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 405 283 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 19 127 1) Load a soundfile; +#X text 191 249 2) Only returns the mean and skew; +#X text 403 282 3) Back to default; +#X text 248 310 4) same as above; #X connect 5 0 4 0; #X connect 6 0 11 0; #X connect 7 0 11 0; @@ -894,8 +913,6 @@ the outputs., f 81; #X obj 251 307 array get help.bufstats.stats.1 0; #X msg 251 280 0; #X obj 251 331 list split 7; -#X text 13 146 1) Select a source; -#X text 273 166 2) Process the statistics; #N canvas 1539 -672 450 300 stats 0; #X obj 102 57 inlet; #X text 185 128 mean; @@ -972,11 +989,17 @@ the outputs., f 81; #X connect 9 0 3 0; #X restore 281 208 pd changing_the_centiles; #X obj 468 675 note_on_automatic_multiarrays; +#X obj 14 147 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 273 167 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 13 146 1) Select a source; +#X text 273 166 2) Process the statistics; #X connect 12 0 0 0; #X connect 18 0 19 0; #X connect 19 0 22 0; #X connect 21 0 23 0; #X connect 22 0 21 0; -#X connect 23 0 27 0; -#X connect 23 1 26 0; -#X connect 28 0 19 0; +#X connect 23 0 25 0; +#X connect 23 1 24 0; +#X connect 26 0 19 0; diff --git a/help/fluid.bufstft-help.pd b/help/fluid.bufstft-help.pd index f24cccc..f54ea6b 100644 --- a/help/fluid.bufstft-help.pd +++ b/help/fluid.bufstft-help.pd @@ -38,7 +38,7 @@ Transform (STFT) on a single channel source array.; #000000; #X obj 462 813 cnv 15 212 88 empty empty More\\\ information 4 10 0 13 #e0e0e0 #404040 0; -#N canvas 162 143 749 909 musical_example 0; +#N canvas 162 143 692 671 musical_example 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.bufstft 1 22 0 36 #4ba3fb #ffffff 0; #X text 17 99 Performs either a forward or inverse Short-Time Fourier diff --git a/help/fluid.bufthreaddemo-help.pd b/help/fluid.bufthreaddemo-help.pd index a01d37f..5d87fe6 100644 --- a/help/fluid.bufthreaddemo-help.pd +++ b/help/fluid.bufthreaddemo-help.pd @@ -5,15 +5,10 @@ #X obj 172 444 array define result 3; #X obj 22 442 expr result[0]; #X floatatom 22 463 10 0 0 0 - - - 0; -#X text 48 363 This will wait for 3 seconds \, and then write 3000 -into the array 'result', f 38; #X obj 17 13 cnv 15 660 42 empty empty fluid.bufthreaddemo 1 22 0 36 #4ba3fb #ffffff 0; #X obj 17 60 cnv 15 488 17 empty empty Fluid\\\ Decomposition:\\\ Thread 4 8 0 13 #e0e0e0 #404040 0; -#X text 16 85 The Fluid Decomposition Toolkit has some different options -for threading \, depending on the type of processing you're doing. -, f 63; #X obj 509 60 fluid.referencelauncher fluid.bufthreaddemo.html reference/butthreaddemo/ ; #X text 17 292 The object's processing consists simply of waiting for @@ -28,90 +23,117 @@ non-realtime objects., f 73; #X text 19 240 Arguments:, f 11; #X obj 484 393 cnv 15 199 65 empty empty More\\\ information 4 10 0 13 #e0e0e0 #404040 0; -#N canvas 343 216 578 480 blocking_behaviour 0; -#X text 13 13 Choosing a thread with the 'blocking' attribute; -#X text 14 50 The default for all Fluid Decomposition Toolkit non-realtime -objects is to process in Pd's main thread.; -#X text 13 89 For more intensive jobs \, this might cause audio to +#N canvas 343 216 703 549 blocking_behaviour 0; +#X text 17 92 Choosing a thread with the 'blocking' attribute; +#X text 18 129 The default for all Fluid Decomposition Toolkit non-realtime +objects is to process in Pd's main thread., f 94; +#X text 17 168 For more intensive jobs \, this might cause audio to drop. In these circumstances you can opt to use a custom thread instead -\, to avoid locking up Pd \, by setting 'blocking' to 0; -#X obj 50 253 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +\, to avoid locking up Pd \, by setting 'blocking' to 0, f 94; +#X obj 54 332 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 33 373 expr result[0]; -#X floatatom 33 394 10 0 0 0 - - - 0; -#X obj 34 187 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 37 452 expr result[0]; +#X floatatom 37 473 10 0 0 0 - - - 0; +#X obj 38 266 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 34 207 blocking \$1; -#X obj 35 166 loadbang; -#X text 54 188 1) choose your blocking mode; -#X obj 326 180 osc~ 110; -#X obj 326 221 dac~; -#X obj 390 163 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X msg 38 286 blocking \$1; +#X obj 39 245 loadbang; +#X obj 330 259 osc~ 110; +#X obj 330 300 dac~; +#X obj 394 242 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 390 180 * 0.1; -#X obj 326 200 *~; -#X text 323 147 2) play a sound; -#X text 67 253 3) start the process; -#X msg 71 299 cancel; -#X text 119 299 You can abort a threaded job using the 'cancel' message +#X obj 394 259 * 0.1; +#X obj 330 279 *~; +#X msg 75 378 cancel; +#X text 125 378 You can abort a threaded job using the 'cancel' message ; -#X obj 33 355 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 37 434 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X text 113 398 When blocking = 0 \, the right outlet of the object +#X text 117 477 When blocking = 0 \, the right outlet of the object will report approximate job progress. The left outlet will still bang when finished \, which you can use to trigger your next round of processing -; -#X floatatom 344 357 5 0 0 0 - - - 0; -#X obj 33 333 fluid.bufthreaddemo -result result -time 1000; -#X connect 3 0 22 0; +, f 80; +#X floatatom 348 436 5 0 0 0 - - - 0; +#X obj 37 412 fluid.bufthreaddemo -result result -time 1000; +#X obj 58 267 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 328 226 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 72 333 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 17 13 cnv 15 660 42 empty empty fluid.bufthreaddemo 1 22 0 36 +#4ba3fb #ffffff 0; +#X obj 17 60 cnv 15 488 17 empty empty Fluid\\\ Decomposition:\\\ Thread +4 8 0 13 #e0e0e0 #404040 0; +#X text 59 265 1) choose your blocking mode; +#X text 328 224 2) play a sound; +#X text 73 331 3) start the process; +#X connect 3 0 19 0; #X connect 4 0 5 0; #X connect 6 0 7 0; -#X connect 7 0 22 0; +#X connect 7 0 19 0; #X connect 8 0 6 0; -#X connect 10 0 14 0; -#X connect 12 0 13 0; -#X connect 13 0 14 1; -#X connect 14 0 11 0; -#X connect 14 0 11 1; -#X connect 17 0 22 0; -#X connect 19 0 4 0; -#X connect 22 0 19 0; -#X connect 22 1 21 0; +#X connect 9 0 13 0; +#X connect 11 0 12 0; +#X connect 12 0 13 1; +#X connect 13 0 10 0; +#X connect 13 0 10 1; +#X connect 14 0 19 0; +#X connect 16 0 4 0; +#X connect 19 0 16 0; +#X connect 19 1 18 0; #X restore 488 414 pd blocking_behaviour; -#N canvas 271 84 510 356 queue_flag 0; -#X text 15 10 Controlling Queuing; -#X text 16 44 In blocking mode \, you can queue calls like this (check -the console for output):; -#X msg 20 83 blocking 1 \, time 1500 \, bang \, time 1000 \, bang \, -time 500 \, bang; -#X obj 19 303 expr result[0]; -#X obj 19 324 print; -#X obj 19 263 fluid.bufthreaddemo -result result; -#X msg 39 144 blocking 0 \, time 1500 \, bang \, time 1000 \, bang +#N canvas 271 84 698 455 queue_flag 0; +#X text 17 100 Controlling Queuing; +#X msg 22 156 blocking 1 \, time 1500 \, bang \, time 1000 \, bang +\, time 500 \, bang; +#X obj 21 393 expr result[0]; +#X obj 21 414 print; +#X obj 21 353 fluid.bufthreaddemo -result result; +#X msg 41 234 blocking 0 \, time 1500 \, bang \, time 1000 \, bang \, time 500 \, bang; -#X text 37 109 In non-blocking mode \, this will give an error for -the second and third jobs that the object is busy; -#X obj 258 288 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 #fcfcfc +#X obj 260 378 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1; -#X text 57 181 If you want to enable this sort of idiom with custom -threads \, you can turn the queue attribute on; -#X obj 61 212 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X obj 62 302 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X msg 61 232 queue \$1; -#X obj 19 284 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 +#X msg 62 322 queue \$1; +#X obj 21 374 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X connect 2 0 5 0; -#X connect 3 0 4 0; -#X connect 5 0 12 0; -#X connect 5 1 8 0; -#X connect 6 0 5 0; -#X connect 10 0 11 0; -#X connect 11 0 5 0; -#X connect 12 0 3 0; +#X obj 17 13 cnv 15 660 42 empty empty fluid.bufthreaddemo 1 22 0 36 +#4ba3fb #ffffff 0; +#X obj 17 60 cnv 15 488 17 empty empty Fluid\\\ Decomposition:\\\ Thread +4 8 0 13 #e0e0e0 #404040 0; +#X obj 20 136 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 38 198 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 58 274 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 20 135 1) In blocking mode \, you can queue calls like this +(check the console for output):, f 86; +#X text 39 198 2) In non-blocking mode \, this will give an error for +the second and third jobs that the object is busy, f 80; +#X text 59 271 3) If you want to enable this sort of idiom with custom +threads \, you can turn the queue attribute on, f 82; +#X connect 1 0 4 0; +#X connect 2 0 3 0; +#X connect 4 0 9 0; +#X connect 4 1 6 0; +#X connect 5 0 4 0; +#X connect 7 0 8 0; +#X connect 8 0 4 0; +#X connect 9 0 2 0; #X restore 488 435 pd queue_flag; #X obj 22 424 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; +#X obj 48 364 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 49 362 1) This will wait for 3 seconds \, and then write 3000 +into the array 'result', f 49; +#X text 16 85 The Fluid Corpus Manipulation Toolkit has different options +for threading \, depending on the type of processing you are doing. +, f 63; #X connect 0 0 1 0; -#X connect 1 0 18 0; +#X connect 1 0 16 0; #X connect 3 0 4 0; -#X connect 18 0 3 0; +#X connect 16 0 3 0; diff --git a/help/fluid.bufthresh-help.pd b/help/fluid.bufthresh-help.pd index 7415282..6b10285 100644 --- a/help/fluid.bufthresh-help.pd +++ b/help/fluid.bufthresh-help.pd @@ -9,7 +9,7 @@ 4 8 0 13 #e0e0e0 #404040 0; #X text 17 79 Replace all values of a buffer under the given threshold with 0 and copy the result to a destination buffer.; -#N canvas 1094 23 554 314 fillarrays 1; +#N canvas 1094 23 554 314 fillarrays 0; #X obj 15 17 loadbang; #X msg 15 124 \; stereoinput-1 sinesum 256 1 0 0.33 0 0.2 0 0.14 0 0.11 0 0.09; @@ -36,9 +36,11 @@ with 0 and copy the result to a destination buffer.; #X coords 0 1 258 -1 258 66 1 0 0; #X restore 306 334 graph; #X obj 37 237 loadbang; -#X obj 458 526 cnv 15 215 50 empty empty More\ information 4 10 0 13 -#e0e0e0 #404040 0; +#X obj 458 526 cnv 15 215 50 empty empty More\\\ information 4 10 0 +13 #e0e0e0 #404040 0; #X obj 463 550 note_on_automatic_multiarrays; +#X obj 64 181 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; #X text 64 179 1) change the threshold and observe the output.; #X connect 0 0 1 0; #X connect 1 0 7 0; diff --git a/help/fluid.chroma~-help.pd b/help/fluid.chroma~-help.pd index 5ea73f8..c41258e 100644 --- a/help/fluid.chroma~-help.pd +++ b/help/fluid.chroma~-help.pd @@ -48,13 +48,6 @@ 4 8 0 13 #e0e0e0 #404040 0; #X text 17 79 This object computes a histogram of the energy contained in each pitch class across the analysis frequency range, f 56; -#X text 19 159 1) Select a source. It works well with polyphonic piano. -, f 66; -#X text 275 335 3) Consecutive frames of analysis are smoothed to make -the visualisation easier to follow., f 46; -#X text 332 405 2) Each index of the list is a pitch class. The strength -of that pitch class is determined by the corresponding element.comment -, f 46; #N canvas 257 304 1382 293 oscillator_bank 0; #X obj 49 30 inlet; #X obj 51 240 outlet~; @@ -215,17 +208,9 @@ of that pitch class is determined by the corresponding element.comment #000000 #000000 0 1; #X obj 461 433 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 #fcfcfc #000000 #000000 0 1; -#X text 121 568 3) The list is now 19 elements long: each element in -the list is a chroma bin., f 42; -#X text 238 282 2) The number of chroma can be changed. Note \, the -maximum number of chroma is always returned and so the maximum chroma -has to be set also. This is the first argument of the object., f 61 -; #X obj 120 333 fluid.chroma~ 19 -fftsettings 4096 512 -normalize 1 -numchroma 19, f 65; #X obj 67 332 s #0-n; -#X text 36 101 1) Select a source. It works well with oboe multiphonic. -; #X obj 17 13 cnv 15 660 42 empty empty fluid.chroma~ 1 22 0 36 #4ba3fb #ffffff 0; #X obj 17 60 cnv 15 488 17 empty empty A\\\ histogram\\\ of\\\ pitch\\\ classes\\\ in\\\ real-time. @@ -454,13 +439,27 @@ has to be set also. This is the first argument of the object., f 61 #X restore 67 615 pd oscillator_bank; #X obj 120 364 fluid.stats -history 40; #X obj 38 645 fluid.out~; -#X connect 12 0 27 0; -#X connect 12 0 34 0; +#X obj 37 103 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 241 283 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 121 569 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 121 568 3) The list is now 19 elements long: each element in +the list is a chroma bin., f 42; +#X text 241 282 2) The number of chroma can be changed. Note \, the +maximum number of chroma is always returned and so the maximum chroma +has to be set also. This is the first argument of the object., f 61 +; +#X text 36 101 1) Select a source. It works well with oboe multiphonic. +; +#X connect 12 0 25 0; +#X connect 12 0 31 0; #X connect 13 0 16 0; -#X connect 13 0 28 0; +#X connect 13 0 26 0; #X connect 14 0 15 0; #X connect 15 0 13 0; -#X connect 16 0 27 0; +#X connect 16 0 25 0; #X connect 17 0 0 0; #X connect 17 1 1 0; #X connect 17 2 2 0; @@ -480,13 +479,26 @@ has to be set also. This is the first argument of the object., f 61 #X connect 17 16 22 0; #X connect 17 17 23 0; #X connect 17 18 24 0; -#X connect 27 0 33 0; -#X connect 32 0 34 1; -#X connect 33 0 32 0; -#X connect 33 0 17 0; +#X connect 25 0 30 0; +#X connect 29 0 31 1; +#X connect 30 0 29 0; +#X connect 30 0 17 0; #X restore 514 616 pd some_more_details; #X obj 102 340 fluid.stats -history 40; #X obj 20 620 fluid.out~; +#X obj 18 159 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 275 336 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 333 405 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 19 159 1) Select a source. It works well with polyphonic piano. +, f 66; +#X text 275 335 3) Consecutive frames of analysis are smoothed to make +the visualisation easier to follow., f 46; +#X text 332 405 2) Each index of the list is a pitch class. The strength +of that pitch class is determined by the corresponding element.comment +, f 46; #X connect 13 0 1 0; #X connect 13 1 2 0; #X connect 13 2 3 0; @@ -500,8 +512,8 @@ has to be set also. This is the first argument of the object., f 61 #X connect 13 10 11 0; #X connect 13 11 12 0; #X connect 14 0 27 0; -#X connect 14 0 38 0; -#X connect 27 0 37 0; -#X connect 35 0 38 1; -#X connect 37 0 13 0; -#X connect 37 0 35 0; +#X connect 14 0 35 0; +#X connect 27 0 34 0; +#X connect 32 0 35 1; +#X connect 34 0 13 0; +#X connect 34 0 32 0; diff --git a/help/fluid.concataudiofiles-help.pd b/help/fluid.concataudiofiles-help.pd index 45f5330..49b6d04 100644 --- a/help/fluid.concataudiofiles-help.pd +++ b/help/fluid.concataudiofiles-help.pd @@ -1,4 +1,4 @@ -#N canvas 52 80 700 650 12; +#N canvas 30 42 704 649 12; #X obj 17 13 cnv 15 660 42 empty empty fluid.concataudiofiles 1 22 0 36 #4ba3fb #ffffff 0; #X obj 17 60 cnv 15 488 17 empty empty A\\\ utility\\\ to\\\ concatenate\\\ audio\\\ files. @@ -131,13 +131,17 @@ count., f 65; #X connect 26 0 10 0; #X connect 27 0 23 0; #X restore 43 288 pd drawdisplay; +#X text 22 429 See the concatenated files:; +#X obj 539 221 note_on_multiarrays; +#X obj 18 167 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 185 351 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; #X text 18 166 1) Click here to load all the FluCoMa demo audio files in one 'multiarray', f 74; -#X text 183 350 2) open the text to see the items in order. Each line +#X text 184 349 2) open the text to see the items in order. Each line is a file with its path / sampling_rate / nbChans / startFrame / endframe , f 63; -#X text 22 429 See the concatenated files:; -#X obj 539 221 note_on_multiarrays; #X connect 2 0 6 0; #X connect 5 0 2 0; #X connect 6 0 13 0; diff --git a/help/fluid.dataset-help.pd b/help/fluid.dataset-help.pd index 0a4d8c0..da8525a 100644 --- a/help/fluid.dataset-help.pd +++ b/help/fluid.dataset-help.pd @@ -73,8 +73,8 @@ to an array., f 26; #X text 136 265 1) Store a list of numbers in an array. These numbers could be anything \, including audio-descriptor data \, synthesiser parameters or anything!, f 54; -#X obj 475 687 cnv 15 202 156 empty empty More\ information 4 10 0 -13 #e0e0e0 #404040 0; +#X obj 475 687 cnv 15 202 156 empty empty More\\\ information 4 10 +0 13 #e0e0e0 #404040 0; #N canvas 312 64 693 961 audio-descriptor_example 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.dataset 1 22 0 36 #4ba3fb #ffffff 0; @@ -156,7 +156,7 @@ and stored in the dataset with the identity "scratch-synth", f 42 #X connect 30 0 16 0; #X connect 31 0 30 0; #X restore 478 707 pd audio-descriptor_example; -#N canvas 183 157 703 609 other_messages 0; +#N canvas 110 98 703 609 other_messages 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.dataset 1 22 0 36 #4ba3fb #ffffff 0; #X text 17 79 Other useful messages that can be used with fluid.dataset~ @@ -187,36 +187,49 @@ and stored in the dataset with the identity "scratch-synth", f 42 #X connect 7 0 1 0; #X connect 10 0 2 1; #X restore 57 154 pd make_dummy_dataset; -#X text 193 187 write a fluid.dataset to disk; -#X text 213 217 Read a fluid.dataset~ from disk; #X msg 94 248 size; #X msg 114 288 cols; #X msg 134 358 print; -#X text 203 387 Completely empty and reset a fluid.dataset~; #X msg 154 388 clear; -#X text 143 247 Get the size (the number of pairs -in the dataset) \, which is reported out the left outlet.; -#X text 163 287 Get the number of columns \, or dimensions of the data -points. Since all points must have the same number of dimensions \, -this is just a single number. It is reported out the left outlet.; #X msg 74 218 read myfile.json; #X msg 54 188 write myfile.json; -#X text 183 357 Dump the contents of the fluid.dataset~ to the console -; #X obj 51 490 fluid.dataset help.other; #X obj 51 514 print left; #X obj 215 514 print right; +#X obj 195 190 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 213 218 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 144 248 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 163 288 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 184 358 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 204 390 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 195 188 1) write a fluid.dataset to disk; +#X text 212 217 2) Read a fluid.dataset~ from disk; +#X text 143 246 3) Get the size (the number of +pairs in the dataset) \, which is reported out the left outlet.; +#X text 162 286 4) Get the number of columns \, or dimensions of the +data points. Since all points must have the same number of dimensions +\, this is just a single number. It is reported out the left outlet. +; +#X text 183 357 5) Dump the contents of the fluid.dataset~ to the console +; +#X text 204 388 6) Completely empty and reset a fluid.dataset~; #X connect 2 0 3 0; -#X connect 6 0 16 0; -#X connect 7 0 16 0; -#X connect 8 0 16 0; -#X connect 10 0 16 0; -#X connect 13 0 16 0; -#X connect 14 0 16 0; -#X connect 16 0 17 0; -#X connect 16 1 18 0; +#X connect 4 0 10 0; +#X connect 5 0 10 0; +#X connect 6 0 10 0; +#X connect 7 0 10 0; +#X connect 8 0 10 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 10 1 12 0; #X restore 478 729 pd other_messages; -#N canvas 899 23 692 549 merging 0; +#N canvas 131 150 695 549 merging 0; #X obj 401 199 cnv 15 218 42 empty empty empty 20 12 0 14 #faad8b #404040 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.dataset 1 22 0 36 #4ba3fb @@ -305,6 +318,14 @@ not found in the dataset to merge will be added to the caller., f #X obj 291 486 text define help.dataset.merge.text.2; #X f 27; #X obj 51 210 t b b; +#X obj 490 492 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 384 167 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 385 165 2) click the message to merge and inspect again the +text below to see the effect, f 41; +#X text 490 491 1) open the text objects to see the sources, f 25 +; #X connect 3 0 16 0; #X connect 4 0 6 0; #X connect 5 0 7 0; @@ -443,7 +464,7 @@ across all channels as the columns of a given identifier.; ; #X obj 19 784 text define help.dataset.text.1; #X text 41 678 8) store dataset into a text object; -#N canvas 1009 23 691 591 using_text 0; +#N canvas 126 91 691 591 using_text 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.dataset 1 22 0 36 #4ba3fb #ffffff 0; #X obj 27 542 fluid.dataset help.dataset.4; diff --git a/help/fluid.datasetquery-help.pd b/help/fluid.datasetquery-help.pd index ee6b68f..49202e4 100644 --- a/help/fluid.datasetquery-help.pd +++ b/help/fluid.datasetquery-help.pd @@ -2,8 +2,8 @@ #X obj 245 621 fluid.datasetquery; #X obj 17 13 cnv 15 660 42 empty empty fluid.datasetquery 1 22 0 36 #4ba3fb #ffffff 0; -#X obj 457 867 cnv 15 222 132 empty empty More\ information 4 10 0 -13 #e0e0e0 #404040 0; +#X obj 457 867 cnv 15 222 132 empty empty More\\\ information 4 10 +0 13 #e0e0e0 #404040 0; #X obj 509 60 fluid.referencelauncher fluid.datasetquery.html reference/datasetquery/ ; #X obj 47 211 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 @@ -12,7 +12,7 @@ #X text 17 129 A selection of columns and a set of conditions that match rows of a FluidDataSet. Use to filter and search in a database of descriptors.; -#N canvas 376 244 705 845 operators 0; +#N canvas 376 244 697 802 operators 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.datasetquery 1 22 0 36 #4ba3fb #ffffff 0; #X text 17 79 We can also combine multiple operators to refine the @@ -150,8 +150,6 @@ filter for the query.; 0; #X obj 157 739 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; -#X text 158 738 6) double-click text object to see the data, f 16 -; #X text 277 751 ->; #X obj 349 181 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; @@ -173,22 +171,24 @@ to constrain the search, f 21; #X obj 295 664 fluid.ds2text dsq.help.dest.2 dsq.help.dest.text.2, f 20; #X msg 370 419 addcolumn 3, f 13; +#X text 158 738 7) double-click text object to see the data, f 16 +; #X connect 4 0 5 0; #X connect 5 0 7 0; #X connect 5 1 8 0; #X connect 7 0 6 0; -#X connect 9 0 31 0; +#X connect 9 0 30 0; #X connect 10 0 9 0; #X connect 13 0 9 0; +#X connect 25 0 9 0; #X connect 26 0 9 0; #X connect 27 0 9 0; #X connect 28 0 9 0; -#X connect 29 0 9 0; -#X connect 30 0 32 0; -#X connect 31 0 30 0; -#X connect 33 0 9 0; +#X connect 29 0 31 0; +#X connect 30 0 29 0; +#X connect 32 0 9 0; #X restore 472 887 pd operators; -#N canvas 228 57 712 946 column_ranges 0; +#N canvas 228 57 698 808 column_ranges 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.datasetquery 1 22 0 36 #4ba3fb #ffffff 0; #X text 17 79 Only copy a range of columns using addrange; @@ -356,7 +356,7 @@ f 30; #X connect 23 0 8 0; #X connect 27 0 8 0; #X restore 472 909 pd column_ranges; -#N canvas 363 72 688 840 combining_columns 0; +#N canvas 363 72 693 787 combining_columns 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.datasetquery 1 22 0 36 #4ba3fb #ffffff 0; #X text 17 79 The transformjoin message allows filtering the contents @@ -838,12 +838,12 @@ the filter is satisfied copy THIS column to our destination., f 25 #X obj 245 698 fluid.ds2text dsq.help.dest dsq.help.dest.text, f 20 ; #X obj 245 650 route transform; -#N canvas 899 23 964 917 transformjoin_in_practice 0; +#N canvas 230 35 694 988 transformjoin_in_practice 0; #X obj 17 13 cnv 15 660 42 empty empty fluid.datasetquery 1 22 0 36 #4ba3fb #ffffff 0; #X text 17 79 The transformjoin message allows filtering the contents of a dataset based on the contents found in another.; -#X obj 502 665 cnv 15 243 33 empty empty empty 20 12 0 14 #e0e0e0 #404040 +#X obj 311 933 cnv 15 243 33 empty empty empty 20 12 0 14 #e0e0e0 #404040 0; #X obj 51 675 cnv 15 179 33 empty empty empty 20 12 0 14 #e0e0e0 #404040 0; @@ -859,7 +859,7 @@ dsq.help.src.5; #X connect 1 0 2 0; #X connect 2 0 0 0; #X restore 38 162 pd loadsrc; -#X obj 484 162 array define dsq.help.src.5; +#X obj 477 154 array define dsq.help.src.5; #X obj 38 212 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #N canvas 1814 -956 687 668 analysis 0; @@ -886,10 +886,10 @@ dsq.help.src.5; #X obj 247 306 fluid.datasetquery; #X obj 247 335 route transform; #X obj 247 393 fluid.dataset dsq.help.pitch.filtered, f 25; -#X obj 497 442 fluid.datasetquery; -#X msg 497 385 clear \, filter 1 > 0.9 \, transformjoin dsq.help.pitch +#X obj 306 710 fluid.datasetquery; +#X msg 306 653 clear \, filter 1 > 0.9 \, transformjoin dsq.help.pitch dsq.help.specshape dsq.help.specshape.filtered, f 37; -#X obj 497 472 route transformjoin; +#X obj 306 740 route transformjoin; #X obj 38 360 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X obj 38 388 fluid.ds2text dsq.help.pitch dsq.help.pitch.text, f @@ -901,12 +901,12 @@ dsq.help.specshape dsq.help.specshape.filtered, f 37; , f 30; #X obj 252 542 text define dsq.help.pitch.filtered.text; #X f 29; -#X obj 497 588 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 306 856 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 497 530 fluid.dataset dsq.help.specshape.filtered; -#X obj 497 613 fluid.ds2text dsq.help.specshape.filtered dsq.help.specshape.filtered.text +#X obj 306 798 fluid.dataset dsq.help.specshape.filtered; +#X obj 306 881 fluid.ds2text dsq.help.specshape.filtered dsq.help.specshape.filtered.text , f 32; -#X obj 502 665 text define dsq.help.specshape.filtered.text; +#X obj 311 933 text define dsq.help.specshape.filtered.text; #X f 34; #X obj 45 526 fluid.dataset dsq.help.specshape, f 20; #X obj 45 598 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 @@ -922,7 +922,7 @@ dsq.help.specshape dsq.help.specshape.filtered, f 37; #X msg 247 249 clear \, filter 1 > 0.9 \, addrange 0 2 \, transform dsq.help.pitch dsq.help.pitch.filtered, f 37; #X floatatom 301 465 5 0 0 0 - - - 0; -#X floatatom 551 588 5 0 0 0 - - - 0; +#X floatatom 360 856 5 0 0 0 - - - 0; #X obj 56 212 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; #X text 57 211 1) Generate some pitch and spectral analyses, f 23 @@ -930,26 +930,26 @@ dsq.help.pitch dsq.help.pitch.filtered, f 37; #X obj 356 212 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; #X text 357 211 2) Filter the pitch analyses by confidence, f 22; -#X obj 526 329 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +#X obj 302 619 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; -#X text 527 328 3) Filter the spectral shape analyses by the pitch -confidence values of the pitch dataset., f 33; +#X text 303 618 3) Filter the spectral shape analyses by the pitch +confidence values of the pitch dataset.; #X obj 47 741 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; #X text 48 740 4) Double click the text objects to see the data., f 26; #X text 48 780 Note the size (number of rows) in each dataset., f 26; -#X text 313 595 Once we filter the data based on pitch confidence there +#X text 470 431 Once we filter the data based on pitch confidence there are fewer rows in the dataset. Any identifier where the confidence was lower than 0.9 in the pitch dataset is removed from both., f 20 ; #X obj 38 331 route size; #X obj 45 569 route size; #X obj 247 436 route size; -#X obj 497 559 route size; +#X obj 306 827 route size; #X msg 247 364 size; -#X msg 497 501 size; +#X msg 306 769 size; #X connect 8 0 9 0; #X connect 9 0 10 0; #X connect 9 1 32 0; diff --git a/help/fluid.ds2text-help.pd b/help/fluid.ds2text-help.pd index 3dbcde8..0e931f2 100644 --- a/help/fluid.ds2text-help.pd +++ b/help/fluid.ds2text-help.pd @@ -1,4 +1,4 @@ -#N canvas 205 135 693 724 12; +#N canvas 103 77 693 724 12; #X obj 309 289 array define input 10; #X obj 53 313 array set input; #X msg 40 389 print; @@ -52,19 +52,27 @@ #X obj 17 60 cnv 15 488 17 empty empty Convert\\\ FluCoMa\\\ DataSet\\\ into\\\ text 4 8 0 13 #e0e0e0 #404040 0; #X text 17 79 A utility object to convert a dataset into text.; -#X text 18 134 1) Click these to populate an array with values and -save those in dataset myDS.; #X text 19 194 Message '-1' will store a dataset point with an identifier 'entry--1' and data which is the list of values in the array., f 61 ; #X text 169 285 create values in array 'input', f 16; -#X text 87 388 2) Click to see the DataSet printed in the console, -f 28; -#X text 42 535 3) Click to convert the myDS dataset and save it in -text object myText, f 36; -#X text 19 651 Click on Text object to see its content; #X obj 571 679 fluid.ls2text; #X text 495 679 see also:; +#X obj 19 135 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 87 387 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 42 535 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 18 134 1) Click these to populate an array with values and +save those in dataset myDS.; +#X text 42 535 3) Click to convert the myDS dataset and save it in +text object myText, f 36; +#X text 87 388 2) Click to see the DataSet printed in the Pd window +, f 28; +#X obj 19 651 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 20 650 4) Click on Text object to see its content; #X connect 2 0 11 0; #X connect 3 0 7 0; #X connect 4 0 7 0; diff --git a/help/fluid.hpss~-help.pd b/help/fluid.hpss~-help.pd index c0f2811..7af92f9 100644 --- a/help/fluid.hpss~-help.pd +++ b/help/fluid.hpss~-help.pd @@ -1,4 +1,4 @@ -#N canvas 77 60 691 1000 12; +#N canvas 28 35 691 1000 12; #X text 18 91 Harmonic-Percussive Source Separation (HPSS) on the an audio input., f 69; #X obj 511 199 array define hpss_drums; @@ -44,7 +44,6 @@ audio input., f 69; #X text 51 802 source; #X msg 140 396 getlatency; #X text 17 179 2) Play a sound; -#X text 33 779 select which components to hear:; #X obj 523 867 cnv 15 152 65 empty empty More\\\ information 4 10 0 13 #e0e0e0 #404040 0; #N canvas 511 107 694 1021 masking_mode1 0; @@ -79,7 +78,6 @@ greater separation \, but can have more audible artefacts., f 93; #X obj 17 980 fluid.out~ hpsshelp; #X text 53 901 harmonic; #X text 151 900 perc; -#X obj 17 953 *~ 1; #N canvas 282 71 1390 1006 calculatethreshold 0; #X floatatom 66 435 5 0 0 0 - - - 0; #X obj 98 479 s nf1; @@ -291,26 +289,26 @@ greater separation \, but can have more audible artefacts., f 93; #X text 197 900 3) select which component or components to hear; #X listbox 278 594 40 0 0 0 - - - 0; #X obj 18 871 fluid.hpss~ -maskingmode 1, f 43; -#X connect 2 0 31 0; -#X connect 7 0 31 0; -#X connect 10 0 17 0; +#X connect 2 0 30 0; +#X connect 7 0 30 0; +#X connect 10 0 14 0; +#X connect 10 0 14 1; #X connect 11 0 10 1; -#X connect 12 0 17 0; +#X connect 12 0 14 0; +#X connect 12 0 14 1; #X connect 13 0 12 1; -#X connect 17 0 14 1; -#X connect 17 0 14 0; -#X connect 18 0 2 0; +#X connect 17 0 2 0; +#X connect 17 0 29 0; #X connect 18 0 30 0; -#X connect 19 0 31 0; -#X connect 20 0 19 0; -#X connect 21 0 22 0; -#X connect 22 0 31 0; +#X connect 19 0 18 0; +#X connect 20 0 21 0; +#X connect 21 0 30 0; +#X connect 22 0 19 0; #X connect 23 0 20 0; -#X connect 24 0 21 0; -#X connect 25 0 23 0; -#X connect 25 0 24 0; -#X connect 31 0 10 0; -#X connect 31 1 12 0; +#X connect 24 0 22 0; +#X connect 24 0 23 0; +#X connect 30 0 10 0; +#X connect 30 1 12 0; #X restore 526 887 pd masking_mode1; #N canvas 335 107 701 941 masking_mode2 0; #X text 15 74 use mode 2 for more extreme separation and fine-tuning @@ -342,7 +340,6 @@ pairs. frequency is normalised (0-1) \, amp in dB, f 53; #000000 0 1; #X text 53 771 harmonic; #X text 176 771 perc; -#X obj 18 863 *~ 1; #X obj 18 739 fluid.hpss~ -maskingmode 2 -fftsettings 4096 1024 4096 ; #X obj 268 793 *~; @@ -781,30 +778,31 @@ pairs. frequency is normalised (0-1) \, amp in dB, f 53; #000000 #000000 0; #X text 198 664 percthresh; #X text 198 652 harmthresh; -#X connect 6 0 16 0; -#X connect 9 0 15 0; +#X connect 6 0 15 0; +#X connect 9 0 5 0; +#X connect 9 0 5 1; #X connect 10 0 9 1; -#X connect 11 0 15 0; +#X connect 11 0 5 0; +#X connect 11 0 5 1; #X connect 12 0 11 1; -#X connect 15 0 5 0; -#X connect 15 0 5 1; -#X connect 16 0 9 0; -#X connect 16 1 11 0; -#X connect 16 2 17 0; -#X connect 17 0 15 0; -#X connect 18 0 17 1; +#X connect 15 0 9 0; +#X connect 15 1 11 0; +#X connect 15 2 16 0; +#X connect 16 0 5 0; +#X connect 16 0 5 1; +#X connect 17 0 16 1; +#X connect 18 0 21 0; +#X connect 18 0 20 0; #X connect 19 0 22 0; -#X connect 19 0 21 0; -#X connect 20 0 23 0; -#X connect 20 0 21 0; -#X connect 21 0 16 0; -#X connect 25 0 34 1; -#X connect 26 0 34 3; -#X connect 27 0 34 2; -#X connect 28 0 34 4; +#X connect 19 0 20 0; +#X connect 20 0 15 0; +#X connect 24 0 33 1; +#X connect 25 0 33 3; +#X connect 26 0 33 2; +#X connect 27 0 33 4; +#X connect 33 0 32 0; +#X connect 33 0 20 0; #X connect 34 0 33 0; -#X connect 34 0 21 0; -#X connect 35 0 34 0; #X restore 526 909 pd masking_mode2; #X obj 97 961 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 0; @@ -824,6 +822,7 @@ pairs. frequency is normalised (0-1) \, amp in dB, f 53; #X connect 4 0 5 0; #X connect 4 1 2 0; #X restore 139 372 pd getsr; +#X text 33 779 3) Select which components to hear:; #X connect 8 0 18 1; #X connect 8 0 18 0; #X connect 9 0 8 1; @@ -831,8 +830,8 @@ pairs. frequency is normalised (0-1) \, amp in dB, f 53; #X connect 10 0 18 0; #X connect 11 0 10 1; #X connect 12 0 17 0; +#X connect 12 0 39 0; #X connect 12 0 40 0; -#X connect 12 0 41 0; #X connect 13 0 23 0; #X connect 14 0 13 0; #X connect 15 0 16 0; @@ -850,6 +849,6 @@ pairs. frequency is normalised (0-1) \, amp in dB, f 53; #X connect 29 0 18 1; #X connect 30 0 29 1; #X connect 32 0 23 0; -#X connect 40 0 14 0; -#X connect 41 0 15 0; -#X connect 42 0 32 0; +#X connect 39 0 14 0; +#X connect 40 0 15 0; +#X connect 41 0 32 0; diff --git a/help/fluid.kdtree-help.pd b/help/fluid.kdtree-help.pd index 81b22b0..81a19ef 100644 --- a/help/fluid.kdtree-help.pd +++ b/help/fluid.kdtree-help.pd @@ -1,10 +1,10 @@ -#N struct 18297-rectangle float x float c; -#N struct 18297-pixel float x0 float y0 float x1 float y1; -#N struct 18298-rectangle float x float c; -#N struct 18298-pixel float x0 float y0 float x1 float y1; -#N struct 18312-rectangle float x float c; -#N struct 18312-pixel float x0 float y0 float x1 float y1; -#N canvas 110 80 698 714 12; +#N struct 1101-rectangle float x float c; +#N struct 1101-pixel float x0 float y0 float x1 float y1; +#N struct 1102-rectangle float x float c; +#N struct 1102-pixel float x0 float y0 float x1 float y1; +#N struct 1116-rectangle float x float c; +#N struct 1116-pixel float x0 float y0 float x1 float y1; +#N canvas 58 66 698 714 12; #X obj 18 19 cnv 15 660 42 empty empty fluid.kdtree 1 22 0 36 #4ba3fb #ffffff 0; #X obj 510 66 fluid.referencelauncher fluid.kdtree.html reference/kdtree/ @@ -13,7 +13,7 @@ 13 #e0e0e0 #404040 0; #X obj 18 66 cnv 15 488 17 empty empty A\\\ K-D\\\ tree. 4 8 0 13 #e0e0e0 #404040 0; -#N canvas 191 170 698 804 radius_&_neighbours 0; +#N canvas 139 103 698 804 radius_&_neighbours 0; #X obj 19 17 cnv 15 660 42 empty empty fluid.kdtree 1 22 0 36 #4ba3fb #ffffff 0; #X obj 19 64 cnv 15 488 17 empty empty A\\\ K-D\\\ tree. 4 8 0 13 #e0e0e0 @@ -73,9 +73,6 @@ kd_tree_h3_query[1] = random(0 \, 101) * 0.01; #X obj 21 707 list trim; #X obj 21 731 s kd_tree_h3_plotter; #X obj 31 206 r kd_tree_h3_plotter; -#X text 40 141 1) Generate random data to be stored in the fluid.dataset -, f 30; -#X text 237 186 2) Click and drag around this space, f 17; #X obj 34 611 r kd_tree_h3_tree; #X obj 356 235 cnv 15 330 135 empty empty Radius\\\ vs\\\ Number\\\ of\\\ Neighbours 4 8 0 13 #dfdfdf #404040 0; @@ -104,8 +101,17 @@ radius is searched \; number of returned points is uncapped, f 45 ; #X msg 362 687 \; kd_tree_h3_tree numneighbours 0 \, radius 0.3; #X msg 362 722 \; kd_tree_h3_tree numneighbours 0 \, radius 0.09; -#X text 395 197 3) Experiment with the numneighbours and radius constraints. -, f 37; +#X obj 40 143 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 237 188 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 395 187 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 40 141 1) Generate random data to be stored in the fluid.dataset +, f 30; +#X text 237 186 2) Click and drag around this space, f 17; +#X text 395 186 3) Experiment with changing the numneighbours and radius +constraints \, then browse again the 2d space., f 37; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 5 0 6 0; @@ -117,20 +123,15 @@ radius is searched \; number of returned points is uncapped, f 45 #X connect 12 0 13 0; #X connect 13 0 14 0; #X connect 15 0 5 0; -#X connect 18 0 10 0; +#X connect 16 0 10 0; #X restore 491 653 pd radius_&_neighbours; -#N canvas 112 98 698 764 stripping_it_back 0; +#N canvas 175 102 698 764 stripping_it_back 0; #X obj 19 17 cnv 15 660 42 empty empty fluid.kdtree 1 22 0 36 #4ba3fb #ffffff 0; #X obj 19 64 cnv 15 488 17 empty empty A\\\ K-D\\\ tree. 4 8 0 13 #e0e0e0 #404040 0; #X text 20 96 A stripped back example for how to fluid.kdtree works ; -#X text 317 213 2) Fit a kdtree to the dataset that was just made; -#X text 67 135 1) Create a dataset with four \, two-dimensional points -; -#X text 234 342 3) Move the knob around to create a "query" for the -kdtree, f 34; #X obj 46 137 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X obj 46 157 t b b b b b, f 23; @@ -202,30 +203,41 @@ stored point in the dataset is closest to this., f 31; to the input to see how "close" they are., f 40; #X text 24 677 This is the identifier of the point as it was entered in the dataset., f 27; -#X connect 6 0 7 0; -#X connect 7 0 9 0; -#X connect 7 1 10 0; -#X connect 7 2 11 0; -#X connect 7 3 12 0; -#X connect 7 4 8 1; -#X connect 9 0 8 0; -#X connect 10 0 8 0; -#X connect 11 0 8 0; -#X connect 12 0 8 0; -#X connect 17 0 18 0; -#X connect 19 0 21 0; -#X connect 20 0 22 0; -#X connect 21 0 20 0; -#X connect 21 1 20 0; -#X connect 22 0 23 0; -#X connect 22 0 30 0; -#X connect 23 0 24 0; +#X obj 67 136 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 316 215 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 234 343 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 317 213 2) Fit a kdtree to the dataset that was just made; +#X text 67 135 1) Create a dataset with four \, two-dimensional points +; +#X text 234 342 3) Move the knob around to create a "query" for the +kdtree, f 34; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 4 1 7 0; +#X connect 4 2 8 0; +#X connect 4 3 9 0; +#X connect 4 4 5 1; +#X connect 6 0 5 0; +#X connect 7 0 5 0; +#X connect 8 0 5 0; +#X connect 9 0 5 0; +#X connect 14 0 15 0; +#X connect 16 0 18 0; +#X connect 17 0 19 0; +#X connect 18 0 17 0; +#X connect 18 1 17 0; +#X connect 19 0 20 0; +#X connect 19 0 27 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 22 0 26 0; +#X connect 22 0 24 0; #X connect 24 0 25 0; -#X connect 25 0 29 0; -#X connect 25 0 27 0; +#X connect 26 0 23 0; #X connect 27 0 28 0; -#X connect 29 0 26 0; -#X connect 30 0 31 0; #X restore 491 631 pd stripping_it_back; #X text 18 85 A K-dimensional tree for efficient neighbourhood searches of multi-dimensional data.; @@ -313,10 +325,6 @@ of multi-dimensional data.; #X obj 119 177 r kd_tree_h1_plotter; #X msg 326 644 highlight \$1; #X obj 326 668 s kd_tree_h1_plotter; -#X text 327 203 2) Click and drag around this space.; -#X text 41 142 1) For demonstrative purposes much of this first example -is preanalused and pretrained data. This button loads in this subpatch -when the helpfle is opened, f 86; #X text 330 266 Each of these points on this space represents a small segment of a large sound file. Using audio descriptors each segment is assigned two values \, loudness and spectral centroid \, that attempt @@ -354,6 +362,14 @@ space., f 49; #X restore 108 644 pd player; #X obj 108 668 fluid.out~; #X obj 491 676 note_on_automatic_datasets; +#X obj 41 144 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X obj 326 204 cnv 15 15 15 empty empty empty 20 12 0 14 #c6ffc7 #404040 +0; +#X text 327 203 2) Click and drag around this space.; +#X text 41 142 1) For demonstrative purposes much of this first example +is preanalused and pretrained data. This button loads in this subpatch +when the helpfle is opened, f 86; #X connect 7 0 8 0; #X connect 8 0 9 0; #X connect 9 0 11 0; @@ -362,11 +378,11 @@ space., f 49; #X connect 12 0 13 0; #X connect 13 0 15 0; #X connect 15 0 16 0; -#X connect 15 0 25 0; +#X connect 15 0 23 0; #X connect 16 0 18 0; #X connect 17 0 9 0; #X connect 18 0 19 0; -#X connect 24 0 26 0; -#X connect 25 0 24 0; -#X connect 26 0 27 0; -#X connect 26 0 27 1; +#X connect 22 0 24 0; +#X connect 23 0 22 0; +#X connect 24 0 25 0; +#X connect 24 0 25 1; diff --git a/help/fluid.labelset-help.pd b/help/fluid.labelset-help.pd index b68d451..630cead 100644 --- a/help/fluid.labelset-help.pd +++ b/help/fluid.labelset-help.pd @@ -14,7 +14,7 @@ with labels.; 0; #X text 252 174 1) Add labels with the addlabel