Browse Source

filter out multiples on recall, suppress errors when creating multiples of abstractions

m---w 11 years ago
parent
commit
c9b32564d3
11 changed files with 482 additions and 447 deletions
  1. 2 3
      _DS_TEST.pd
  2. 23 17
      anyonce.pd
  3. 28 28
      ds_gui.pd
  4. 75 70
      ds_logic.pd
  5. 242 247
      ds_reg.pd
  6. 23 17
      ds_reg_settings.pd
  7. 6 4
      ds_route.pd
  8. 43 33
      ds_scheduler.pd
  9. 17 11
      ds_transition.pd
  10. 1 1
      ds_transition_occupy.pd
  11. 22 16
      loadonce.pd

+ 2 - 3
_DS_TEST.pd

@@ -1,4 +1,4 @@
-#N canvas 204 22 1075 737 10;
+#N canvas 187 22 1075 737 10;
 #X floatatom 70 449 5 0 0 0 - - -;
 #X msg 70 468 list kjbasd 9b2f #*lafn \$1_88 n\$1;
 #X obj 70 490 list;
@@ -27,14 +27,13 @@
 #X obj 60 66 ds_scheduler domain osc oscdomain;
 #X obj 60 86 ds_transition domain osc oscdomain;
 #X obj 60 46 ds_logic domain osc oscdomain;
-#X obj 679 548 ds_reg domain /variable1;
-#X obj 183 388 list-compare;
 #X obj 679 668 ds_reg domain /mytable1 table;
 #X obj 679 568 ds_reg domain /variable2;
 #X obj 679 588 ds_reg domain /variable3;
 #X obj 679 608 ds_reg domain /variable4;
 #X obj 679 628 ds_reg domain /variable5;
 #X obj 679 648 ds_reg domain /variable6;
+#X obj 679 548 ds_reg domain /variable1;
 #X connect 0 0 1 0;
 #X connect 1 0 2 0;
 #X connect 2 0 3 0;

+ 23 - 17
anyonce.pd

@@ -1,6 +1,5 @@
 #N canvas 186 196 403 513 10;
-#X obj 198 300 t f f;
-#X obj 225 326 + 1;
+#X obj 290 323 + 1;
 #X obj 146 102 inlet;
 #X obj 146 124 t b a b;
 #X obj 165 395 spigot;
@@ -11,18 +10,25 @@
 #X text 83 466 (c)2013 Marian Weger;
 #X obj 115 176 del 0;
 #X text 42 55 anyonce <name>;
-#X obj 225 346 v /anyonce/\$1;
-#X obj 198 275 v /anyonce/\$1;
-#X connect 0 0 5 0;
-#X connect 0 1 1 0;
-#X connect 1 0 12 0;
-#X connect 2 0 3 0;
-#X connect 3 0 10 0;
-#X connect 3 1 4 0;
-#X connect 3 2 13 0;
-#X connect 4 0 8 0;
-#X connect 5 0 4 1;
-#X connect 6 0 7 0;
-#X connect 7 0 13 0;
-#X connect 10 0 7 0;
-#X connect 13 0 0 0;
+#X obj 198 275 v anyonce-\$1;
+#X obj 290 343 v anyonce-\$1;
+#X obj 239 371 > 0;
+#X obj 239 393 sel 1;
+#X obj 239 415 outlet;
+#X obj 198 300 t f f f;
+#X connect 0 0 12 0;
+#X connect 1 0 2 0;
+#X connect 2 0 9 0;
+#X connect 2 1 3 0;
+#X connect 2 2 11 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 1;
+#X connect 5 0 6 0;
+#X connect 6 0 11 0;
+#X connect 9 0 6 0;
+#X connect 11 0 16 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 16 0 4 0;
+#X connect 16 1 13 0;
+#X connect 16 2 0 0;

+ 28 - 28
ds_gui.pd

@@ -10,7 +10,7 @@
 #X obj 174 183 bng 15 250 50 0 /ds/\$1/reload /ds/\$1/reload reload
 17 7 0 10 -4034 -1 -1;
 #X obj 123 119 nbx 3 15 0 1e+37 0 0 /ds/\$1/scene/current /ds/\$1/scene/current
-empty 0 -8 0 12 -204786 -1 -1 0 256;
+empty 0 -8 0 12 -204786 -1 -1 2 256;
 #X obj 104 119 bng 15 250 50 0 /ds/\$1/scene/current/prev /ds/\$1/scene/current/prev
 < 4 7 0 10 -204786 -1 -1;
 #X obj 174 119 bng 15 250 50 0 /ds/\$1/scene/current/next /ds/\$1/scene/current/next
@@ -22,7 +22,7 @@ advanced 17 7 0 10 -262144 -1 -1;
 #X obj 196 140 bng 15 250 50 0 /ds/\$1/store /ds/\$1/store store 17
 7 0 10 -258113 -1 -1;
 #X obj 123 140 nbx 3 15 0 1e+37 0 0 /ds/\$1/scene/selected /ds/\$1/scene/selected
-empty 0 -8 0 12 -261234 -1 -1 23 256;
+empty 0 -8 0 12 -261234 -1 -1 2 256;
 #X obj 104 140 bng 15 250 50 0 /ds/\$1/scene/selected/prev /ds/\$1/scene/selected/prev
 < 4 7 0 10 -261234 -1 -1;
 #X obj 174 140 bng 15 250 50 0 /ds/\$1/scene/selected/next /ds/\$1/scene/selected/next
@@ -262,46 +262,46 @@ debug 17 7 0 10 -262144 -1 -1 1 1;
 #X obj 136 101 r /ds/\$1/edit/vis;
 #X obj 136 126 anyonce /ds/\$1/edit/vis;
 #X obj 136 205 s pd-\$0-edit;
-#N canvas 97 54 219 276 \$0-edit 1;
-#X obj 4 -275 cnv 15 98 50 empty empty all 5 10 0 14 -233017 -66577
+#N canvas 97 54 215 278 \$0-edit 1;
+#X obj 4 -273 cnv 15 98 50 empty empty all 5 10 0 14 -233017 -66577
 0;
-#X obj 4 -221 cnv 15 200 30 empty empty selected 5 10 0 14 -233017
+#X obj 4 -219 cnv 15 200 30 empty empty selected 5 10 0 14 -233017
 -66577 0;
-#X obj 140 -211 nbx 5 14 -1e+37 1e+37 0 0 /ds/\$1/scene/selected /ds/\$1/scene/selected
-empty 0 -8 0 10 -261234 -1 -1 23 256;
-#X obj 14 -250 bng 15 250 50 0 /ds/\$1/edit/clear /ds/\$1/edit/clear
+#X obj 14 -248 bng 15 250 50 0 /ds/\$1/edit/clear /ds/\$1/edit/clear
 delete 17 7 0 10 -258113 -1 -1;
-#X obj 106 -275 cnv 15 98 50 empty empty lock 5 10 0 14 -1 -262144
+#X obj 106 -273 cnv 15 98 50 empty empty lock 5 10 0 14 -1 -262144
 0;
-#X obj 167 -262 tgl 25 0 /ds/\$1/edit/lock /ds/\$1/edit/lock empty
+#X obj 167 -260 tgl 25 0 /ds/\$1/edit/lock /ds/\$1/edit/lock empty
 22 12 0 10 -262144 -1 -262144 1 1;
-#X obj 4 -189 cnv 15 79 180 empty empty empty 5 10 0 14 -228856 -66577
+#X obj 4 -187 cnv 15 79 180 empty empty empty 5 10 0 14 -228856 -66577
 0;
-#X obj 85 -189 cnv 15 119 180 empty empty empty 5 10 0 14 -228856 -66577
+#X obj 85 -187 cnv 15 119 180 empty empty empty 5 10 0 14 -228856 -66577
 0;
-#X obj 14 -140 bng 15 250 50 0 /ds/\$1/edit/scene/cut /ds/\$1/edit/scene/cut
+#X obj 14 -138 bng 15 250 50 0 /ds/\$1/edit/scene/cut /ds/\$1/edit/scene/cut
 cut 17 7 0 10 -260097 -1 -1;
-#X obj 14 -120 bng 15 250 50 0 /ds/\$1/edit/scene/delete /ds/\$1/edit/scene/delete
+#X obj 14 -118 bng 15 250 50 0 /ds/\$1/edit/scene/delete /ds/\$1/edit/scene/delete
 delete 17 7 0 10 -258113 -1 -1;
-#X obj 94 -160 bng 15 250 50 0 /ds/\$1/edit/scene/paste-override /ds/\$1/edit/scene/paste-override
+#X obj 94 -158 bng 15 250 50 0 /ds/\$1/edit/scene/paste-override /ds/\$1/edit/scene/paste-override
 paste_overwrite 17 7 0 10 -4160 -1 -1;
-#X obj 14 -160 bng 15 250 50 0 /ds/\$1/edit/scene/copy /ds/\$1/edit/scene/copy
+#X obj 14 -158 bng 15 250 50 0 /ds/\$1/edit/scene/copy /ds/\$1/edit/scene/copy
 copy 17 7 0 10 -257985 -1 -1;
