From 91c256f44fc661dfa3fe4626699ec39913e923a7 Mon Sep 17 00:00:00 2001 From: Jonathan Wilkes <jon.w.wilkes@gmail.com> Date: Fri, 4 Aug 2017 23:47:13 -0400 Subject: [PATCH] simplify external-tests.pd to only load and instantiate using absolute paths --- scripts/external-tests.pd | 779 ++++++++++++++++++-------------------- 1 file changed, 374 insertions(+), 405 deletions(-) diff --git a/scripts/external-tests.pd b/scripts/external-tests.pd index b9c6b358e..07ea528f8 100644 --- a/scripts/external-tests.pd +++ b/scripts/external-tests.pd @@ -1,6 +1,90 @@ -#N canvas 104 25 751 671 12; -#X msg 513 70 bang; -#N canvas 273 114 533 496 get_extensions 0; +#N canvas 1 25 659 646 12; +#X obj 61 34 loadbang; +#N canvas 107 123 756 233 load_hcs/folder_list 0; +#X obj 357 47 inlet; +#X obj 357 155 s pd-\$0-hcs/folder_list; +#N canvas 288 225 450 300 \$0-hcs/folder_list 0; +#X restore 43 113 pd \$0-hcs/folder_list; +#X obj 43 47 inlet; +#X obj 43 76 s \$0-fl-in; +#X obj 43 149 r \$0-fl-out; +#X obj 43 180 outlet; +#X msg 357 90 clear \, obj 5 5 receive \$0-fl-in \, obj 5 30 \$1/extra/hcs/folder_list +\, obj 5 55 send \$0-fl-out \, connect 0 0 1 0 \, connect 1 0 2 0; +#X connect 0 0 7 0; +#X connect 3 0 4 0; +#X connect 5 0 6 0; +#X connect 7 0 1 0; +#X restore 164 429 pd load_hcs/folder_list; +#X text 304 45 \$0-libdir - directory containing doc and extra; +#N canvas 44 204 956 472 list_of_libdirs 0; +#X obj 24 9 inlet; +#X msg 24 150 libdir cyclone zexy creb cxc iemlib list-abs mapping +markex maxlib memento mjlib motex osx pddp pdogg pixeltango pmpd rradical +sigpack smlib unauthorized vbap pan freeverb~ hcs jmmmp ext13 ggee +iem_anything ekext hexloader disis lyonpotpourri; +#X text 70 128 libraries that are loaded at startup in Purr Data; +#X text 49 267 Gem is currently excluded because it doesn't run on +all platforms; +#X obj 24 408 outlet; +#X text 510 128 legacy libraries that are not loaded at startup; +#X text 511 315 iem_tab: 45 classes that refuse to create without args +; +#X text 511 338 tof: param class is too complex to easily give default +args; +#X text 585 293 Missing:; +#X text 84 245 Missing:; +#X obj 24 376 list append; +#X obj 24 35 trigger bang bang; +#X msg 489 150 adaptive arraysize autotune~ bassemu~ bob~ boids bonk~ +bsaylor choice comport controctopus fluid~ hid iem16 iem_adaptfilt +iem_ambi iem_bin_ambi iem_delay iemgui iemmatrix iem_roomsim iem_spec2 +iemxmlrpc jasch_lib K12 la-kitchen loop~ lrshift~ memento-p mjlib moocow +moonlib motex mrpeach nsend pan pd~ pdcontainer pd-wavelet pique plugin~ +pmpd purepd rjlib rradical rtc sfruit sigmund~ stdout timestretch windowing +; +#X connect 0 0 11 0; +#X connect 1 0 10 0; +#X connect 10 0 4 0; +#X connect 11 0 1 0; +#X connect 11 1 12 0; +#X connect 12 0 10 1; +#X restore 132 124 pd list_of_libdirs; +#N canvas 245 192 382 392 list_drip 0; +#X obj 67 30 inlet; +#X obj 102 83 list length; +#X obj 102 108 until; +#X obj 102 163 f; +#X obj 102 188 + 1; +#X msg 274 263 set; +#X msg 66 307 \$1 \, \$2 \,; +#X obj 66 263 list; +#X msg 102 263 adddollar \$1 \, addcomma; +#X msg 150 126 0; +#X obj 66 332 symbol; +#X obj 66 357 outlet; +#X obj 67 55 trigger anything anything bang; +#X obj 144 224 b; +#X connect 0 0 12 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 3 1; +#X connect 4 0 8 0; +#X connect 5 0 6 0; +#X connect 6 0 10 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 3 1; +#X connect 10 0 11 0; +#X connect 12 0 7 0; +#X connect 12 1 1 0; +#X connect 12 2 5 0; +#X connect 12 2 9 0; +#X connect 12 2 13 0; +#X connect 13 0 7 1; +#X restore 132 154 pd list_drip; +#N canvas 389 65 533 579 get_extensions 0; #X obj 17 44 inlet; #X obj 17 70 bang; #X msg 17 105 platform; @@ -20,7 +104,9 @@ #X msg 106 205 .pd_darwin .d_fat; #X obj 299 397 list; #X msg 246 205 .dll .m_i386; -#X obj 17 460 outlet; +#X obj 17 460 list append .pd; +#X text 131 459 add ".pd" extension for abstractions; +#X obj 17 485 outlet; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 2 0 3 0; @@ -47,78 +133,49 @@ #X connect 16 0 17 0; #X connect 17 0 19 0; #X connect 18 0 17 0; -#X restore 97 345 pd get_extensions; -#N canvas 453 108 450 323 get_libdir 0; -#X obj 119 58 inlet; -#X obj 119 135 pdinfo; -#X obj 119 84 b; -#X msg 119 110 libdir; -#X obj 119 161 outlet; -#X connect 0 0 2 0; -#X connect 1 0 4 0; -#X connect 2 0 3 0; -#X connect 3 0 1 0; -#X restore 513 95 pd get_libdir; -#N canvas 107 123 756 233 load_hcs/folder_list 0; -#X obj 306 40 inlet; -#X obj 306 133 s pd-\$0-hcs/folder_list; -#N canvas 0 0 450 300 \$0-hcs/folder_list 0; -#X obj 5 5 receive 1003-fl-in; -#X obj 5 30 /usr/lib/pd-l2ork/extra/hcs/folder_list; -#X obj 5 55 send 1003-fl-out; -#X connect 0 0 1 0; +#X connect 19 0 21 0; +#X restore 310 184 pd get_extensions; +#X obj 164 275 list; +#N canvas 245 192 382 392 list_drip 0; +#X obj 67 30 inlet; +#X obj 102 83 list length; +#X obj 102 108 until; +#X obj 102 163 f; +#X obj 102 188 + 1; +#X msg 274 263 set; +#X msg 66 307 \$1 \, \$2 \,; +#X obj 66 263 list; +#X msg 102 263 adddollar \$1 \, addcomma; +#X msg 150 126 0; +#X obj 66 332 symbol; +#X obj 66 357 outlet; +#X obj 67 55 trigger anything anything bang; +#X obj 144 224 b; +#X connect 0 0 12 0; #X connect 1 0 2 0; -#X restore 37 97 pd \$0-hcs/folder_list; -#X obj 37 40 inlet; -#X obj 37 65 s \$0-fl-in; -#X obj 37 128 r \$0-fl-out; -#X obj 37 154 outlet; -#X msg 306 77 clear \, obj 5 5 receive \$0-fl-in \, obj 5 30 \$1/extra/hcs/folder_list -\, obj 5 55 send \$0-fl-out \, connect 0 0 1 0 \, connect 1 0 2 0; -#X connect 0 0 7 0; +#X connect 2 0 3 0; #X connect 3 0 4 0; -#X connect 5 0 6 0; -#X connect 7 0 1 0; -#X restore 97 569 pd load_hcs/folder_list; -#N canvas 0 0 450 300 add_.pd 0; -#X obj 66 29 inlet; -#X obj 66 55 list append .pd; -#X obj 66 80 outlet; -#X connect 0 0 1 0; -#X connect 1 0 2 0; -#X restore 97 371 pd add_.pd; -#X obj 97 425 t a a; -#X obj 97 487 pack s s s; -#X obj 37 19 loadbang; -#X obj 130 453 s \$0-ext; -#X obj 332 596 r \$0-reset; -#X obj 150 317 s \$0-reset; -#X msg 150 285 bang; -#N canvas 0 0 450 300 remove_ext 0; -#X obj 28 30 inlet; -#X obj 78 150 r \$0-ext; -#X obj 78 205 list length; -#X obj 28 55 list fromsymbol; -#X obj 28 260 list split; -#X obj 28 80 t a a; -#X obj 60 115 list length; -#X obj 60 230 -; -#X obj 28 285 list tosymbol; -#X obj 28 310 outlet; -#X obj 78 175 list fromsymbol; -#X connect 0 0 3 0; -#X connect 1 0 10 0; -#X connect 2 0 7 1; -#X connect 3 0 5 0; +#X connect 4 0 3 1; #X connect 4 0 8 0; -#X connect 5 0 4 0; -#X connect 5 1 6 0; -#X connect 6 0 7 0; -#X connect 7 0 4 1; -#X connect 8 0 9 0; -#X connect 10 0 2 0; -#X restore 97 624 pd remove_ext; -#N canvas 314 37 450 472 remove_help 0; +#X connect 5 0 6 0; +#X connect 6 0 10 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 3 1; +#X connect 10 0 11 0; +#X connect 12 0 7 0; +#X connect 12 1 1 0; +#X connect 12 2 5 0; +#X connect 12 2 9 0; +#X connect 12 2 13 0; +#X connect 13 0 7 1; +#X restore 164 304 pd list_drip; +#X text 304 65 \$0-current-libdir - current libdir being tested; +#X obj 290 288 t a a; +#X obj 164 369 pack s s s; +#X text 249 369 ext current-libdir libdir; +#X msg 164 394 list \$3/extra/\$2/*\$1; +#N canvas 314 37 450 472 remove_help_patches 0; #X obj 40 14 inlet; #X obj 126 18 r \$0-ext; #X obj 126 43 sel .pd; @@ -167,29 +224,102 @@ #X connect 18 0 16 1; #X connect 19 0 20 0; #X connect 21 0 8 0; -#X restore 97 594 pd remove_help; -#X obj 513 120 s \$0-libdir; -#X text 293 407 \$0-ext - library extension (platform specific); -#X text 293 427 \$0-libdir - directory containing doc and extra; -#X text 293 447 \$0-reset - reset state for each libdir; -#X obj 197 453 r \$0-libdir; -#X obj 77 285 t a b a b; -#N canvas 443 86 450 557 get-creator-names 0; +#X restore 164 453 pd remove_help_patches; +#N canvas 0 0 450 300 remove_ext 0; +#X obj 28 30 inlet; +#X obj 78 150 r \$0-ext; +#X obj 78 205 list length; +#X obj 28 55 list fromsymbol; +#X obj 28 260 list split; +#X obj 28 80 t a a; +#X obj 60 115 list length; +#X obj 60 230 -; +#X obj 28 285 list tosymbol; +#X obj 28 310 outlet; +#X obj 78 175 list fromsymbol; +#X connect 0 0 3 0; +#X connect 1 0 10 0; +#X connect 2 0 7 1; +#X connect 3 0 5 0; +#X connect 4 0 8 0; +#X connect 5 0 4 0; +#X connect 5 1 6 0; +#X connect 6 0 7 0; +#X connect 7 0 4 1; +#X connect 8 0 9 0; +#X connect 10 0 2 0; +#X restore 164 479 pd remove_ext; +#N canvas 70 66 589 509 test_load_with_declare 0; +#X obj 64 21 inlet; +#N canvas 0 0 450 300 \$0-load_declare 0; +#X restore 153 319 pd \$0-load_declare; +#X obj 153 161 f; +#X obj 183 161 + 1; +#X obj 153 186 * 30; +#X obj 153 216 pack f s; +#X obj 153 291 s pd-\$0-load_declare; +#X obj 306 77 t b b; +#X msg 171 132 0; +#X msg 338 246 clear; +#X msg 153 246 obj 5 \$1 declare -lib \$2; +#X obj 64 56 trigger bang bang anything; +#X msg 64 246 clear; +#X text 59 354 Load each object by dynamically instantiating a [declare +-lib libname]. We must clear the subpatch afterward as well to make +sure we don't accidentally start with some loaded libs after editing +this patch. Since Pd doesn't have any way to unload a library this +works.; +#X text 111 21 load a lib; +#X obj 306 22 r \$0-current-libdir; +#X text 361 49 reset for each libdir; +#X connect 0 0 11 0; +#X connect 2 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 2 1; +#X connect 4 0 5 0; +#X connect 5 0 10 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 8 0 2 1; +#X connect 9 0 6 0; +#X connect 10 0 6 0; +#X connect 11 0 12 0; +#X connect 11 1 2 0; +#X connect 11 2 5 1; +#X connect 12 0 6 0; +#X connect 15 0 7 0; +#X restore 164 509 pd test_load_with_declare; +#N canvas 464 46 450 650 get-creator-names 0; #X obj 41 22 inlet; -#X obj 51 356 outlet; +#X obj 41 586 outlet; #X obj 141 54 r \$0-last-objectmaker-methodspace-length; -#X obj 100 167 -; +#X obj 41 137 -; #X obj 41 107 classinfo objectmaker; #X msg 41 82 methods; -#X obj 51 208 until; -#X obj 51 249 f; -#X obj 94 249 + 1; -#X obj 51 284 classinfo objectmaker; -#X obj 151 181 t a; +#X obj 41 168 until; +#X obj 41 209 f; +#X obj 84 209 + 1; +#X obj 41 244 classinfo objectmaker; +#X obj 141 137 t a; #X obj 41 47 bang; -#X obj 51 309 t a a; -#X obj 140 355 print testing; -#X msg 123 329 \$1; +#X obj 41 269 t a a; +#X obj 210 241 r \$0-libdir; +#X obj 210 296 list fromsymbol; +#X obj 210 321 list length; +#X obj 73 296 list split 1; +#X obj 73 321 list fromsymbol; +#X obj 73 356 list split; +#X obj 179 425 select s; +#X msg 179 450 1; +#X obj 232 450 b; +#X msg 232 475 0; +#X obj 41 507 list prepend; +#X obj 41 532 route 1; +#X obj 41 557 list; +#X text 110 532 filter out creators that aren't absolute paths; +#X text 110 552 otherwise we get unmanageable namespace clashes; +#X obj 210 271 trigger anything anything; +#X obj 73 391 list tosymbol; #X connect 0 0 11 0; #X connect 2 0 3 1; #X connect 2 0 10 0; @@ -203,110 +333,93 @@ #X connect 9 0 12 0; #X connect 10 0 7 1; #X connect 11 0 5 0; -#X connect 12 0 1 0; -#X connect 12 1 14 0; -#X connect 14 0 13 0; -#X restore 77 686 pd get-creator-names; -#N canvas 228 256 450 346 test-object 0; -#X obj 86 36 inlet; -#X text 132 34 creator_name argtype1 argtype2 etc.; -#N canvas 150 78 649 452 right_outlet_for_aliases 0; +#X connect 12 0 23 0; +#X connect 12 1 16 0; +#X connect 13 0 28 0; +#X connect 14 0 15 0; +#X connect 15 0 18 1; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 29 0; +#X connect 18 2 29 0; +#X connect 19 0 20 0; +#X connect 19 1 21 0; +#X connect 20 0 23 1; +#X connect 21 0 22 0; +#X connect 22 0 23 1; +#X connect 23 0 24 0; +#X connect 24 0 25 0; +#X connect 25 0 1 0; +#X connect 28 0 14 0; +#X connect 28 1 19 1; +#X connect 29 0 19 0; +#X restore 132 543 pd get-creator-names; +#N canvas 238 135 450 346 test-object 0; +#X obj 26 36 inlet; +#X text 72 34 creator_name argtype1 argtype2 etc.; +#N canvas 372 37 649 659 right_outlet_for_aliases 0; #X obj 70 25 inlet; #X obj 70 50 t a a; #X obj 102 78 list split 1; -#X obj 102 103 t b a; -#X msg 102 128 0; -#X obj 102 183 b; -#X msg 102 208 0; -#X msg 162 208 1; -#X obj 70 248 list prepend; -#X obj 70 273 route 0 1; -#X obj 70 358 outlet; -#X obj 121 358 outlet; -#X obj 102 158 classinfo; +#X obj 135 303 t b a; +#X msg 135 328 0; +#X obj 135 383 b; +#X msg 135 408 0; +#X msg 195 408 1; +#X obj 70 448 list prepend; +#X obj 70 473 route 0 1; +#X obj 70 558 outlet; +#X obj 121 558 outlet; +#X obj 135 358 classinfo; +#X obj 70 498 list; +#X obj 107 498 list; #X text 196 23 Check if we're a lone creator name with no corresponding -class name. If so \, we are an alias and should skip the next class-based -test(s) by going to the right outlet.; -#X obj 70 298 list; -#X obj 107 298 list; +class name. If so \, we are an alias and should skip any class-based +tests; +#X obj 102 133 list fromsymbol; +#X obj 329 89 r \$0-libdir; +#X obj 439 87 r \$0-current-libdir; +#X obj 290 140 symbol; +#X obj 400 140 symbol; +#X obj 102 103 trigger anything bang bang; +#X obj 290 165 pack s s; +#X msg 290 190 symbol \$1/\$2/; +#X obj 290 215 list fromsymbol; +#X obj 290 240 list length; +#X obj 102 273 list split; +#X obj 171 328 list tosymbol; #X connect 0 0 1 0; #X connect 1 0 8 0; #X connect 1 1 2 0; -#X connect 2 0 3 0; +#X connect 2 0 21 0; #X connect 3 0 4 0; -#X connect 3 1 12 1; +#X connect 3 1 27 0; #X connect 4 0 12 0; #X connect 5 0 6 0; #X connect 6 0 8 1; #X connect 7 0 8 1; #X connect 8 0 9 0; -#X connect 9 0 14 0; -#X connect 9 1 15 0; +#X connect 9 0 13 0; +#X connect 9 1 14 0; #X connect 12 0 5 0; #X connect 12 1 7 0; -#X connect 14 0 10 0; -#X connect 15 0 11 0; -#X restore 86 61 pd right_outlet_for_aliases; -#N canvas 182 119 522 576 namespace_collisions 0; -#X obj 40 15 inlet; -#X obj 60 98 list split 1; -#X obj 60 123 t b a; -#X msg 60 148 externdir; -#X obj 310 63 r \$0-current-libdir-name; -#X obj 219 63 r \$0-libdir; -#X obj 180 108 symbol; -#X obj 246 107 symbol; -#X msg 180 168 symbol \$1/extra/\$2; -#X obj 60 174 classinfo; -#X obj 60 232 select; -#X obj 40 40 t a a b b; -#X msg 60 257 0; -#X obj 98 256 b; -#X msg 98 281 1; -#X obj 40 321 list prepend; -#X obj 40 346 route 0 1; -#X obj 40 521 outlet; -#X obj 70 457 s \$0-fail; -#X obj 70 403 pack s s s; -#X obj 70 377 list split 1; -#X obj 60 199 trigger anything anything; -#X msg 70 431 \$1: externdir mismatch: expected \$2 but got \$3; -#X obj 180 143 pack s s; -#X obj 40 489 list; -#X obj 259 278 print externdir; -#X connect 0 0 11 0; -#X connect 1 0 2 0; -#X connect 2 0 3 0; -#X connect 2 1 9 1; -#X connect 3 0 9 0; -#X connect 4 0 7 1; -#X connect 5 0 6 1; -#X connect 6 0 23 0; -#X connect 7 0 23 1; -#X connect 8 0 10 1; -#X connect 8 0 19 1; -#X connect 9 0 21 0; -#X connect 9 0 25 0; -#X connect 10 0 12 0; -#X connect 10 1 13 0; -#X connect 11 0 15 0; -#X connect 11 1 1 0; -#X connect 11 2 6 0; -#X connect 11 3 7 0; -#X connect 12 0 15 1; -#X connect 13 0 14 0; -#X connect 14 0 15 1; -#X connect 15 0 16 0; -#X connect 16 0 24 0; -#X connect 16 1 20 0; +#X connect 13 0 10 0; +#X connect 14 0 11 0; +#X connect 16 0 26 0; +#X connect 17 0 19 1; +#X connect 18 0 20 1; #X connect 19 0 22 0; -#X connect 20 0 19 0; -#X connect 21 0 10 0; -#X connect 21 1 19 2; -#X connect 22 0 18 0; -#X connect 23 0 8 0; -#X connect 24 0 17 0; -#X restore 17 308 pd namespace_collisions; +#X connect 20 0 22 1; +#X connect 21 0 16 0; +#X connect 21 1 19 0; +#X connect 21 2 20 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 24 0 25 0; +#X connect 25 0 26 1; +#X connect 26 1 3 0; +#X connect 27 0 12 1; +#X restore 194 79 pd right_outlet_for_aliases; #N canvas 3 25 740 694 load_the_object 0; #X obj 22 13 inlet; #X obj 86 115 list split 1; @@ -482,11 +595,11 @@ may be other oddities in external libs with regard to libdir prefixes. #X connect 25 1 26 0; #X connect 26 0 21 0; #X connect 26 1 1 0; -#X restore 86 156 pd load_the_object; +#X restore 26 156 pd load_the_object; #N canvas 268 243 450 346 \$0-load_the_object_subpatch 0; -#X restore 231 157 pd \$0-load_the_object_subpatch; -#X msg 86 241 clear; -#X obj 86 266 s pd-\$0-load_the_object_subpatch; +#X restore 171 157 pd \$0-load_the_object_subpatch; +#X msg 26 241 clear; +#X obj 26 266 s pd-\$0-load_the_object_subpatch; #N canvas 99 25 704 622 check_for_namespace_collisions 0; #X obj 42 26 inlet; #X obj 42 51 t a a; @@ -579,163 +692,59 @@ nameclash is in the current library we're testing then we ignore it. #X connect 22 0 13 0; #X connect 23 0 24 1; #X connect 24 0 22 0; -#X restore 86 104 pd check_for_namespace_collisions; +#X restore 194 114 pd check_for_namespace_collisions; +#X obj 26 61 t a a; +#X obj 58 114 print testing; +#X obj 58 89 list split 1; +#X connect 0 0 8 0; +#X connect 2 0 7 0; +#X connect 2 1 7 0; +#X connect 3 0 5 0; +#X connect 5 0 6 0; +#X connect 8 0 3 0; +#X connect 8 1 10 0; +#X connect 10 0 9 0; +#X restore 132 574 pd test-object; +#X obj 164 239 trigger bang anything anything; +#X msg 371 263 methods; +#X obj 371 288 classinfo objectmaker; +#X obj 371 313 s \$0-last-objectmaker-methodspace-length; +#X text 304 85 \$0-last-objectmaker-methodspace-length; +#X text 304 105 \$0-ext; +#N canvas 454 133 450 323 set_\$0-libdir 0; +#X obj 49 48 inlet; +#X obj 49 137 pdinfo; +#X obj 49 78 b; +#X msg 49 108 libdir; +#X obj 49 198 outlet; +#X text 97 48 get the directory where extra/ and doc/ live; +#X obj 49 162 trigger anything anything; +#X obj 221 198 s \$0-libdir; #X connect 0 0 2 0; -#X connect 2 0 8 0; -#X connect 2 1 8 0; -#X connect 4 0 6 0; -#X connect 6 0 7 0; -#X connect 8 0 4 0; -#X restore 77 716 pd test-object; -#X obj 249 340 classinfo objectmaker; -#X msg 249 315 methods; -#X text 293 467 \$0-last-objectmaker-methodspace-length; -#X obj 249 370 s \$0-last-objectmaker-methodspace-length; -#X text 293 487 \$0-current-libdir-name; -#X text 293 507 \$0-fail; -#N canvas 245 192 382 392 drip 0; -#X obj 67 30 inlet; -#X obj 102 83 list length; -#X obj 102 108 until; -#X obj 102 163 f; -#X obj 102 188 + 1; -#X msg 274 263 set; -#X msg 66 307 \$1 \, \$2 \,; -#X obj 66 263 list; -#X msg 102 263 adddollar \$1 \, addcomma; -#X msg 150 126 0; -#X obj 66 332 symbol; -#X obj 66 357 outlet; -#X obj 67 55 trigger anything anything bang; -#X obj 144 224 b; -#X connect 0 0 12 0; -#X connect 1 0 2 0; +#X connect 1 0 6 0; #X connect 2 0 3 0; -#X connect 3 0 4 0; -#X connect 4 0 3 1; -#X connect 4 0 8 0; -#X connect 5 0 6 0; -#X connect 6 0 10 0; -#X connect 7 0 6 0; -#X connect 8 0 6 0; -#X connect 9 0 3 1; -#X connect 10 0 11 0; -#X connect 12 0 7 0; -#X connect 12 1 1 0; -#X connect 12 2 5 0; -#X connect 12 2 9 0; -#X connect 12 2 13 0; -#X connect 13 0 7 1; -#X restore 77 198 pd drip; -#N canvas 245 192 382 392 drip 0; +#X connect 3 0 1 0; +#X connect 6 0 4 0; +#X connect 6 1 7 0; +#X restore 61 66 pd set_\$0-libdir; +#N canvas 246 217 382 392 set_\$0-current_libdir 0; #X obj 67 30 inlet; -#X obj 102 83 list length; -#X obj 102 108 until; -#X obj 102 163 f; -#X obj 102 188 + 1; -#X msg 274 263 set; -#X msg 66 307 \$1 \, \$2 \, \$3 \,; -#X obj 66 263 list; -#X msg 102 263 adddollar \$1 \, addcomma; -#X msg 150 126 0; -#X obj 66 332 symbol; -#X obj 66 357 outlet; -#X obj 67 55 trigger anything anything bang; -#X obj 144 224 b; -#X connect 0 0 12 0; +#X obj 67 55 trigger anything anything; +#X obj 67 80 outlet; +#X obj 202 81 s \$0-current-libdir; +#X connect 0 0 1 0; #X connect 1 0 2 0; -#X connect 2 0 3 0; -#X connect 3 0 4 0; -#X connect 4 0 3 1; -#X connect 4 0 8 0; -#X connect 5 0 6 0; -#X connect 6 0 10 0; -#X connect 7 0 6 0; -#X connect 8 0 6 0; -#X connect 9 0 3 1; -#X connect 10 0 11 0; -#X connect 12 0 7 0; -#X connect 12 1 1 0; -#X connect 12 2 5 0; -#X connect 12 2 9 0; -#X connect 12 2 13 0; -#X connect 13 0 7 1; -#X restore 97 398 pd drip; -#X msg 97 542 list \$3/extra/\$2/*\$1; -#N canvas 500 53 450 404 test_path 0; -#X obj 41 33 inlet; -#X obj 41 138 outlet; -#X obj 94 33 r \$0-libdir; -#X obj 41 63 pack s s; -#X msg 41 113 symbol \$2/extra/\$1; -#X connect 0 0 3 0; -#X connect 2 0 3 1; -#X connect 3 0 4 0; -#X connect 4 0 1 0; -#X restore 269 569 pd test_path; -#X obj 269 594 t a b; -#N canvas 384 25 589 486 test_load_and_path_with_declare 0; -#X obj 64 21 inlet; -#N canvas 0 0 450 300 \$0-load_declare 0; -#X restore 647 149 pd \$0-load_declare; -#X obj 153 161 f; -#X obj 183 161 + 1; -#X obj 153 186 * 30; -#X obj 153 216 pack f s; -#X obj 153 291 s pd-\$0-load_declare; -#X obj 596 22 inlet; -#X obj 596 77 t b b; -#X msg 171 132 0; -#X msg 628 246 clear; -#X msg 153 246 obj 5 \$1 declare -lib \$2; -#X obj 64 56 trigger bang bang anything; -#X msg 64 246 clear; -#X text 59 324 Load each object by dynamically instantiating a [declare --lib libname]. We must clear the subpatch afterward as well to make -sure we don't accidentally start with some loaded libs after editing -this patch. Since Pd doesn't have any way to unload a library this -works.; -#X obj 334 21 inlet; -#X obj 423 161 f; -#X obj 453 161 + 1; -#X obj 423 186 * 30; -#X obj 423 216 pack f s; -#X msg 441 132 0; -#X obj 334 56 trigger bang bang anything; -#X msg 334 246 clear; -#X msg 423 246 obj 5 \$1 declare -path \$2; -#X text 111 21 load a lib; -#X text 380 22 set a path; -#X connect 0 0 12 0; -#X connect 2 0 3 0; -#X connect 2 0 4 0; -#X connect 3 0 2 1; -#X connect 4 0 5 0; -#X connect 5 0 11 0; -#X connect 7 0 8 0; -#X connect 8 0 9 0; -#X connect 8 0 20 0; -#X connect 8 1 10 0; -#X connect 9 0 2 1; -#X connect 10 0 6 0; -#X connect 11 0 6 0; -#X connect 12 0 13 0; -#X connect 12 1 2 0; -#X connect 12 2 5 1; -#X connect 13 0 6 0; -#X connect 15 0 21 0; -#X connect 16 0 17 0; -#X connect 16 0 18 0; -#X connect 17 0 16 1; -#X connect 18 0 19 0; -#X connect 19 0 23 0; -#X connect 20 0 16 1; -#X connect 21 0 22 0; -#X connect 21 1 16 0; -#X connect 21 2 19 1; -#X connect 22 0 6 0; -#X connect 23 0 6 0; -#X restore 97 654 pd test_load_and_path_with_declare; +#X connect 1 1 3 0; +#X restore 132 184 pd set_\$0-current_libdir; +#N canvas 0 0 450 300 set_\$0-ext 0; +#X obj 78 44 inlet; +#X obj 78 69 trigger anything anything; +#X obj 78 94 outlet; +#X obj 250 94 s \$0-ext; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X restore 164 329 pd set_\$0-ext; #N canvas 259 121 571 514 results 0; #X obj 62 25 inlet; #X obj 235 33 r \$0-current-libdir-name; @@ -805,74 +814,34 @@ works.; #X connect 29 1 30 0; #X connect 30 0 27 0; #X connect 31 0 27 0; -#X restore 37 756 pd results; -#X obj 249 284 s \$0-current-libdir-name; -#X obj 77 223 trigger anything anything; -#X obj 674 284 t a; -#X obj 674 504 t a; -#X msg 77 72 libdir cyclone zexy creb cxc iemlib list-abs mapping markex -maxlib memento mjlib motex osx pddp pdogg pixeltango pmpd rradical -sigpack smlib unauthorized vbap pan freeverb~ hcs jmmmp ext13 ggee -iem_anything ekext hexloader disis lyonpotpourri; -#X obj 37 44 t b b b b; -#N canvas 319 177 550 418 libs_not_loaded_by_default 0; -#X obj 10 11 inlet; -#X obj 10 251 outlet; -#X text 104 243 problems; -#X text 104 263 iem_tab: 45 classes that refuse to create without args -; -#X text 104 283 tof: param class is too complex to easily give default -args; -#X msg 10 36 adaptive arraysize autotune~ bassemu~ bob~ boids bonk~ -bsaylor choice comport controctopus fluid~ hid iem16 iem_adaptfilt -iem_ambi iem_bin_ambi iem_delay iemgui iemmatrix iem_roomsim iem_spec2 -iemxmlrpc jasch_lib K12 la-kitchen loop~ lrshift~ memento-p mjlib moocow -moonlib motex mrpeach nsend pan pd~ pdcontainer pd-wavelet pique plugin~ -pmpd purepd rjlib rradical rtc sfruit sigmund~ stdout timestretch windowing -; -#X connect 0 0 5 0; -#X connect 5 0 1 0; -#X restore 57 164 pd libs_not_loaded_by_default; -#X text 269 163 <- two libraries to go: tof and iem_tab; -#X obj 476 290 print next_library; -#X connect 0 0 2 0; -#X connect 1 0 4 0; -#X connect 2 0 14 0; -#X connect 3 0 13 0; -#X connect 4 0 29 0; -#X connect 5 0 6 0; -#X connect 5 1 8 0; -#X connect 6 0 30 0; -#X connect 7 0 40 0; -#X connect 9 0 33 2; -#X connect 11 0 10 0; -#X connect 12 0 33 0; -#X connect 13 0 12 0; -#X connect 18 0 6 2; -#X connect 18 0 3 1; +#X restore 61 601 pd results; +#X obj 132 209 t a a; +#X obj 61 94 trigger bang bang bang anything; +#X connect 0 0 24 0; +#X connect 1 0 13 0; +#X connect 3 0 4 0; +#X connect 4 0 25 0; +#X connect 5 0 6 1; +#X connect 6 0 7 0; +#X connect 7 0 26 0; +#X connect 9 0 10 2; +#X connect 9 1 1 1; +#X connect 10 0 12 0; +#X connect 12 0 1 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 16 0 17 0; +#X connect 18 0 6 0; +#X connect 18 1 10 1; +#X connect 18 2 19 0; #X connect 19 0 20 0; -#X connect 19 1 1 0; -#X connect 19 2 6 1; -#X connect 19 3 10 0; -#X connect 19 3 23 0; #X connect 20 0 21 0; -#X connect 22 0 25 0; -#X connect 23 0 22 0; -#X connect 28 0 36 0; -#X connect 29 0 5 0; -#X connect 30 0 3 0; -#X connect 31 0 32 0; -#X connect 32 0 33 1; -#X connect 32 1 33 2; -#X connect 36 0 19 0; -#X connect 36 1 35 0; -#X connect 36 1 37 0; -#X connect 36 1 43 0; -#X connect 37 0 38 0; -#X connect 38 0 31 0; -#X connect 39 0 28 0; -#X connect 40 0 34 0; -#X connect 40 1 41 0; -#X connect 40 2 39 0; -#X connect 40 3 0 0; -#X connect 41 0 28 0; +#X connect 24 0 29 0; +#X connect 25 0 28 0; +#X connect 26 0 10 0; +#X connect 28 0 16 0; +#X connect 28 1 18 0; +#X connect 29 0 27 0; +#X connect 29 1 3 0; +#X connect 29 2 5 0; +#X connect 29 3 9 0; -- GitLab