-#X obj 94 -120 bng 15 250 50 0 /ds/\$1/edit/scene/insert /ds/\$1/edit/scene/insert
+#X obj 94 -118 bng 15 250 50 0 /ds/\$1/edit/scene/insert /ds/\$1/edit/scene/insert
 insert_blank 17 7 0 10 -4034 -1 -1;
-#X obj 94 -140 bng 15 250 50 0 /ds/\$1/edit/scene/paste-insert /ds/\$1/edit/scene/paste-insert
+#X obj 94 -138 bng 15 250 50 0 /ds/\$1/edit/scene/paste-insert /ds/\$1/edit/scene/paste-insert
 paste_insert 17 7 0 10 -4032 -1 -1;
-#X obj 14 -180 bng 15 250 50 0 /ds/\$1/edit/scene/clear /ds/\$1/edit/scene/clear
+#X obj 14 -178 bng 15 250 50 0 /ds/\$1/edit/scene/clear /ds/\$1/edit/scene/clear
 clear 17 7 0 10 -159808 -1 -1;
-#X obj 94 -50 tgl 15 0 /ds/\$1/edit/scene/paste/data /ds/\$1/edit/scene/paste/data
-data 17 7 0 10 -262144 -1 -1 0 1;
-#X obj 94 -90 tgl 15 0 /ds/\$1/edit/scene/paste/settings /ds/\$1/edit/scene/paste/settings
-settings 17 7 0 10 -262144 -1 -1 0 1;
-#X obj 94 -70 tgl 15 0 /ds/\$1/edit/scene/paste/tables /ds/\$1/edit/scene/paste/tables
-tables 17 7 0 10 -262144 -1 -1 0 1;
-#X obj 94 -30 tgl 15 0 /ds/\$1/edit/scene/paste/properties /ds/\$1/edit/scene/paste/properties
-properties 17 7 0 10 -262144 -1 -1 0 1;
-#X coords 0 276 1 275 85 60 0;
+#X obj 94 -48 tgl 15 0 /ds/\$1/edit/scene/paste/data /ds/\$1/edit/scene/paste/data
+data 17 7 0 10 -262144 -1 -1 1 1;
+#X obj 94 -88 tgl 15 0 /ds/\$1/edit/scene/paste/settings /ds/\$1/edit/scene/paste/settings
+settings 17 7 0 10 -262144 -1 -1 1 1;
+#X obj 94 -68 tgl 15 0 /ds/\$1/edit/scene/paste/tables /ds/\$1/edit/scene/paste/tables
+tables 17 7 0 10 -262144 -1 -1 1 1;
+#X obj 94 -28 tgl 15 0 /ds/\$1/edit/scene/paste/properties /ds/\$1/edit/scene/paste/properties
+properties 17 7 0 10 -262144 -1 -1 1 1;
+#X obj 124 -212 nbx 3 15 0 1e+37 0 0 /ds/\$1/scene/selected /ds/\$1/scene/selected
+empty 0 -8 0 12 -261234 -1 -1 0 256;
+#X coords 0 278 1 277 85 60 0;
 #X restore 136 231 pd \$0-edit;
 #X obj 221 205 s /ds/\$1/edit/lock;
 #X msg 221 183 1;

+ 75 - 70
ds_logic.pd

@@ -1,6 +1,6 @@
-#N canvas 302 158 655 559 10;
-#N canvas 88 236 314 267 init 0;
-#X obj 98 52 loadbang;
+#N canvas 171 172 655 559 10;
+#N canvas 551 144 492 260 init 0;
+#X obj 98 32 loadbang;
 #N canvas 0 22 460 359 LICENSE 0;
 #X msg 70 258 (c)2012 Marian Weger \, version 0.2a under GNU General
 Public License;
@@ -83,7 +83,7 @@ Public License;
 #X msg 86 121 \; /ds/\$1/filename unnamed_preset.txt \; /ds/\$1/scene/selected
 0 \; /ds/\$1/edit/lock 1 \; /ds/\$1/recall/data/state 1 \; /ds/\$1/recall/tables/state
 1 \; /ds/\$1/change 0 \; /ds/\$1/dispatch 1 \; /ds/\$1/print/errors/state
-1 \; /ds/\$1/print/info/state 1 \; /ds/\$1/print/debug/state 1 \; /ds/\$1/print/datastream/state
+1 \; /ds/\$1/print/info/state 1 \; /ds/\$1/print/debug/state 0 \; /ds/\$1/print/datastream/state
 0 \; /ds/\$1/store/data/state 1 \; /ds/\$1/store/tables/state 1 \;
 /ds/\$1/edit/scene/paste/data 1 \; /ds/\$1/edit/scene/paste/settings
 1 \; /ds/\$1/edit/scene/paste/tables 1 \; /ds/\$1/edit/scene/paste/properties
@@ -142,11 +142,17 @@ Public License;
 #X connect 18 0 3 0;
 #X connect 19 0 6 0;
 #X restore 115 164 pd MODULE_LOADER;
-#X connect 0 0 4 0;
+#X obj 98 54 loadonce /ds/\$1/logic/init;
+#X msg 251 84 ERROR [ds_logic] multiply defined!;
+#X obj 251 106 s /ds/\$1/print;
+#X connect 0 0 6 0;
 #X connect 4 0 2 0;
 #X connect 4 1 5 0;
 #X connect 4 2 3 0;
 #X connect 4 3 1 0;
+#X connect 6 0 4 0;
+#X connect 6 1 7 0;
+#X connect 7 0 8 0;
 #X restore 71 -116 pd init;
 #X text 346 -128 (corresponding gui: [ds_gui]);
 #X obj 71 304 outlet datastream;
@@ -198,7 +204,7 @@ Public License;
 #X obj 156 27 r /ds/\$1/scene/current;
 #X obj 53 27 r /ds/\$1/recall;
 #X obj 53 109 f 0;
-#X obj 84 269 r \$0-dispatch-data;
+#X obj 84 289 r \$0-dispatch-data;
 #X obj 156 49 t b f;
 #N canvas 139 136 783 551 VALIDITY_CHECK 0;
 #X obj 129 327 spigot;
@@ -235,7 +241,7 @@ Public License;
 #X connect 11 0 14 0;
 #X connect 12 0 4 1;
 #X connect 13 0 1 0;
-#X restore 53 137 pd VALIDITY_CHECK;
+#X restore 53 157 pd VALIDITY_CHECK;
 #N canvas 299 127 690 365 DATA_REQUEST 0;
 #X obj 167 134 list prepend \$0;
 #X obj 63 284 s;
@@ -261,8 +267,8 @@ Public License;
 #X connect 10 0 7 0;
 #X connect 10 1 6 0;
 #X connect 10 2 0 0;
-#X restore 84 239 pd DATA_REQUEST;
-#X obj 68 354 s \$0-recall-done;
+#X restore 84 259 pd DATA_REQUEST;
+#X obj 68 374 s \$0-recall-done;
 #N canvas 578 22 540 431 PRINT 0;
 #X msg 213 158 0;
 #X msg 79 158 1;
@@ -285,8 +291,8 @@ Public License;
 #X connect 8 0 9 0;
 #X connect 9 0 0 0;
 #X connect 10 0 1 0;
-#X restore 53 380 pd PRINT;
-#X obj 100 212 s \$0-recall-scene;
+#X restore 53 400 pd PRINT;
+#X obj 100 232 s \$0-recall-scene;
 #N canvas 395 62 732 545 FILTER 0;
 #X obj 141 34 inlet datastream;
 #X obj 141 86 route #;
@@ -387,13 +393,14 @@ Public License;
 #X connect 39 0 13 0;
 #X connect 40 0 24 0;
 #X connect 42 0 35 0;
-#X restore 84 292 pd FILTER;
-#X obj 84 315 s \$0-datastream;
-#X obj 53 161 t f b f f b;
-#X obj 116 186 s /ds/\$1/recall/start;
+#X restore 84 312 pd FILTER;
+#X obj 84 335 s \$0-datastream;
+#X obj 53 181 t f b f f b;
+#X obj 116 206 s /ds/\$1/recall/start;
+#X obj 53 131 anyonce /ds/\$1/logic/recall;
 #X connect 0 0 4 0;
 #X connect 1 0 2 0;
-#X connect 2 0 5 0;
+#X connect 2 0 14 0;
 #X connect 3 0 10 0;
 #X connect 4 0 2 0;
 #X connect 4 1 2 1;
@@ -404,18 +411,19 @@ Public License;
 #X connect 12 2 6 0;
 #X connect 12 3 9 0;
 #X connect 12 4 13 0;
+#X connect 14 0 5 0;
 #X restore 71 14 pd recall;
 #N canvas 72 22 513 573 store 0;
 #X obj 191 85 f 0;
 #X obj 206 57 r /ds/\$1/scene/selected;
 #X obj 191 23 r /ds/\$1/store;
-#X obj 81 282 r /ds/\$1/fetched;
-#X obj 81 306 list prepend add;
-#X obj 81 338 list trim;
-#X obj 238 376 s;
-#X obj 285 314 list prepend \$0;
-#X msg 285 338 symbol \$1-slot-\$2;
-#X msg 238 338 clear;
+#X obj 81 322 r /ds/\$1/fetched;
+#X obj 81 346 list prepend add;
+#X obj 81 378 list trim;
+#X obj 238 416 s;
+#X obj 285 354 list prepend \$0;
+#X msg 285 378 symbol \$1-slot-\$2;
+#X msg 238 378 clear;
 #N canvas 147 261 383 345 DATA 0;
 #X obj 76 250 s /ds/\$1/fetch/data;
 #X obj 76 157 spigot 1;
@@ -430,7 +438,7 @@ Public License;
 #X connect 3 1 5 0;
 #X connect 5 0 4 0;
 #X connect 6 0 1 0;
-#X restore 222 484 pd DATA;
+#X restore 222 524 pd DATA;
 #N canvas 0 22 450 300 TABLES 0;
 #X obj 81 106 spigot 1;
 #X obj 126 80 r /ds/\$1/store/tables/state;
@@ -445,7 +453,7 @@ Public License;
 #X connect 3 1 5 0;
 #X connect 5 0 4 0;
 #X connect 6 0 0 0;
-#X restore 241 458 pd TABLES;
+#X restore 241 498 pd TABLES;
 #N canvas 0 22 450 300 SETTINGS 0;
 #X obj 108 118 spigot 1;
 #X obj 153 92 r /ds/\$1/store/settings/state;
@@ -460,9 +468,9 @@ Public License;
 #X connect 3 1 5 0;
 #X connect 5 0 4 0;
 #X connect 6 0 0 0;
-#X restore 261 433 pd SETTINGS;
-#X obj 238 282 t b f;
-#X obj 254 131 t f f;
+#X restore 261 473 pd SETTINGS;
+#X obj 238 322 t b f;
+#X obj 254 171 t f f;
 #N canvas 0 22 450 300 PRINT_OVERWRITTEN 0;
 #X obj 131 61 inlet scene-nr;
 #X obj 131 145 list prepend scene;
@@ -471,7 +479,7 @@ Public License;
 #X connect 0 0 1 0;
 #X connect 1 0 2 0;
 #X connect 2 0 3 0;
-#X restore 293 224 pd PRINT_OVERWRITTEN;
+#X restore 293 264 pd PRINT_OVERWRITTEN;
 #N canvas 583 133 450 300 PRINT 0;
 #X obj 170 42 inlet scene-nr;
 #X obj 170 116 list prepend scene;
@@ -480,14 +488,15 @@ Public License;
 #X connect 0 0 1 0;
 #X connect 1 0 2 0;
 #X connect 2 0 3 0;
-#X restore 191 539 pd PRINT;
-#X obj 222 406 t f f f;
-#X obj 254 191 kdemux2;
-#X obj 254 251 s \$0-slot-create;
-#X obj 191 107 t f b f f f;
-#X obj 206 512 s /ds/\$1/scheduler/gui/update;
-#X obj 293 162 ds_slot-status-request \$1;
-#X connect 0 0 20 0;
+#X restore 191 579 pd PRINT;
+#X obj 222 446 t f f f;
+#X obj 254 231 kdemux2;
+#X obj 254 291 s \$0-slot-create;
+#X obj 191 147 t f b f f f;
+#X obj 206 552 s /ds/\$1/scheduler/gui/update;
+#X obj 293 202 ds_slot-status-request \$1;
+#X obj 191 107 anyonce /ds/\$1/logic/store;
+#X connect 0 0 23 0;
 #X connect 1 0 0 1;
 #X connect 2 0 0 0;
 #X connect 3 0 4 0;
@@ -511,12 +520,13 @@ Public License;
 #X connect 20 3 13 0;
 #X connect 20 4 14 0;
 #X connect 22 0 18 1;
+#X connect 23 0 20 0;
 #X restore 71 54 pd store;
 #N canvas 187 150 444 525 save 0;
 #X obj 86 420 list append cr;
 #X obj 86 467 list trim;
 #X obj 86 397 list prepend write;
-#X obj 71 94 r \$0-save;
+#X obj 71 64 r \$0-save;
 #X obj 86 513 s \$0-slot-main;
 #X msg 21 359 clear;
 #X obj 293 397 r \$0-save-data;
@@ -630,10 +640,11 @@ Public License;
 #X restore 118 207 pd GLOBAL;
 #X obj 71 126 t l l b b b;
 #X obj 102 259 t f f f;
+#X obj 71 86 anyonce /ds/\$1/logic/save;
 #X connect 0 0 1 0;
 #X connect 1 0 4 0;
 #X connect 2 0 0 0;
-#X connect 3 0 14 0;
+#X connect 3 0 16 0;
 #X connect 5 0 4 0;
 #X connect 6 0 7 0;
 #X connect 7 0 1 0;
@@ -646,6 +657,7 @@ Public License;
 #X connect 15 0 10 0;
 #X connect 15 1 12 0;
 #X connect 15 2 11 0;
+#X connect 16 0 14 0;
 #X coords 0 525 1 524 85 60 0;
 #X restore 71 -6 pd save;
 #N canvas 83 22 616 753 load 0;
@@ -658,7 +670,7 @@ Public License;
 #X obj 305 839 t b a;
 #X obj 31 267 route ========================;
 #X obj 153 315 route GLOBAL SCENE;
-#X obj 31 41 r \$0-load;
+#X obj 31 21 r \$0-load;
 #X obj 31 780 list prepend add;
 #X obj 305 450 unpack f;
 #X msg 305 804 symbol \$1-slot-\$2;
@@ -819,6 +831,7 @@ Public License;
 #X obj 308 130 s /ds/\$1/scheduler/gui/update;
 #X obj 308 110 del 0;
 #X obj 324 542 ds_slot-status-request \$1;
+#X obj 31 43 anyonce /ds/\$1/logic/load;
 #X connect 0 0 3 0;
 #X connect 0 0 30 0;
 #X connect 0 0 34 0;
@@ -833,7 +846,7 @@ Public License;
 #X connect 8 0 0 0;
 #X connect 8 1 32 0;
 #X connect 8 2 33 0;
-#X connect 9 0 39 0;
+#X connect 9 0 45 0;
 #X connect 10 0 2 0;
 #X connect 11 0 24 0;
 #X connect 12 0 6 0;
@@ -870,6 +883,7 @@ Public License;
 #X connect 41 0 43 0;
 #X connect 43 0 42 0;
 #X connect 44 0 15 0;
+#X connect 45 0 39 0;
 #X coords 0 753 1 752 85 60 0;
 #X restore 71 -26 pd load;
 #N canvas 0 22 334 258 slot-main 0;
@@ -885,7 +899,7 @@ Public License;
 #X connect 2 1 0 0;
 #X connect 3 0 2 0;
 #X restore 71 74 pd slot-main;
-#N canvas 78 22 1011 756 slot-create 1;
+#N canvas 78 22 1011 756 slot-create 0;
 #X msg 596 972 clear;
 #X obj 585 995 s pd-\$0-scene-slots;
 #X obj 149 588 list prepend \$1 \$0;
@@ -1153,7 +1167,7 @@ Public License;
 #X obj 46 311 ds_reg_global \$1 /print/debug/state;
 #X restore 71 -76 pd global_registers;
 #N canvas 374 206 450 300 \$0-modules 0;
-#X obj 30 9630 ds_logic_osc domain oscdomain 0 0 0 0 0;
+#X obj 30 50 ds_logic_osc domain oscdomain 0 0 0 0 0;
 #X restore 71 -96 pd \$0-modules;
 #N canvas 0 22 450 300 current_scene 0;
 #X obj 81 121 r /ds/\$1/scene;
@@ -1623,33 +1637,24 @@ subsequent incremented.;
 #X connect 15 0 7 1;
 #X restore 353 -26 pd clear;
 #N canvas 107 247 415 286 \$0-scene-slots 0;
-#N canvas 0 22 450 300 1174-slot-0 0;
-#X obj 30 20 ds_logic_slot domain 1174 0;
-#X restore 30 20 pd 1174-slot-0;
-#N canvas 0 22 450 300 1174-slot-1 0;
-#X obj 30 20 ds_logic_slot domain 1174 1;
-#X restore 30 40 pd 1174-slot-1;
-#N canvas 0 22 450 300 1174-slot-2 0;
-#X restore 30 60 pd 1174-slot-2;
-#N canvas 0 22 450 300 1174-slot-10 0;
-#X obj 30 20 ds_logic_slot domain 1174 10;
-#X restore 30 220 pd 1174-slot-10;
-#N canvas 0 22 450 300 1174-slot-100 0;
-#X obj 30 20 ds_logic_slot domain 1174 100;
-#X restore 30 2020 pd 1174-slot-100;
-#N canvas 0 22 450 300 1174-slot-9 0;
-#X restore 30 200 pd 1174-slot-9;
-#N canvas 0 22 450 300 1174-slot-99 0;
-#X restore 30 2000 pd 1174-slot-99;
-#N canvas 0 22 450 300 1174-slot-100 0;
-#X obj 30 20 ds_logic_slot domain 1174 100;
-#X restore 30 2020 pd 1174-slot-100;
-#N canvas 0 22 450 300 1174-slot-10 0;
-#X obj 30 20 ds_logic_slot domain 1174 10;
-#X restore 30 220 pd 1174-slot-10;
-#N canvas 0 22 450 300 1174-slot-4 0;
-#X obj 30 20 ds_logic_slot domain 1174 4;
-#X restore 30 100 pd 1174-slot-4;
+#N canvas 0 22 450 300 1160-slot-0 0;
+#X obj 30 20 ds_logic_slot domain 1160 0;
+#X restore 30 20 pd 1160-slot-0;
+#N canvas 0 22 450 300 1160-slot-1 0;
+#X obj 30 20 ds_logic_slot domain 1160 1;
+#X restore 30 40 pd 1160-slot-1;
+#N canvas 0 22 450 300 1160-slot-2 0;
+#X restore 30 60 pd 1160-slot-2;
+#N canvas 0 22 450 300 1160-slot-10 0;
+#X restore 30 220 pd 1160-slot-10;
+#N canvas 0 22 450 300 1160-slot-100 0;
+#X restore 30 2020 pd 1160-slot-100;
+#N canvas 0 22 450 300 1160-slot-9 0;
+#X obj 30 20 ds_logic_slot domain 1160 9;
+#X restore 30 200 pd 1160-slot-9;
+#N canvas 0 22 450 300 1160-slot-99 0;
+#X obj 30 20 ds_logic_slot domain 1160 99;
+#X restore 30 2000 pd 1160-slot-99;
 #X restore 71 134 pd \$0-scene-slots;
 #N canvas 47 22 475 654 paste_overwrite 0;
 #X obj 80 183 f 0;

+ 242 - 247
ds_reg.pd

@@ -1,45 +1,45 @@
 #N canvas 659 123 444 499 10;
 #N canvas 229 22 611 756 dispatch 0;
-#X obj 145 1090 list trim;
-#X obj 94 475 t b a;
-#X obj 145 578 kdemux2;
-#X obj 58 130 t a a;
-#X obj 37 224 route bang;
+#X obj 145 1120 list trim;
+#X obj 94 505 t b a;
+#X obj 145 608 kdemux2;
+#X obj 58 160 t a a;
+#X obj 37 254 route bang;
 #X obj 37 80 r /ds/\$1\$2/redispatch;
 #X obj 58 103 r /ds/\$1\$2/dispatch;
-#X obj 184 614 list prepend;
-#X obj 145 1563 s;
-#X obj 160 1518 list trim;
-#X obj 160 1540 symbol;
-#X obj 160 1176 list prepend \$2;
-#X obj 184 530 t b a;
-#X msg 184 552 1;
-#X obj 145 718 kdemux2;
-#X obj 184 670 t b a;
-#X msg 184 692 1;
-#X obj 184 754 list append;
-#X obj 160 1278 kdemux2;
-#X obj 199 1230 t b a;
-#X msg 199 1252 1;
-#X obj 199 1301 list prepend;
-#X msg 199 1323 \$1\$2;
-#X obj 160 1428 kdemux2;
-#X obj 199 1380 t b a;
-#X msg 199 1402 1;
-#X msg 199 1473 \$1\$2;
-#X obj 199 1451 list append;
-#X obj 160 1130 r \$0-init-complete;
-#X obj 199 1358 r /ds/\$1\$2/name_append;
-#X obj 199 1208 r /ds/\$1\$2/name_prepend;
-#X obj 184 508 r /ds/\$1\$2/data_prepend;
-#X obj 184 648 r /ds/\$1\$2/data_append;
-#X obj 94 412 kdemux2 1;
-#X obj 145 319 r /ds/\$1/transition/state;
-#X obj 37 154 list;
-#X obj 160 1152 b;
-#X obj 145 437 s /ds/\$1\$2/transition/in;
-#X obj 145 475 r /ds/\$1\$2/transition/out;
-#X obj 94 1608 s /ds/\$1\$2/dispatched;
+#X obj 184 644 list prepend;
+#X obj 145 1593 s;
+#X obj 160 1548 list trim;
+#X obj 160 1570 symbol;
+#X obj 160 1206 list prepend \$2;
+#X obj 184 560 t b a;
+#X msg 184 582 1;
+#X obj 145 748 kdemux2;
+#X obj 184 700 t b a;
+#X msg 184 722 1;
+#X obj 184 784 list append;
+#X obj 160 1308 kdemux2;
+#X obj 199 1260 t b a;
+#X msg 199 1282 1;
+#X obj 199 1331 list prepend;
+#X msg 199 1353 \$1\$2;
+#X obj 160 1458 kdemux2;
+#X obj 199 1410 t b a;
+#X msg 199 1432 1;
+#X msg 199 1503 \$1\$2;
+#X obj 199 1481 list append;
+#X obj 160 1160 r \$0-init-complete;
+#X obj 199 1388 r /ds/\$1\$2/name_append;
+#X obj 199 1238 r /ds/\$1\$2/name_prepend;
+#X obj 184 538 r /ds/\$1\$2/data_prepend;
+#X obj 184 678 r /ds/\$1\$2/data_append;
+#X obj 94 442 kdemux2 1;
+#X obj 145 349 r /ds/\$1/transition/state;
+#X obj 37 184 list;
+#X obj 160 1182 b;
+#X obj 145 467 s /ds/\$1\$2/transition/in;
+#X obj 145 505 r /ds/\$1\$2/transition/out;
+#X obj 94 1638 s /ds/\$1\$2/dispatched;
 #N canvas 485 289 536 430 change 0;
 #X obj 105 43 inlet;
 #X obj 105 117 change;
@@ -91,29 +91,30 @@
 #X connect 20 0 18 0;
 #X connect 20 1 19 1;
 #X connect 21 0 19 0;
-#X restore 133 271 pd change;
-#X obj 94 247 kdemux2;
-#X obj 133 130 r /ds/\$1\$2/change;
-#X obj 145 150 r /ds/\$1/change;
-#X obj 133 220 spigot 1;
-#X obj 178 196 == 0;
-#X obj 178 174 r /ds/\$1\$2/change/lock;
-#X obj 145 391 && 1;
-#X obj 157 365 t b f;
-#X obj 157 343 r /ds/\$1/transition/activate;
-#X obj 211 867 list length;
-#X obj 313 869 r /ds/\$1\$2/resize;
-#X obj 268 966 spigot 1;
-#X msg 211 988 const 0;
-#X obj 211 919 t b f;
-#X msg 268 988 resize \$1;
-#X obj 313 937 spigot 1;
-#X obj 358 913 == 0;
-#X obj 358 891 r /ds/\$1\$2/resize/lock;
-#X obj 145 820 kdemux2;
-#X obj 184 797 r /ds/\$1\$2/table;
-#X obj 184 843 t a a;
-#X obj 184 1016 list prepend 0;
+#X restore 133 301 pd change;
+#X obj 94 277 kdemux2;
+#X obj 133 160 r /ds/\$1\$2/change;
+#X obj 145 180 r /ds/\$1/change;
+#X obj 133 250 spigot 1;
+#X obj 178 226 == 0;
+#X obj 178 204 r /ds/\$1\$2/change/lock;
+#X obj 145 421 && 1;
+#X obj 157 395 t b f;
+#X obj 157 373 r /ds/\$1/transition/activate;
+#X obj 211 897 list length;
+#X obj 313 899 r /ds/\$1\$2/resize;
+#X obj 268 996 spigot 1;
+#X msg 211 1018 const 0;
+#X obj 211 949 t b f;
+#X msg 268 1018 resize \$1;
+#X obj 313 967 spigot 1;
+#X obj 358 943 == 0;
+#X obj 358 921 r /ds/\$1\$2/resize/lock;
+#X obj 145 850 kdemux2;
+#X obj 184 827 r /ds/\$1\$2/table;
+#X obj 184 873 t a a;
+#X obj 184 1046 list prepend 0;
+#X obj 58 125 anyonce /ds/\$1\$2/dispatch;
 #X connect 0 0 8 0;
 #X connect 1 0 39 0;
 #X connect 1 1 2 0;
@@ -123,7 +124,7 @@
 #X connect 3 1 4 0;
 #X connect 4 1 41 0;
 #X connect 5 0 35 0;
-#X connect 6 0 3 0;
+#X connect 6 0 63 0;
 #X connect 7 0 14 0;
 #X connect 9 0 10 0;
 #X connect 10 0 8 1;
@@ -190,6 +191,7 @@
 #X connect 61 0 62 0;
 #X connect 61 1 50 0;
 #X connect 62 0 0 0;
+#X connect 63 0 3 0;
 #X restore 59 301 pd dispatch;
 #X obj 59 465 outlet slave-chain;
 #N canvas 67 22 1046 726 init 0;
@@ -268,7 +270,6 @@
 #X msg 77 708 1;
 #X obj 104 708 s /ds/\$1\$2/change;
 #X obj 77 682 t b f;
-#X obj 340 89 t b b b;
 #X obj 640 408 b;
 #X msg 640 430 1;
 #X obj 405 34 r /ds/\$1\$2/init;
@@ -301,18 +302,23 @@ occupy nooccupy table resize noresize;
 #X msg 517 205 \; /ds/\$1\$2/delay 0 \; /ds/\$1\$2/slave 0 \; /ds/\$1\$2/change
 0 \; /ds/\$1\$2/name \$2 \; /ds/\$1\$2/resize 1 \;;
 #X obj 28 1012 v /ds/\$1\$2/nomorph/v;
-#X connect 0 0 74 0;
+#X text 497 86 multiples will not get initialized.;
+#X obj 340 109 t b b;
+#X obj 340 56 t b b;
+#X obj 340 86 loadonce /ds/\$1\$2/init;
+#X obj 409 62 s \$0-preinit;
+#X connect 0 0 105 0;
 #X connect 1 0 50 0;
 #X connect 1 1 47 0;
-#X connect 2 0 95 0;
+#X connect 2 0 94 0;
 #X connect 3 0 11 1;
-#X connect 4 0 103 0;
+#X connect 4 0 102 0;
 #X connect 5 0 1 0;
 #X connect 6 0 17 1;
 #X connect 7 0 6 0;
 #X connect 8 0 3 0;
 #X connect 9 0 4 0;
-#X connect 10 0 102 0;
+#X connect 10 0 101 0;
 #X connect 11 0 12 0;
 #X connect 12 0 14 0;
 #X connect 12 1 13 0;
@@ -359,91 +365,92 @@ occupy nooccupy table resize noresize;
 #X connect 51 0 11 0;
 #X connect 51 0 17 0;
 #X connect 52 0 53 1;
-#X connect 52 0 99 0;
+#X connect 52 0 98 0;
 #X connect 53 0 56 0;
 #X connect 54 0 53 1;
-#X connect 56 0 78 0;
+#X connect 56 0 77 0;
 #X connect 56 1 54 0;
-#X connect 57 0 100 0;
+#X connect 57 0 99 0;
 #X connect 58 0 57 0;
 #X connect 58 1 59 0;
-#X connect 59 0 84 0;
+#X connect 59 0 83 0;
 #X connect 60 0 52 0;
-#X connect 61 0 99 0;
+#X connect 61 0 98 0;
 #X connect 62 0 63 0;
 #X connect 63 0 73 0;
-#X connect 64 0 96 0;
+#X connect 64 0 95 0;
 #X connect 65 0 64 0;
 #X connect 66 0 65 0;
 #X connect 66 1 67 0;
-#X connect 67 0 81 0;
+#X connect 67 0 80 0;
 #X connect 69 0 61 0;
 #X connect 70 0 57 0;
-#X connect 71 0 98 0;
+#X connect 71 0 97 0;
 #X connect 73 0 71 0;
 #X connect 73 1 72 0;
-#X connect 74 0 5 0;
-#X connect 74 1 10 0;
-#X connect 75 0 76 0;
-#X connect 75 0 4 0;
-#X connect 75 0 63 0;
-#X connect 76 0 101 0;
-#X connect 77 0 74 0;
-#X connect 78 0 55 0;
-#X connect 79 0 80 0;
-#X connect 80 0 78 0;
-#X connect 81 0 68 0;
+#X connect 74 0 75 0;
+#X connect 74 0 4 0;
+#X connect 74 0 63 0;
+#X connect 75 0 100 0;
+#X connect 76 0 105 0;
+#X connect 77 0 55 0;
+#X connect 78 0 79 0;
+#X connect 79 0 77 0;
+#X connect 80 0 68 0;
+#X connect 81 0 80 0;
 #X connect 82 0 81 0;
-#X connect 83 0 82 0;
-#X connect 84 0 86 0;
-#X connect 85 0 84 0;
-#X connect 87 0 85 0;
-#X connect 88 0 97 0;
-#X connect 89 0 88 0;
-#X connect 89 1 94 0;
-#X connect 91 0 88 0;
-#X connect 91 1 92 0;
-#X connect 92 0 93 0;
-#X connect 94 0 90 0;
-#X connect 95 0 9 0;
-#X connect 95 1 58 0;
-#X connect 95 2 8 0;
-#X connect 95 3 7 0;
-#X connect 95 4 34 0;
-#X connect 95 5 32 0;
-#X connect 95 6 21 0;
-#X connect 95 8 60 0;
-#X connect 95 9 51 0;
-#X connect 95 9 53 0;
-#X connect 95 10 9 0;
-#X connect 95 10 65 0;
-#X connect 95 10 69 0;
-#X connect 95 10 70 0;
-#X connect 95 11 70 0;
-#X connect 95 12 69 0;
-#X connect 95 13 62 0;
-#X connect 95 14 66 0;
-#X connect 95 15 65 0;
-#X connect 95 16 75 0;
-#X connect 95 17 91 0;
-#X connect 95 18 89 0;
-#X connect 95 19 51 0;
+#X connect 83 0 85 0;
+#X connect 84 0 83 0;
+#X connect 86 0 84 0;
+#X connect 87 0 96 0;
+#X connect 88 0 87 0;
+#X connect 88 1 93 0;
+#X connect 90 0 87 0;
+#X connect 90 1 91 0;
+#X connect 91 0 92 0;
+#X connect 93 0 89 0;
+#X connect 94 0 9 0;
+#X connect 94 1 58 0;
+#X connect 94 2 8 0;
+#X connect 94 3 7 0;
+#X connect 94 4 34 0;
+#X connect 94 5 32 0;
+#X connect 94 6 21 0;
+#X connect 94 8 60 0;
+#X connect 94 9 51 0;
+#X connect 94 9 53 0;
+#X connect 94 10 9 0;
+#X connect 94 10 65 0;
+#X connect 94 10 69 0;
+#X connect 94 10 70 0;
+#X connect 94 11 70 0;
+#X connect 94 12 69 0;
+#X connect 94 13 62 0;
+#X connect 94 14 66 0;
+#X connect 94 15 65 0;
+#X connect 94 16 74 0;
+#X connect 94 17 90 0;
+#X connect 94 18 88 0;
+#X connect 94 19 51 0;
+#X connect 104 0 5 0;
+#X connect 104 1 10 0;
+#X connect 105 0 106 0;
+#X connect 105 1 107 0;
+#X connect 106 0 104 0;
 #X restore 59 221 pd init;
 #X text 40 21 ds_reg <domain> <name> <arg1> <arg2> ...;
 #X obj 59 191 s /ds/\$1\$2/slave/start;
 #X text 280 430 (c)2011 Marian Weger;
 #X obj 59 391 r /ds/\$1\$2/dispatched;
 #X obj 86 441 s /ds/\$1/dispatched;
-#N canvas 381 22 884 668 transition_loader 0;
+#N canvas 416 22 884 668 transition_loader 0;
 #X obj 89 144 r /ds/\$1/transition/check/answer;
 #X obj 403 162 s /ds/\$1/transition/check/question;
-#X obj 89 166 anyonce /ds/\$1\$2/transition/check;
 #X msg 433 455 clear;
 #X obj 89 238 t b b b;
 #X msg 178 279 0;
 #X msg 129 279 1;
 #X obj 450 1864 s pd-\$0-transition;
-#X obj 403 62 t b b;
 #X obj 108 374 list append \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9 \$10
 \$11 \$12 \$13 \$14 \$15;
 #X msg 272 483 obj 30 20 ds_transition_occupy \$1 \$2 \$3 \$4 \$5 \$6
@@ -513,137 +520,123 @@ occupy nooccupy table resize noresize;
 #X obj 403 134 del 100;
 #X obj 427 938 v /ds/\$1\$2/delay/lock/v;
 #X obj 424 549 v /ds/\$1\$2/slave/lock/v;
-#X obj 430 90 s \$0-transition-loader-init;
 #X obj 644 372 r \$0-transition-loader-init;
 #X obj 433 429 r \$0-transition-loader-init;
 #X obj 424 528 r \$0-transition-loader-init;
 #X obj 427 914 r \$0-transition-loader-init;
 #X obj 272 1259 t a b b;
 #X obj 332 1304 v /ds/\$1\$2/nomorph/v;
-#X connect 0 0 2 0;
-#X connect 2 0 4 0;
-#X connect 3 0 7 0;
-#X connect 4 0 6 0;
-#X connect 4 1 9 0;
-#X connect 4 2 5 0;
-#X connect 5 0 68 0;
-#X connect 6 0 68 0;
-#X connect 8 0 70 0;
-#X connect 8 1 73 0;
-#X connect 9 0 12 0;
-#X connect 10 0 7 0;
-#X connect 11 0 7 0;
-#X connect 12 0 11 0;
-#X connect 12 1 57 0;
-#X connect 12 2 78 0;
-#X connect 12 3 25 0;
-#X connect 12 4 19 0;
-#X connect 12 5 10 0;
-#X connect 12 6 3 0;
-#X connect 12 6 40 0;
-#X connect 13 0 14 0;
-#X connect 13 1 7 0;
-#X connect 14 0 15 0;
-#X connect 15 0 17 0;
-#X connect 15 1 16 0;
-#X connect 16 0 17 1;
-#X connect 16 0 14 0;
-#X connect 17 0 54 0;
-#X connect 18 0 13 0;
-#X connect 19 0 18 0;
-#X connect 20 0 21 0;
-#X connect 20 1 7 0;
-#X connect 21 0 22 0;
-#X connect 22 0 24 0;
-#X connect 22 1 23 0;
-#X connect 23 0 24 1;
-#X connect 23 0 21 0;
-#X connect 24 0 55 0;
-#X connect 25 0 32 0;
-#X connect 26 0 27 0;
-#X connect 26 1 7 0;
-#X connect 27 0 28 0;
-#X connect 28 0 30 0;
-#X connect 28 1 29 0;
-#X connect 29 0 30 1;
-#X connect 29 0 27 0;
-#X connect 30 0 56 0;
-#X connect 31 0 33 0;
-#X connect 32 0 20 0;
-#X connect 33 0 26 0;
-#X connect 34 0 35 0;
-#X connect 34 1 7 0;
-#X connect 35 0 36 0;
-#X connect 36 0 38 0;
-#X connect 36 1 37 0;
-#X connect 37 0 38 1;
-#X connect 37 0 35 0;
-#X connect 38 0 63 0;
+#X obj 89 186 loadonce /ds/\$1\$2/transition/check/answer;
+#X obj 430 90 s \$0-transition-loader-init;
+#X obj 403 62 t b b;
+#X obj 480 349 r \$0-preinit;
+#X connect 0 0 77 0;
+#X connect 2 0 6 0;
+#X connect 3 0 5 0;
+#X connect 3 1 7 0;
+#X connect 3 2 4 0;
+#X connect 4 0 66 0;
+#X connect 5 0 66 0;
+#X connect 7 0 10 0;
+#X connect 8 0 6 0;
+#X connect 9 0 6 0;
+#X connect 10 0 9 0;
+#X connect 10 1 55 0;
+#X connect 10 2 75 0;
+#X connect 10 3 23 0;
+#X connect 10 4 17 0;
+#X connect 10 5 8 0;
+#X connect 10 6 2 0;
+#X connect 10 6 38 0;
+#X connect 11 0 12 0;
+#X connect 11 1 6 0;
+#X connect 12 0 13 0;
+#X connect 13 0 15 0;
+#X connect 13 1 14 0;
+#X connect 14 0 15 1;
+#X connect 14 0 12 0;
+#X connect 15 0 52 0;
+#X connect 16 0 11 0;
+#X connect 17 0 16 0;
+#X connect 18 0 19 0;
+#X connect 18 1 6 0;
+#X connect 19 0 20 0;
+#X connect 20 0 22 0;
+#X connect 20 1 21 0;
+#X connect 21 0 22 1;
+#X connect 21 0 19 0;
+#X connect 22 0 53 0;
+#X connect 23 0 30 0;
+#X connect 24 0 25 0;
+#X connect 24 1 6 0;
+#X connect 25 0 26 0;
+#X connect 26 0 28 0;
+#X connect 26 1 27 0;
+#X connect 27 0 28 1;
+#X connect 27 0 25 0;
+#X connect 28 0 54 0;
+#X connect 29 0 31 0;
+#X connect 30 0 18 0;
+#X connect 31 0 24 0;
+#X connect 32 0 33 0;
+#X connect 32 1 6 0;
+#X connect 33 0 34 0;
+#X connect 34 0 36 0;
+#X connect 34 1 35 0;
+#X connect 35 0 36 1;
+#X connect 35 0 33 0;
+#X connect 36 0 61 0;
+#X connect 38 0 37 0;
+#X connect 39 0 29 1;
 #X connect 40 0 39 0;
-#X connect 41 0 31 1;
-#X connect 42 0 41 0;
-#X connect 43 0 8 0;
-#X connect 44 0 52 0;
-#X connect 45 0 44 0;
-#X connect 45 1 44 1;
-#X connect 46 0 47 0;
-#X connect 47 0 53 0;
-#X connect 48 0 47 0;
-#X connect 48 1 47 1;
-#X connect 49 0 46 0;
-#X connect 50 0 44 0;
-#X connect 51 0 50 0;
-#X connect 52 0 19 1;
-#X connect 53 0 25 1;
-#X connect 54 0 7 0;
-#X connect 55 0 7 0;
-#X connect 56 0 7 0;
-#X connect 57 0 64 0;
-#X connect 57 1 65 0;
-#X connect 58 0 66 0;
-#X connect 58 1 7 0;
-#X connect 59 0 67 0;
-#X connect 59 1 60 0;
-#X connect 60 0 61 1;
-#X connect 61 0 62 0;
-#X connect 62 0 7 0;
-#X connect 63 0 7 0;
-#X connect 64 0 58 0;
-#X connect 65 0 34 0;
-#X connect 66 0 59 0;
-#X connect 67 0 61 0;
-#X connect 69 0 42 0;
-#X connect 70 0 1 0;
-#X connect 71 0 48 0;
-#X connect 72 0 45 0;
-#X connect 74 0 40 0;
-#X connect 75 0 3 0;
-#X connect 76 0 72 0;
-#X connect 77 0 71 0;
-#X connect 78 0 31 0;
-#X connect 78 1 69 0;
-#X connect 78 2 79 0;
-#X connect 79 0 42 1;
+#X connect 41 0 79 0;
+#X connect 42 0 50 0;
+#X connect 43 0 42 0;
+#X connect 43 1 42 1;
+#X connect 44 0 45 0;
+#X connect 45 0 51 0;
+#X connect 46 0 45 0;
+#X connect 46 1 45 1;
+#X connect 47 0 44 0;
+#X connect 48 0 42 0;
+#X connect 49 0 48 0;
+#X connect 50 0 17 1;
+#X connect 51 0 23 1;
+#X connect 52 0 6 0;
+#X connect 53 0 6 0;
+#X connect 54 0 6 0;
+#X connect 55 0 62 0;
+#X connect 55 1 63 0;
+#X connect 56 0 64 0;
+#X connect 56 1 6 0;
+#X connect 57 0 65 0;
+#X connect 57 1 58 0;
+#X connect 58 0 59 1;
+#X connect 59 0 60 0;
+#X connect 60 0 6 0;
+#X connect 61 0 6 0;
+#X connect 62 0 56 0;
+#X connect 63 0 32 0;
+#X connect 64 0 57 0;
+#X connect 65 0 59 0;
+#X connect 67 0 40 0;
+#X connect 68 0 1 0;
+#X connect 69 0 46 0;
+#X connect 70 0 43 0;
+#X connect 71 0 38 0;
+#X connect 72 0 2 0;
+#X connect 73 0 70 0;
+#X connect 74 0 69 0;
+#X connect 75 0 29 0;
+#X connect 75 1 67 0;
+#X connect 75 2 76 0;
+#X connect 76 0 40 1;
+#X connect 77 0 3 0;
+#X connect 79 0 68 0;
+#X connect 79 1 78 0;
+#X connect 80 0 2 0;
 #X restore 59 341 pd transition_loader;
 #N canvas 525 22 627 302 \$0-transition 0;
-#X obj 30 20 ds_transition_occupy domain /variable1 0 0 0 0 0 0 0 0
-0 0 0 0 0;
-#X obj 30 60 ds_transition_slave domain /variable1 0 0 0 0 0 0 0 0
-0 0 0 0 0;
-#X obj 30 100 ds_transition_delay domain /variable1 0 0 0 0 0 0 0 0
-0 0 0 0 0;
-#X obj 30 140 ds_transition_morph domain /variable1 0 0 0 0 0 0 0 0
-0 0 0 0 0;
-#X obj 381 180 s /ds/domain/variable1/transition/out;
-#X obj 30 180 s /ds/domain/variable1/dispatched;
-#X connect 0 0 1 0;
-#X connect 0 1 1 1;
-#X connect 1 0 2 0;
-#X connect 1 1 2 1;
-#X connect 2 0 3 0;
-#X connect 2 1 3 1;
-#X connect 3 0 5 0;
-#X connect 3 1 4 0;
 #X restore 59 361 pd \$0-transition;
 #N canvas 151 242 403 420 route 0;
 #X obj 89 187 ds_route /ds/\$1\$2/data_prepend;
@@ -661,7 +654,7 @@ occupy nooccupy table resize noresize;
 ;
 #X obj 59 168 inlet slave-chain;
 #X obj 59 413 t b b;
-#N canvas 311 126 524 565 fetch_and_route_loader 0;
+#N canvas 79 123 524 565 fetch_and_route_loader 0;
 #X msg 322 295 clear;
 #X obj 50 128 t b b b;
 #X msg 139 169 0;
@@ -669,13 +662,14 @@ occupy nooccupy table resize noresize;
 #X msg 69 478 loadbang;
 #X obj 69 234 list append \$1 \$2;
 #X obj 69 257 t b l b;
-#X obj 50 96 r \$0-init-complete;
+#X obj 50 66 r \$0-init-complete;
 #X obj 88 375 kdemux2;
 #X msg 127 405 obj 30 20 ds_fetch_table \$1 \$2;
 #X msg 88 435 obj 30 20 ds_fetch \$1 \$2;
 #X obj 322 534 s pd-\$0-fetch_and_route;
 #X obj 139 202 s /ds/\$1/dsp;
 #X obj 127 324 v /ds/\$1\$2/table/v;
+#X obj 322 251 r \$0-preinit;
 #X connect 0 0 11 0;
 #X connect 1 0 3 0;
 #X connect 1 1 5 0;
@@ -694,6 +688,7 @@ occupy nooccupy table resize noresize;
 #X connect 9 0 11 0;
 #X connect 10 0 11 0;
 #X connect 13 0 8 1;
+#X connect 14 0 0 0;
 #X restore 59 241 pd fetch_and_route_loader;
 #N canvas 0 22 450 300 \$0-fetch_and_route 0;
 #X obj 30 20 ds_fetch domain /variable1;

+ 23 - 17
ds_reg_settings.pd

@@ -1,31 +1,34 @@
 #N canvas 38 106 797 450 10;
 #X text 27 22 ds_reg_settings <domain> <subname>;
 #X text 27 52 used by [ds_reg] for registering its settings;
-#X text 357 323 (c)2012 Marian Weger;
+#X text 357 363 (c)2012 Marian Weger;
 #X obj 78 169 spigot 1;
 #X obj 369 155 spigot 1;
-#X obj 78 195 t b b;
-#X msg 174 229 0;
-#X obj 78 325 kdemux2;
-#X obj 251 371 s;
-#X msg 272 233 1;
-#X obj 253 207 t b b a;
+#X obj 78 235 t b b;
+#X msg 174 269 0;
+#X obj 78 365 kdemux2;
+#X obj 251 411 s;
+#X msg 272 273 1;
+#X obj 253 247 t b b a;
 #X text 262 168 route value;
-#X obj 266 332 symbol;
+#X obj 266 372 symbol;
 #X obj 253 185 r /ds/\$1\$2/route;
 #X obj 369 93 r /ds/\$1\$2/dispatch;
-#X obj 369 275 s /ds/\$1\$2;
-#X obj 78 365 list prepend \$2;
-#X obj 93 229 r /ds/\$1\$2;
+#X obj 369 315 s /ds/\$1\$2;
+#X obj 78 405 list prepend \$2;
+#X obj 93 269 r /ds/\$1\$2;
 #X obj 78 93 r /ds/\$1/fetch/settings;
-#X obj 78 391 s /ds/\$1/fetched;
-#X obj 213 116 r /ds/\$1\$2/reg/state;
+#X obj 78 431 s /ds/\$1/fetched;
+#X obj 233 116 r /ds/\$1\$2/reg/state;
 #X obj 588 101 r /ds/\$1\$2/resend;
 #X obj 588 123 b;
 #X obj 588 145 list append /ds/\$1\$2;
 #X obj 588 167 list trim;
 #X obj 588 189 s /ds/\$1\$2/route;
-#X obj 78 270 v /ds/\$1\$2/v;
+#X obj 78 310 v /ds/\$1\$2/v;
+#X obj 78 135 anyonce /ds/\$1\$2/fetch;
+#X obj 369 121 anyonce /ds/\$1\$2/dispatch;
+#X obj 253 207 anyonce /ds/\$1\$2/route;
 #X connect 3 0 5 0;
 #X connect 4 0 15 0;
 #X connect 5 0 26 0;
@@ -38,11 +41,11 @@
 #X connect 10 1 9 0;
 #X connect 10 2 12 0;
 #X connect 12 0 8 1;
-#X connect 13 0 10 0;
-#X connect 14 0 4 0;
+#X connect 13 0 29 0;
+#X connect 14 0 28 0;
 #X connect 16 0 19 0;
 #X connect 17 0 26 0;
-#X connect 18 0 3 0;
+#X connect 18 0 27 0;
 #X connect 20 0 3 1;
 #X connect 20 0 4 1;
 #X connect 21 0 22 0;
@@ -50,3 +53,6 @@
 #X connect 23 0 24 0;
 #X connect 24 0 25 0;
 #X connect 26 0 7 0;
+#X connect 27 0 3 0;
+#X connect 28 0 4 0;
+#X connect 29 0 10 0;

+ 6 - 4
ds_route.pd

@@ -1,14 +1,14 @@
 #N canvas 534 144 439 383 10;
 #X text 20 21 ds_route <name>;
 #X obj 95 285 s;
-#X text 92 78 route value;
+#X text 92 51 route value;
 #X obj 110 256 symbol;
 #X obj 83 117 t b a;
 #X obj 38 210 list;
 #X obj 38 256 route bang;
 #X text 62 330 (c)2012 Marian Weger;
-#X obj 38 95 r \$1;
-#X obj 83 95 r \$1/route;
+#X obj 38 65 r \$1;
+#X obj 83 68 r \$1/route;
 #X obj 38 232 list trim;
 #X obj 323 141 r \$1/resend;
 #X obj 323 163 b;
@@ -17,6 +17,7 @@
 #X obj 323 229 s \$1/route;
 #X obj 169 216 route float;
 #X obj 169 238 v \$1/v;
+#X obj 83 90 anyonce \$1;
 #X connect 3 0 1 1;
 #X connect 4 0 5 0;
 #X connect 4 1 3 0;
@@ -24,10 +25,11 @@
 #X connect 6 1 1 0;
 #X connect 8 0 5 1;
 #X connect 8 0 16 0;
-#X connect 9 0 4 0;
+#X connect 9 0 18 0;
 #X connect 10 0 6 0;
 #X connect 11 0 12 0;
 #X connect 12 0 13 0;
 #X connect 13 0 14 0;
 #X connect 14 0 15 0;
 #X connect 16 0 17 0;
+#X connect 18 0 4 0;

+ 43 - 33
ds_scheduler.pd

@@ -244,11 +244,11 @@
 #X obj 71 115 ds_reg_global \$1 /recall/properties/state;
 #X obj 71 135 ds_reg_global \$1 /store/properties/state;
 #X restore 53 70 pd register;
-#N canvas 95 238 514 420 init 0;
-#X obj 145 56 loadbang;
-#X msg 218 144 \; /ds/\$1/resolution 1 \; /ds/\$1/timebase 0 \; /ds/\$1/store/properties/state
+#N canvas 95 238 576 344 init 1;
+#X obj 145 26 loadbang;
+#X msg 218 164 \; /ds/\$1/resolution 1 \; /ds/\$1/timebase 0 \; /ds/\$1/store/properties/state
 1 \; /ds/\$1/recall/properties/state 1 \;;
-#X obj 218 114 list prepend \$1;
+#X obj 218 134 list prepend \$1;
 #N canvas 80 22 619 609 FLAGS 0;
 #X obj 70 109 list split 1;
 #X obj 104 131 t l;
@@ -284,7 +284,7 @@
 #X connect 13 1 14 0;
 #X connect 13 2 7 0;
 #X connect 14 0 8 0;
-#X restore 162 274 pd FLAGS;
+#X restore 162 294 pd FLAGS;
 #N canvas 619 22 611 540 MODULE_LOADER 0;
 #X msg 467 493 clear;
 #X obj 181 353 * 20;
@@ -333,39 +333,47 @@
 #X connect 17 0 9 0;
 #X connect 18 0 6 0;
 #X connect 19 0 3 0;
-#X restore 179 250 pd MODULE_LOADER;
-#X obj 145 78 t b b b;
-#X connect 0 0 5 0;
+#X restore 179 270 pd MODULE_LOADER;
+#X obj 145 98 t b b b;
+#X obj 145 49 loadonce /ds/\$1/logic/init;
+#X obj 298 101 s /ds/\$1/print;
+#X msg 298 79 ERROR: [ds_scheduler] multiply defined!;
+#X connect 0 0 6 0;
 #X connect 2 0 1 0;
 #X connect 5 0 3 0;
 #X connect 5 1 4 0;
 #X connect 5 2 2 0;
+#X connect 6 0 5 0;
+#X connect 6 1 8 0;
+#X connect 8 0 7 0;
 #X restore 53 50 pd init;
 #N canvas 59 192 738 517 current_scene_name_&_duration 0;
-#X obj 321 244 sel 1 0;
-#X obj 340 297 symbol;
-#X obj 253 163 moses;
-#X obj 521 232 b;
-#X obj 253 195 t f f;
-#X msg 82 174 0;
-#X msg 49 174 1;
-#X obj 234 83 t b f b;
-#X obj 286 222 ds_slot-status-request \$1;
-#X obj 253 474 s;
-#X obj 280 117 r /ds/\$1/scene/maximum;
-#X obj 280 139 + 1;
-#X msg 521 297 0;
-#X msg 253 360 \$1 name \, \$1 duration;
-#X obj 253 412 t a a;
+#X obj 321 284 sel 1 0;
+#X obj 340 337 symbol;
+#X obj 253 203 moses;
+#X obj 521 272 b;
+#X obj 253 235 t f f;
+#X msg 82 214 0;
+#X msg 49 214 1;
+#X obj 234 133 t b f b;
+#X obj 286 262 ds_slot-status-request \$1;
+#X obj 253 514 s;
+#X obj 280 157 r /ds/\$1/scene/maximum;
+#X obj 280 179 + 1;
+#X msg 521 337 0;
+#X msg 253 400 \$1 name \, \$1 duration;
+#X obj 253 452 t a a;
 #X obj 234 61 r /ds/\$1/scene/current;
-#X obj 49 206 s /ds/\$1/scene/current/lock;
-#X obj 521 318 s /ds/\$1/scene/current/duration;
-#X obj 340 318 s /ds/\$1/scene/current/name;
-#X obj 253 390 list prepend \$1;
-#X msg 345 442 symbol /ds/\$1/scene/\$2/\$3/route;
-#X msg 187 442 /ds/\$1/scene/current/\$3;
-#X obj 49 149 del 1;
-#X obj 253 318 spigot;
+#X obj 49 246 s /ds/\$1/scene/current/lock;
+#X obj 521 358 s /ds/\$1/scene/current/duration;
+#X obj 340 358 s /ds/\$1/scene/current/name;
+#X obj 253 430 list prepend \$1;
+#X msg 345 482 symbol /ds/\$1/scene/\$2/\$3/route;
+#X msg 187 482 /ds/\$1/scene/current/\$3;
+#X obj 49 189 del 1;
+#X obj 253 358 spigot;
+#X obj 246 86 r /ds/\$1/scheduler/gui/update;
+#X obj 234 113 f;
 #X connect 0 1 1 0;
 #X connect 0 1 12 0;
 #X connect 1 0 18 0;
@@ -388,12 +396,14 @@
 #X connect 13 0 19 0;
 #X connect 14 0 21 0;
 #X connect 14 1 20 0;
-#X connect 15 0 7 0;
+#X connect 15 0 25 0;
 #X connect 19 0 14 0;
 #X connect 20 0 9 1;
 #X connect 21 0 9 0;
 #X connect 22 0 6 0;
 #X connect 23 0 13 0;
+#X connect 24 0 25 0;
+#X connect 25 0 7 0;
 #X restore 53 210 pd current_scene_name_&_duration;
 #N canvas 452 305 545 318 playing 0;
 #X obj 99 51 r /ds/\$1/play;
@@ -411,5 +421,5 @@
 #X connect 5 0 6 0;
 #X restore 53 190 pd playing;
 #N canvas 0 22 450 300 \$0-modules 0;
-#X obj 30 9630 ds_scheduler_osc domain oscdomain 0 0 0 0 0;
+#X obj 30 50 ds_scheduler_osc domain oscdomain 0 0 0 0 0;
 #X restore 53 230 pd \$0-modules;

+ 17 - 11
ds_transition.pd

@@ -19,12 +19,12 @@
 ;
 #X obj -565 227 ds_reg_global \$1 /reg/settings/buffer/occupy;
 #X restore 56 131 pd register_settings_buffer;
-#N canvas 438 22 532 526 init 1;
+#N canvas 438 22 532 526 init 0;
 #X obj 142 16 loadbang;
-#X obj 299 82 list prepend \$1;
-#X obj 170 455 r /ds/\$1/transition/check/question;
-#X obj 170 497 s /ds/\$1/transition/check/answer;
-#X msg 299 112 \; /ds/\$1/store/settings/state 1 \; /ds/\$1/recall/settings/state
+#X obj 299 122 list prepend \$1;
+#X obj 170 495 r /ds/\$1/transition/check/question;
+#X obj 170 537 s /ds/\$1/transition/check/answer;
+#X msg 299 152 \; /ds/\$1/store/settings/state 1 \; /ds/\$1/recall/settings/state
 1 \; /ds/\$1/transition/state 1 \; /ds/\$1/occupy 1 \; /ds/\$1/morph
 1 \; /ds/\$1/occupy/override 0 \; /ds/\$1/slave 1 \; /ds/\$1/delay
 1 \; /ds/\$1/reg/settings/buffer/slave 0 \; /ds/\$1/reg/settings/buffer/delay
@@ -33,7 +33,7 @@
 0 \; /ds/\$1/reg/settings/buffer/morph/curve/weight 0 \; /ds/\$1/reg/settings/buffer/morph/curve/quality
 0 \; /ds/\$1/reg/settings/buffer/morph/curve/resolution 128 \; /ds/\$1/reg/settings/buffer/occupy
 0 \; /ds/\$1/transition/busy 0 \; /ds/\$1/transition/paused 0 \;;
-#X obj 142 420 del 100;
+#X obj 142 460 del 100;
 #N canvas 80 22 899 619 FLAGS 0;
 #X obj 70 109 list split 1;
 #X obj 104 131 t l;
@@ -69,7 +69,7 @@
 #X connect 14 0 5 0;
 #X connect 14 1 8 0;
 #X connect 14 2 7 0;
-#X restore 170 199 pd FLAGS;
+#X restore 170 239 pd FLAGS;
 #N canvas 655 79 611 540 MODULE_LOADER 0;
 #X msg 467 493 clear;
 #X obj 181 353 * 20;
@@ -118,9 +118,12 @@
 #X connect 17 0 9 0;
 #X connect 18 0 6 0;
 #X connect 19 0 3 0;
-#X restore 187 175 pd MODULE_LOADER;
-#X obj 142 38 t b b b b;
-#X connect 0 0 8 0;
+#X restore 187 215 pd MODULE_LOADER;
+#X obj 142 78 t b b b b;
+#X obj 142 44 loadonce /ds/\$1/logic/init;
+#X obj 295 96 s /ds/\$1/print;
+#X msg 295 74 ERROR [ds_transition] multiply defined!;
+#X connect 0 0 9 0;
 #X connect 1 0 4 0;
 #X connect 2 0 3 0;
 #X connect 5 0 3 0;
@@ -128,6 +131,9 @@
 #X connect 8 1 6 0;
 #X connect 8 2 7 0;
 #X connect 8 3 1 0;
+#X connect 9 0 8 0;
+#X connect 9 1 11 0;
+#X connect 11 0 10 0;
 #X restore 56 91 pd init;
 #N canvas 322 375 450 300 register 0;
 #X obj 94 98 ds_reg_global \$1 /occupy;
@@ -184,5 +190,5 @@
 #X connect 19 0 14 0;
 #X restore 56 151 pd transition_busy;
 #N canvas 0 22 450 300 \$0-modules 0;
-#X obj 30 9630 ds_transition_osc domain oscdomain 0 0 0 0 0;
+#X obj 30 50 ds_transition_osc domain oscdomain 0 0 0 0 0;
 #X restore 56 171 pd \$0-modules;

+ 1 - 1
ds_transition_occupy.pd

@@ -63,7 +63,7 @@
 #X connect 9 0 6 0;
 #X connect 10 0 2 0;
 #X restore 353 126 pd copy_paste_settings;
-#N canvas 757 134 354 463 register 0;
+#N canvas 757 134 354 463 register 1;
 #X obj 53 42 ds_reg_settings \$1 \$2/occupy;
 #X obj 103 138 r /ds/\$1\$2/busy;
 #X obj 103 160 t b f;

+ 22 - 16
loadonce.pd

@@ -1,21 +1,27 @@
 #N canvas 186 196 299 403 10;
-#X obj 138 178 t f f;
-#X obj 165 204 + 1;
+#X obj 177 202 + 1;
 #X obj 105 100 inlet;
-#X obj 105 273 spigot;
-#X obj 138 249 == 0;
-#X obj 105 295 outlet;
-#X text 64 346 (c)2013 Marian Weger;
+#X obj 105 283 spigot;
+#X obj 138 259 == 0;
+#X obj 105 305 outlet;
+#X text 64 356 (c)2013 Marian Weger;
 #X text 42 55 loadonce <name>;
 #X obj 105 122 t a b;
-#X obj 138 153 v /loadonce/\$1;
-#X obj 165 224 v /loadonce/\$1;
-#X connect 0 0 4 0;
-#X connect 0 1 1 0;
-#X connect 1 0 10 0;
-#X connect 2 0 8 0;
-#X connect 3 0 5 0;
-#X connect 4 0 3 1;
+#X obj 138 178 t f f f;
+#X obj 138 153 v loadonce-\$1;
+#X obj 177 222 v loadonce-\$1;
+#X obj 174 259 > 0;
+#X obj 174 281 sel 1;
+#X obj 174 305 outlet;
+#X connect 0 0 10 0;
+#X connect 1 0 7 0;
+#X connect 2 0 4 0;
+#X connect 3 0 2 1;
+#X connect 7 0 2 0;
+#X connect 7 1 9 0;
 #X connect 8 0 3 0;
-#X connect 8 1 9 0;
-#X connect 9 0 0 0;
+#X connect 8 1 11 0;
+#X connect 8 2 0 0;
+#X connect 9 0 8 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;