aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Barknecht <fbar@users.sourceforge.net>2004-06-07 12:23:58 +0000
committerFrank Barknecht <fbar@users.sourceforge.net>2004-06-07 12:23:58 +0000
commitac0b773e0ff9c40f2ed04926c9479689c490c13c (patch)
treeed08986a6b6b42698fe6dfa071efb79e34492478
parent0639758da585bb82671f7bba907d41c7c3cac7e8 (diff)
* added rrad.nseq and related patches.
svn path=/trunk/abstractions/rradical/; revision=1808
-rw-r--r--control/_nslider-commun.pd43
-rw-r--r--control/kbd2midi.pd98
-rw-r--r--control/qwerty2midi.xml33
-rw-r--r--control/qwertz2midi.xml34
-rw-r--r--control/rrad.nseq-help.pd150
-rw-r--r--control/rrad.nseq.pd463
6 files changed, 635 insertions, 186 deletions
diff --git a/control/_nslider-commun.pd b/control/_nslider-commun.pd
new file mode 100644
index 0000000..fd1e461
--- /dev/null
+++ b/control/_nslider-commun.pd
@@ -0,0 +1,43 @@
+#N canvas 563 234 607 600 10;
+#X obj 425 146 symbol \$1;
+#X obj 425 213 t f;
+#X obj 425 192 unpack 0;
+#X obj 425 119 loadbang;
+#X obj 409 417 r \$0-current;
+#X obj 358 243 f 1;
+#X obj 342 264 +;
+#X obj 393 444 f;
+#X obj 307 187 r \$2-shifter;
+#X msg 328 497 \; \$2 \$3;
+#X obj 328 474 pack s s 0;
+#X obj 303 429 symbol \$1;
+#X obj 307 219 t b f b;
+#X obj 393 387 r \$2-prepare-shift;
+#X obj 43 44 inlet;
+#X obj 51 175 outlet;
+#X obj 48 120 commun \$1 \$2;
+#X obj 103 60 s \$0-current;
+#X obj 425 170 symbol2list /n;
+#X obj 342 349 makefilename \$2-n%d;
+#X obj 342 307 mod 16;
+#X connect 0 0 18 0;
+#X connect 1 0 5 1;
+#X connect 2 0 1 0;
+#X connect 3 0 0 0;
+#X connect 4 0 7 1;
+#X connect 5 0 6 1;
+#X connect 6 0 20 0;
+#X connect 7 0 10 2;
+#X connect 8 0 12 0;
+#X connect 10 0 9 0;
+#X connect 11 0 10 0;
+#X connect 12 0 11 0;
+#X connect 12 1 6 0;
+#X connect 12 2 5 0;
+#X connect 13 0 7 0;
+#X connect 14 0 16 0;
+#X connect 14 0 17 0;
+#X connect 16 0 15 0;
+#X connect 18 0 2 0;
+#X connect 19 0 10 1;
+#X connect 20 0 19 0;
diff --git a/control/kbd2midi.pd b/control/kbd2midi.pd
new file mode 100644
index 0000000..f26038d
--- /dev/null
+++ b/control/kbd2midi.pd
@@ -0,0 +1,98 @@
+#N canvas 413 429 88 48 10;
+#N canvas 405 324 705 488 guts 0;
+#X obj 97 26 keyname;
+#X obj 103 102 symbol;
+#X obj 103 77 select 1;
+#X obj 181 153 pool;
+#X msg 121 129 get \$1;
+#X obj 181 261 outlet;
+#X obj 181 82 loadbang;
+#X obj 218 175 r \$0-onoff;
+#X obj 94 51 spigot;
+#X obj 164 28 r \$0-onoff;
+#X obj 181 220 route float;
+#X obj 181 198 spigot;
+#X msg 325 116 set \$1 \$2;
+#X obj 326 81 pack s 0;
+#X floatatom 377 58 5 0 0 0 - - -;
+#X obj 319 38 symbol;
+#X symbolatom 338 16 10 0 0 0 - - -;
+#X msg 292 2 bang;
+#X obj 243 52 spigot;
+#X obj 263 25 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 84 162 r \$0-op;
+#X obj 84 184 openpanel;
+#X msg 84 209 loadx \$1;
+#X msg 224 154 savex qwertz2midi.xml;
+#X obj 9 38 s \$0-onoff;
+#X obj 7 14 inlet;
+#X obj 267 218 r \$0-oct;
+#X obj 181 240 + 0;
+#X obj 246 244 * 12;
+#X msg 181 128 loadx qwertz2midi.xml;
+#X obj 26 239 select Prior Next;
+#X obj 27 350 int 0;
+#X obj 71 312 + 1;
+#X obj 134 359 int 0;
+#X obj 151 306 - 1;
+#X obj 28 373 moses 5;
+#X obj 134 381 moses -5;
+#X obj 89 437 s \$0-oct;
+#X connect 0 0 8 0;
+#X connect 0 1 1 1;
+#X connect 0 1 18 0;
+#X connect 1 0 4 0;
+#X connect 1 0 30 0;
+#X connect 2 0 1 0;
+#X connect 3 0 11 0;
+#X connect 4 0 3 0;
+#X connect 6 0 29 0;
+#X connect 7 0 11 1;
+#X connect 8 0 2 0;
+#X connect 9 0 8 1;
+#X connect 10 0 27 0;
+#X connect 11 0 10 0;
+#X connect 12 0 3 0;
+#X connect 13 0 12 0;
+#X connect 14 0 13 1;
+#X connect 15 0 13 0;
+#X connect 16 0 15 1;
+#X connect 17 0 15 0;
+#X connect 18 0 16 0;
+#X connect 19 0 18 1;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 22 0 3 0;
+#X connect 23 0 3 0;
+#X connect 25 0 24 0;
+#X connect 26 0 28 0;
+#X connect 27 0 5 0;
+#X connect 28 0 27 1;
+#X connect 29 0 3 0;
+#X connect 30 0 31 0;
+#X connect 30 1 33 0;
+#X connect 31 0 35 0;
+#X connect 32 0 31 1;
+#X connect 33 0 36 0;
+#X connect 34 0 33 1;
+#X connect 35 0 32 0;
+#X connect 35 0 34 0;
+#X connect 35 0 37 0;
+#X connect 36 1 32 0;
+#X connect 36 1 34 0;
+#X connect 36 1 37 0;
+#X restore 88 0 pd guts;
+#X obj 88 26 outlet;
+#X obj 2 14 cnv 15 80 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 23 tgl 15 0 \$0-onoff \$0-onoff on 3 -3 0 8 -262144 -1 -1
+1 1;
+#X obj 29 23 bng 15 250 50 0 \$0-op \$0-op op 3 -3 0 8 -262144 -1 -1
+;
+#X obj 146 -1 inlet;
+#X obj 50 24 nbx 2 14 -5 5 0 0 \$0-oct \$0-oct oct 3 -3 0 8 -262144
+-1 -1 0 256;
+#X connect 0 0 1 0;
+#X connect 5 0 0 0;
+#X coords 0 0 1 1 82 45 1;
diff --git a/control/qwerty2midi.xml b/control/qwerty2midi.xml
new file mode 100644
index 0000000..9b37651
--- /dev/null
+++ b/control/qwerty2midi.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE pool SYSTEM "http://www.parasitaere-kapazitaeten.net/ext/pool/pool-0.2.dtd">
+<pool>
+<value><key>5</key><data>78</data></value>
+<value><key>0</key><data>74</data></value>
+<value><key>7</key><data>82</data></value>
+<value><key>6</key><data>80</data></value>
+<value><key>d</key><data>63</data></value>
+<value><key>2</key><data>73</data></value>
+<value><key>3</key><data>75</data></value>
+<value><key>u</key><data>83</data></value>
+<value><key>n</key><data>69</data></value>
+<value><key>l</key><data>73</data></value>
+<value><key>,</key><data>72</data></value>
+<value><key>t</key><data>79</data></value>
+<value><key>w</key><data>74</data></value>
+<value><key>g</key><data>66</data></value>
+<value><key>v</key><data>65</data></value>
+<value><key>h</key><data>68</data></value>
+<value><key>i</key><data>84</data></value>
+<value><key>j</key><data>70</data></value>
+<value><key>q</key><data>72</data></value>
+<value><key>s</key><data>61</data></value>
+<value><key>a</key><data>1</data></value>
+<value><key>b</key><data>67</data></value>
+<value><key>x</key><data>62</data></value>
+<value><key>z</key><data>60</data></value>
+<value><key>r</key><data>77</data></value>
+<value><key>y</key><data>81</data></value>
+<value><key>e</key><data>76</data></value>
+<value><key>c</key><data>64</data></value>
+<value><key>m</key><data>71</data></value>
+</pool>
diff --git a/control/qwertz2midi.xml b/control/qwertz2midi.xml
new file mode 100644
index 0000000..9e34dfd
--- /dev/null
+++ b/control/qwertz2midi.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE pool SYSTEM "http://www.parasitaere-kapazitaeten.net/ext/pool/pool-0.2.dtd">
+<pool>
+<value><key>5</key><data>78</data></value>
+<value><key>0</key><data>74</data></value>
+<value><key>7</key><data>82</data></value>
+<value><key>6</key><data>80</data></value>
+<value><key>d</key><data>63</data></value>
+<value><key>2</key><data>73</data></value>
+<value><key>3</key><data>75</data></value>
+<value><key>u</key><data>83</data></value>
+<value><key>n</key><data>69</data></value>
+<value><key>l</key><data>73</data></value>
+<value><key>,</key><data>72</data></value>
+<value><key>t</key><data>79</data></value>
+<value><key>w</key><data>74</data></value>
+<value><key>g</key><data>66</data></value>
+<value><key>v</key><data>65</data></value>
+<value><key>h</key><data>68</data></value>
+<value><key>i</key><data>84</data></value>
+<value><key>j</key><data>70</data></value>
+<value><key>72</key><data>u , 83</data></value>
+<value><key>q</key><data>72</data></value>
+<value><key>s</key><data>61</data></value>
+<value><key>a</key><data>1</data></value>
+<value><key>b</key><data>67</data></value>
+<value><key>x</key><data>62</data></value>
+<value><key>z</key><data>81</data></value>
+<value><key>r</key><data>77</data></value>
+<value><key>y</key><data>60</data></value>
+<value><key>e</key><data>76</data></value>
+<value><key>c</key><data>64</data></value>
+<value><key>m</key><data>71</data></value>
+</pool>
diff --git a/control/rrad.nseq-help.pd b/control/rrad.nseq-help.pd
new file mode 100644
index 0000000..5011a52
--- /dev/null
+++ b/control/rrad.nseq-help.pd
@@ -0,0 +1,150 @@
+#N canvas 252 197 903 653 10;
+#X obj 190 155 rrad.nseq /id;
+#X floatatom 190 519 5 0 0 0 - - -;
+#X obj 190 61 metro 250;
+#X obj 190 83 int 0;
+#X obj 234 84 + 1;
+#X floatatom 147 154 5 0 0 0 - - -;
+#X obj 190 39 tgl 15 0 empty \$0-start empty 0 -6 0 8 -24198 -1 -1
+1 1;
+#X obj 190 129 mod 16;
+#X text 468 49 rrad.nseq: 16-step number box sequencer;
+#X text 422 133 nseq supports alphanumerical keyboard control. Clicking
+the toggle labeled "edit" will switch on receiving of keyboard events.
+With the "TAB" key you can navigate focus to the next row \, which
+will be highlighted. To input a note just use your alnum keyboard in
+a piano mode. Default is a quertz-keyboard \, you can change this by
+loading the qwerty2midi.xml file into the kbd2midi abstraction. The
+letter "y" on qwertz rsp. z on qwerty keyboards will input a note value
+of 60 (== note C) into the currently highlighted row. PageUp and PageDown
+(Prior and Next) will change octave from -5 to 5 To leave keyboard
+input mode press Esc or deactivate the "edit" toggle.;
+#X obj 424 311 bng 15 250 50 0 \$0-copy empty copy 0 -6 0 8 -225271
+-1 -1;
+#X obj 485 311 bng 15 250 50 0 \$0-paste empty paste 0 -6 0 8 -257472
+-1 -1;
+#X obj 424 347 bng 15 250 50 0 \$0-reset empty reset 0 -6 0 8 -258699
+-1 -1;
+#X text 451 309 and;
+#X text 514 310 will copy or paste the current pattern.;
+#X text 457 347 sets every number to zero. Press this first if you
+get "argument out of range" errors in the console.;
+#X obj 425 413 nbx 2 14 0 1000 0 0 \$0-substate \$0-substate pre 0
+-6 0 8 -261689 -1 -1 0 256;
+#X text 463 412 switches between patterns.;
+#X obj 393 148 tgl 15 0 \$0-tab-enabled \$0-tab-enabled edit 0 -6 0
+8 -262144 -1 -1 0 1;
+#X text 428 441 inlets:;
+#X text 440 457 1 inlet accepts ints ranging from 0-15. They specify
+the step to play;
+#X text 439 493 The rightmost inlet is OSC inlet. See the main RRADical
+documentation for details.;
+#X text 427 526 outlets:;
+#X text 440 545 1 outlet will output the value of the currently active
+step or the keyboard input.;
+#X text 74 436 rrad.shuffler;
+#X text 74 452 rrad.metro;
+#X text 55 419 Related:;
+#N canvas 598 329 231 193 ed 0;
+#X floatatom 84 42 5 100 1000 0 - - -;
+#X floatatom 146 63 4 10 500 0 height - -;
+#X obj 68 87 pack 0 0;
+#X text 129 42 width;
+#X obj 69 134 s \$0-title;
+#X msg 68 112 vis_size \$1 \$2;
+#X obj 142 82 t b f;
+#X connect 0 0 2 0;
+#X connect 1 0 6 0;
+#X connect 2 0 5 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 6 1 2 1;
+#X restore 853 1 pd ed;
+#X obj 1 -8 cnv 15 900 30 empty \$0-title rrad.nseq 20 12 0 20 -257472
+-262144 0;
+#X obj 156 570 ezdac~;
+#N canvas 0 0 450 300 testtone 0;
+#X obj 115 25 inlet;
+#X obj 89 264 outlet~;
+#X obj 171 110 mtof;
+#X obj 115 48 select 0;
+#X obj 166 80 t b f;
+#X obj 90 240 *~;
+#X obj 53 156 vline~;
+#X obj 53 184 *~;
+#X obj 55 207 *~;
+#X msg 52 134 1 10 \, 0 150 80;
+#X obj 171 158 osc~ 0;
+#X connect 0 0 3 0;
+#X connect 2 0 10 0;
+#X connect 3 1 4 0;
+#X connect 4 0 9 0;
+#X connect 4 1 2 0;
+#X connect 5 0 1 0;
+#X connect 6 0 7 0;
+#X connect 6 0 7 1;
+#X connect 7 0 8 0;
+#X connect 7 0 8 1;
+#X connect 8 0 5 0;
+#X connect 9 0 6 0;
+#X connect 10 0 5 1;
+#X restore 190 540 pd testtone;
+#X text 423 78 rrad.nseq (called nseq for now) is a sequencer for numberboxes
+carrying values from 0 to 127 . Arranged from top to bottom nseq is
+similar to old-fashioned tracker interfaces.;
+#X msg 291 64 /id/preset \$1;
+#X obj 291 39 tgl 15 0 empty empty switch_presets 20 10 0 8 -24198
+-1 -1 0 1;
+#N canvas 340 97 594 666 init 0;
+#X obj 66 303 bng 15 250 50 0 empty empty click_first 20 10 0 8 -24198
+-1 -1;
+#X obj 130 467 s \$0-start;
+#X msg 130 441 1;
+#X obj 272 40 r setmess;
+#X obj 270 86 prepend add;
+#X obj 275 64 prepend nseq;
+#X msg 387 76 \; nseq /id/preset 0 \; nseq /id/n0 83 \; nseq /id/n14
+0 \; nseq /id/n15 55 \; nseq /id/n10 93 \; nseq /id/n11 40 \; nseq
+/id/n12 76 \; nseq /id/n13 0 \; nseq /id/n6 41 \; nseq /id/n7 88 \;
+nseq /id/n8 91 \; nseq /id/n9 89 \; nseq /id/n2 76 \; nseq /id/n1 74
+\; nseq /id/n5 79 \; nseq /id/n4 79 \; nseq /id/n3 43 \; nseq /id/preset
+1 \; nseq /id/n0 83 \; nseq /id/n14 0 \; nseq /id/n15 55 \; nseq /id/n10
+93 \; nseq /id/n11 40 \; nseq /id/n12 96 \; nseq /id/n13 0 \; nseq
+/id/n6 41 \; nseq /id/n7 88 \; nseq /id/n8 45 \; nseq /id/n9 100 \;
+nseq /id/n2 95 \; nseq /id/n1 37 \; nseq /id/n5 41 \; nseq /id/n4 91
+\; nseq /id/n3 93 \;;
+#X connect 0 0 6 0;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 5 0 4 0;
+#X coords 0 0 1 1 100 40 1;
+#X restore 22 43 pd init;
+#X obj 316 105 r nseq;
+#X obj 439 379 bng 15 250 50 0 \$0-forward empty v 3 7 1 12 -262131
+-225271 -1;
+#X obj 420 379 bng 15 250 50 0 \$0-backward empty ^ 3 9 1 12 -262131
+-225271 -1;
+#X text 465 380 shift pattern up or down.;
+#X obj 241 109 mod 32;
+#X obj 241 129 sel 31;
+#X text 439 584 The rightmost outlet is OSC outlet. See the main RRADical
+documentation for details.;
+#X connect 0 0 1 0;
+#X connect 1 0 30 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 0 39 0;
+#X connect 3 0 4 0;
+#X connect 4 0 3 1;
+#X connect 6 0 2 0;
+#X connect 6 0 3 1;
+#X connect 7 0 5 0;
+#X connect 7 0 0 0;
+#X connect 30 0 29 0;
+#X connect 30 0 29 1;
+#X connect 32 0 0 1;
+#X connect 33 0 32 0;
+#X connect 35 0 0 1;
+#X connect 39 0 40 0;
+#X connect 40 0 33 0;
diff --git a/control/rrad.nseq.pd b/control/rrad.nseq.pd
index 30cfe49..3e4febd 100644
--- a/control/rrad.nseq.pd
+++ b/control/rrad.nseq.pd
@@ -1,14 +1,14 @@
-#N canvas 237 255 108 385 10;
-#X obj 2 19 cnv 15 100 360 empty \$0-background-cnv empty 20 12 1 14
+#N canvas 237 255 105 363 10;
+#X obj 3 19 cnv 7 100 340 empty \$0-background-cnv empty 20 12 1 14
-233017 -66577 0;
#X obj 254 1 inlet;
-#X obj 433 1 inlet OSC;
+#X obj 428 3 inlet OSC;
#N canvas 183 51 981 424 saves 0;
#X obj 45 160 originator \$1 \$0;
#X obj 152 132 inlet OSC;
-#X obj 47 55 r \$0-substate;
-#X obj 15 13 inlet substate;
-#X obj 15 35 route substate;
+#X obj 45 59 r \$0-substate;
+#X obj 18 15 inlet substate;
+#X obj 18 37 route substate;
#X obj 159 55 r \$0-copy;
#X msg 159 76 copy;
#X obj 243 50 r \$0-paste;
@@ -16,123 +16,125 @@
#X text 154 15 This is the originator \, including some ready to use
standard functionality.;
#X text 507 56 Put your commun sends here \, if you like.;
-#X msg 15 91 setsub \$1;
-#X msg 249 184 svdir \$1;
-#X obj 250 139 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X msg 8 333 svdir \$1;
+#X obj 9 288 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 250 163 savepanel;
+#X obj 9 312 savepanel;
#X obj 152 189 outlet OSC;
#X msg 108 214 svxdir /tmp/svdir.xml;
#X msg 78 241 ldxdir /tmp/svdir.xml;
#N canvas 0 0 518 492 communs 0;
-#X obj 20 39 commun /n0 \$0;
-#X obj 270 39 s \$0-n0;
-#X obj 20 61 commun /n1 \$0;
-#X obj 270 61 s \$0-n1;
-#X obj 20 83 commun /n2 \$0;
-#X obj 270 83 s \$0-n2;
-#X obj 20 105 commun /n3 \$0;
-#X obj 270 105 s \$0-n3;
-#X obj 20 127 commun /n4 \$0;
-#X obj 270 127 s \$0-n4;
-#X obj 20 149 commun /n5 \$0;
-#X obj 270 149 s \$0-n5;
-#X obj 20 171 commun /n6 \$0;
-#X obj 270 171 s \$0-n6;
-#X obj 20 193 commun /n7 \$0;
-#X obj 270 193 s \$0-n7;
-#X obj 20 215 commun /n8 \$0;
-#X obj 270 215 s \$0-n8;
-#X obj 20 237 commun /n9 \$0;
-#X obj 270 237 s \$0-n9;
-#X obj 20 259 commun /n10 \$0;
-#X obj 270 259 s \$0-n10;
-#X obj 20 281 commun /n11 \$0;
-#X obj 270 281 s \$0-n11;
-#X obj 20 303 commun /n12 \$0;
-#X obj 270 303 s \$0-n12;
-#X obj 20 325 commun /n13 \$0;
-#X obj 270 325 s \$0-n13;
-#X obj 20 347 commun /n14 \$0;
-#X obj 270 347 s \$0-n14;
-#X obj 20 369 commun /n15 \$0;
-#X obj 270 369 s \$0-n15;
-#X obj 170 39 r \$0-n0-s;
-#X obj 170 61 r \$0-n1-s;
-#X obj 169 83 r \$0-n2-s;
-#X obj 170 105 r \$0-n3-s;
-#X obj 170 127 r \$0-n4-s;
-#X obj 170 149 r \$0-n5-s;
-#X obj 170 171 r \$0-n6-s;
-#X obj 170 193 r \$0-n7-s;
-#X obj 170 215 r \$0-n8-s;
-#X obj 170 237 r \$0-n9-s;
-#X obj 170 259 r \$0-n10-s;
-#X obj 170 281 r \$0-n11-s;
-#X obj 170 303 r \$0-n12-s;
-#X obj 170 325 r \$0-n13-s;
-#X obj 170 347 r \$0-n14-s;
-#X obj 170 369 r \$0-n15-s;
+#X obj 20 39 _nslider-commun /n0 \$0;
+#X obj 299 40 s \$0-n0;
+#X obj 299 62 s \$0-n1;
+#X obj 299 84 s \$0-n2;
+#X obj 299 106 s \$0-n3;
+#X obj 299 128 s \$0-n4;
+#X obj 299 150 s \$0-n5;
+#X obj 299 172 s \$0-n6;
+#X obj 299 194 s \$0-n7;
+#X obj 299 216 s \$0-n8;
+#X obj 299 238 s \$0-n9;
+#X obj 299 260 s \$0-n10;
+#X obj 299 282 s \$0-n11;
+#X obj 299 304 s \$0-n12;
+#X obj 299 326 s \$0-n13;
+#X obj 299 348 s \$0-n14;
+#X obj 299 370 s \$0-n15;
+#X obj 199 40 r \$0-n0-s;
+#X obj 199 62 r \$0-n1-s;
+#X obj 198 84 r \$0-n2-s;
+#X obj 199 106 r \$0-n3-s;
+#X obj 199 128 r \$0-n4-s;
+#X obj 199 150 r \$0-n5-s;
+#X obj 199 172 r \$0-n6-s;
+#X obj 199 194 r \$0-n7-s;
+#X obj 199 216 r \$0-n8-s;
+#X obj 199 238 r \$0-n9-s;
+#X obj 199 260 r \$0-n10-s;
+#X obj 199 282 r \$0-n11-s;
+#X obj 199 304 r \$0-n12-s;
+#X obj 199 326 r \$0-n13-s;
+#X obj 199 348 r \$0-n14-s;
+#X obj 199 370 r \$0-n15-s;
+#X obj 20 61 _nslider-commun /n1 \$0;
+#X obj 20 83 _nslider-commun /n2 \$0;
+#X obj 20 105 _nslider-commun /n3 \$0;
+#X obj 20 127 _nslider-commun /n4 \$0;
+#X obj 20 149 _nslider-commun /n5 \$0;
+#X obj 20 171 _nslider-commun /n6 \$0;
+#X obj 20 193 _nslider-commun /n7 \$0;
+#X obj 20 215 _nslider-commun /n8 \$0;
+#X obj 20 237 _nslider-commun /n9 \$0;
+#X obj 20 259 _nslider-commun /n10 \$0;
+#X obj 20 281 _nslider-commun /n11 \$0;
+#X obj 20 303 _nslider-commun /n12 \$0;
+#X obj 20 325 _nslider-commun /n13 \$0;
+#X obj 20 347 _nslider-commun /n14 \$0;
+#X obj 20 369 _nslider-commun /n15 \$0;
#X connect 0 0 1 0;
-#X connect 2 0 3 0;
-#X connect 4 0 5 0;
-#X connect 6 0 7 0;
-#X connect 8 0 9 0;
-#X connect 10 0 11 0;
-#X connect 12 0 13 0;
-#X connect 14 0 15 0;
-#X connect 16 0 17 0;
-#X connect 18 0 19 0;
-#X connect 20 0 21 0;
-#X connect 22 0 23 0;
-#X connect 24 0 25 0;
-#X connect 26 0 27 0;
-#X connect 28 0 29 0;
-#X connect 30 0 31 0;
-#X connect 32 0 0 0;
+#X connect 17 0 0 0;
+#X connect 18 0 33 0;
+#X connect 19 0 34 0;
+#X connect 20 0 35 0;
+#X connect 21 0 36 0;
+#X connect 22 0 37 0;
+#X connect 23 0 38 0;
+#X connect 24 0 39 0;
+#X connect 25 0 40 0;
+#X connect 26 0 41 0;
+#X connect 27 0 42 0;
+#X connect 28 0 43 0;
+#X connect 29 0 44 0;
+#X connect 30 0 45 0;
+#X connect 31 0 46 0;
+#X connect 32 0 47 0;
#X connect 33 0 2 0;
-#X connect 34 0 4 0;
-#X connect 35 0 6 0;
-#X connect 36 0 8 0;
-#X connect 37 0 10 0;
-#X connect 38 0 12 0;
-#X connect 39 0 14 0;
-#X connect 40 0 16 0;
-#X connect 41 0 18 0;
-#X connect 42 0 20 0;
-#X connect 43 0 22 0;
-#X connect 44 0 24 0;
-#X connect 45 0 26 0;
-#X connect 46 0 28 0;
-#X connect 47 0 30 0;
+#X connect 34 0 3 0;
+#X connect 35 0 4 0;
+#X connect 36 0 5 0;
+#X connect 37 0 6 0;
+#X connect 38 0 7 0;
+#X connect 39 0 8 0;
+#X connect 40 0 9 0;
+#X connect 41 0 10 0;
+#X connect 42 0 11 0;
+#X connect 43 0 12 0;
+#X connect 44 0 13 0;
+#X connect 45 0 14 0;
+#X connect 46 0 15 0;
+#X connect 47 0 16 0;
#X restore 554 103 pd communs;
#X obj 45 285 outlet;
#X obj 93 97 r \$0-step;
-#X obj 420 159 r \$0-reset;
-#X obj 420 191 symbol \$1;
-#X msg 420 261 \$1/n* 0;
-#X connect 0 0 19 0;
-#X connect 0 2 15 0;
+#X obj 459 159 r \$0-reset;
+#X obj 459 191 symbol \$1;
+#X msg 459 214 \$1/n* 0;
+#X msg 18 92 1;
+#X obj 437 288 r \$0-parentstate;
+#X obj 437 309 s \$0-substate;
+#X connect 0 0 18 0;
+#X connect 0 2 14 0;
#X connect 1 0 0 1;
-#X connect 2 0 11 0;
+#X connect 2 0 23 0;
#X connect 3 0 4 0;
-#X connect 4 0 11 0;
-#X connect 4 1 0 0;
+#X connect 4 0 23 0;
#X connect 5 0 6 0;
#X connect 6 0 0 0;
#X connect 7 0 8 0;
#X connect 8 0 0 0;
#X connect 11 0 0 0;
-#X connect 12 0 0 0;
-#X connect 13 0 14 0;
-#X connect 14 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 11 0;
+#X connect 15 0 0 0;
#X connect 16 0 0 0;
-#X connect 17 0 0 0;
-#X connect 20 0 0 0;
+#X connect 19 0 0 0;
+#X connect 20 0 21 0;
#X connect 21 0 22 0;
-#X connect 22 0 23 0;
-#X connect 23 0 0 1;
-#X restore 371 0 pd saves;
+#X connect 22 0 0 1;
+#X connect 23 0 0 0;
+#X connect 24 0 25 0;
+#X restore 377 31 pd saves;
#N canvas 636 203 450 300 cnv.ctl 0;
#X obj 90 188 s \$0-background-cnv;
#X floatatom 108 59 5 10 1000 0 width - -;
@@ -146,15 +148,14 @@ standard functionality.;
#X connect 4 0 0 0;
#X connect 5 0 3 0;
#X connect 5 1 3 1;
-#X restore 296 0 pd cnv.ctl;
-#X obj 9 356 bng 15 250 50 0 \$0-copy empty copy 0 -6 0 8 -225271 -1
+#X restore 653 34 pd cnv.ctl;
+#X obj 8 292 bng 15 250 50 0 \$0-copy empty copy 0 -6 0 8 -225271 -1
-1;
-#X obj 36 356 bng 15 250 50 0 \$0-paste empty paste 0 -6 0 8 -257472
+#X obj 35 292 bng 15 250 50 0 \$0-paste empty paste 0 -6 0 8 -257472
-1 -1;
-#X obj 348 63 outlet;
-#X text 19 -1 look! ==>;
-#X obj 422 34 outlet OSC;
-#X obj 329 29 inlet;
+#X obj 377 84 outlet;
+#X text 20 -1 look! ==>;
+#X obj 428 84 outlet OSC;
#N canvas 304 261 722 388 build-ns 0;
#X msg 221 76 \; pd-tmp clear \;;
#X obj 404 99 commun-builder;
@@ -179,9 +180,7 @@ standard functionality.;
#X connect 4 1 2 0;
#X connect 6 0 4 0;
#X restore 40 115 pd count;
-#X obj 203 197 + 20;
#X obj 152 196 int 0;
-#X obj 19 264 makefilename \$0-n%d;
#X obj 20 291 s \$0-dollar-name;
#X obj 36 327 makefilename n%d;
#X obj 60 347 s \$0-name;
@@ -190,87 +189,179 @@ standard functionality.;
#X msg 152 146 0;
#X obj 49 146 t f f b;
#X msg 51 30 16;
-#X msg 316 333 \; pd-tmp obj 0 \$3 nbx 3 14 0 127 0 0 \$1 \$1 \$2 40
-8 1 10 -262144 -1 -1 0 256 \;;
+#X obj 203 197 + 16;
+#X obj 407 175 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-262144 -1 -1 0 256;
+#X msg 316 333 \; pd-tmp obj 0 \$3 nbx 3 14 0 127 0 0 \$1-s \$1 \$2
+40 8 1 10 -262144 -1 -1 0 256 \;;
+#X obj 19 264 makefilename dollar0-n%d;
#X connect 2 0 18 0;
#X connect 3 0 2 0;
#X connect 4 0 2 1;
#X connect 5 0 2 2;
-#X connect 6 0 16 0;
-#X connect 7 0 8 1;
-#X connect 8 0 7 0;
-#X connect 8 0 13 0;
+#X connect 6 0 14 0;
+#X connect 7 0 11 0;
+#X connect 7 0 16 0;
#X connect 9 0 10 0;
-#X connect 11 0 12 0;
-#X connect 14 0 6 0;
-#X connect 14 1 15 0;
-#X connect 15 0 8 1;
-#X connect 16 0 9 0;
-#X connect 16 1 11 0;
-#X connect 16 2 8 0;
-#X connect 17 0 14 0;
-#X restore 401 100 pd build-ns;
+#X connect 12 0 6 0;
+#X connect 12 1 13 0;
+#X connect 13 0 7 1;
+#X connect 14 0 19 0;
+#X connect 14 1 9 0;
+#X connect 14 2 7 0;
+#X connect 15 0 12 0;
+#X connect 16 0 7 1;
+#X connect 19 0 8 0;
+#X restore 595 60 pd build-ns;
#N canvas 475 407 319 362 tmp 0;
-#X restore 392 191 pd tmp;
-#X obj 8 27 nbx 3 14 0 127 0 0 \$0-n0-s \$0-n0 n0 40 8 1 10 -262144
--1 -1 44 256;
-#X obj 8 47 nbx 3 14 0 127 0 0 \$0-n1-s \$0-n1 n1 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 67 nbx 3 14 0 127 0 0 \$0-n2-s \$0-n2 n2 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 87 nbx 3 14 0 127 0 0 \$0-n3-s \$0-n3 n3 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 107 nbx 3 14 0 127 0 0 \$0-n4-s \$0-n4 n4 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 127 nbx 3 14 0 127 0 0 \$0-n5-s \$0-n5 n5 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 147 nbx 3 14 0 127 0 0 \$0-n6-s \$0-n6 n6 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 167 nbx 3 14 0 127 0 0 \$0-n7-s \$0-n7 n7 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 187 nbx 3 14 0 127 0 0 \$0-n8-s \$0-n8 n8 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 207 nbx 3 14 0 127 0 0 \$0-n9-s \$0-n9 n9 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 227 nbx 3 14 0 127 0 0 \$0-n10-s \$0-n10 n10 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 247 nbx 3 14 0 127 0 0 \$0-n11-s \$0-n11 n11 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 267 nbx 3 14 0 127 0 0 \$0-n12-s \$0-n12 n12 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 287 nbx 3 14 0 127 0 0 \$0-n13-s \$0-n13 n13 40 8 1 10 -262144
--1 -1 0 256;
-#X obj 8 307 nbx 3 14 0 127 0 0 \$0-n14-s \$0-n14 n14 40 8 1 10 -262144
+#X restore 596 35 pd tmp;
+#X msg 418 230 get \$1;
+#X obj 254 61 mod 16;
+#X obj 254 25 int;
+#X obj 418 255 s \$0-step;
+#X obj 418 209 makefilename /n%d;
+#X obj 72 292 bng 15 250 50 0 \$0-reset empty reset 0 -6 0 8 -258699
+-1 -1;
+#X obj 76 34 nbx 2 14 0 1000 0 0 \$0-substate \$0-substate pre 0 -6
+0 8 -261689 -1 -1 1 256;
+#X obj 570 205 makefilename \$0-n%d;
+#X obj 593 270 symbol;
+#X obj 594 241 t s b;
+#X msg 593 292 \; \$1 color 0 -1 -1;
+#X msg 570 326 \; \$1 color 80 -1 -1;
+#X obj 10 26 nbx 3 14 0 127 0 0 \$0-n0-s \$0-n0 n0 40 8 1 10 -195568
+-1 -1 83 256;
+#X obj 10 42 nbx 3 14 0 127 0 0 \$0-n1-s \$0-n1 n1 40 8 1 10 -262144
+-1 -1 37 256;
+#X obj 10 58 nbx 3 14 0 127 0 0 \$0-n2-s \$0-n2 n2 40 8 1 10 -262144
+-1 -1 95 256;
+#X obj 10 74 nbx 3 14 0 127 0 0 \$0-n3-s \$0-n3 n3 40 8 1 10 -262144
+-1 -1 93 256;
+#X obj 10 90 nbx 3 14 0 127 0 0 \$0-n4-s \$0-n4 n4 40 8 1 10 -262144
+-1 -1 91 256;
+#X obj 10 106 nbx 3 14 0 127 0 0 \$0-n5-s \$0-n5 n5 40 8 1 10 -262144
+-1 -1 41 256;
+#X obj 10 122 nbx 3 14 0 127 0 0 \$0-n6-s \$0-n6 n6 40 8 1 10 -262144
+-1 -1 41 256;
+#X obj 10 138 nbx 3 14 0 127 0 0 \$0-n7-s \$0-n7 n7 40 8 1 10 -262144
+-1 -1 88 256;
+#X obj 10 154 nbx 3 14 0 127 0 0 \$0-n8-s \$0-n8 n8 40 8 1 10 -262144
+-1 -1 45 256;
+#X obj 10 170 nbx 3 14 0 127 0 0 \$0-n9-s \$0-n9 n9 40 8 1 10 -262144
+-1 -1 100 256;
+#X obj 10 186 nbx 3 14 0 127 0 0 \$0-n10-s \$0-n10 n10 40 8 1 10 -262144
+-1 -1 93 256;
+#X obj 10 202 nbx 3 14 0 127 0 0 \$0-n11-s \$0-n11 n11 40 8 1 10 -262144
+-1 -1 40 256;
+#X obj 10 218 nbx 3 14 0 127 0 0 \$0-n12-s \$0-n12 n12 40 8 1 10 -262144
+-1 -1 96 256;
+#X obj 10 234 nbx 3 14 0 127 0 0 \$0-n13-s \$0-n13 n13 40 8 1 10 -262144
-1 -1 0 256;
-#X obj 8 327 nbx 3 14 0 127 0 0 \$0-n15-s \$0-n15 n15 40 8 1 10 -262144
+#X obj 10 250 nbx 3 14 0 127 0 0 \$0-n14-s \$0-n14 n14 40 8 1 10 -262144
-1 -1 0 256;
-#X msg 262 101 get \$1;
-#X obj 252 53 mod 16;
-#X obj 251 26 int;
-#X obj 264 127 s \$0-step;
-#X obj 259 82 makefilename /n%d;
-#X obj 73 356 bng 15 250 50 0 \$0-reset empty reset 0 -6 0 8 -258699
--1 -1;
-#X obj 77 58 nbx 2 14 0 1000 0 0 \$0-substate \$0-substate pre 0 -6
-0 8 -261689 -1 -1 0 256;
-#X obj 230 170 makefilename \$0-n%d;
-#X obj 250 221 symbol;
-#X obj 237 197 t s b;
-#X msg 253 257 \; \$1 color 0 -1 -1;
-#X msg 232 290 \; \$1 color 80 -1 -1;
-#X connect 1 0 31 0;
+#X obj 10 266 nbx 3 14 0 127 0 0 \$0-n15-s \$0-n15 n15 40 8 1 10 -262144
+-1 -1 55 256;
+#X obj 644 240 s \$0-current;
+#N canvas 465 369 450 300 keys 0;
+#X obj 191 64 r \$0-current;
+#X obj 84 66 r \$0-set-note;
+#X obj 99 104 pack 0 s;
+#X obj 194 203 spigot;
+#X obj 309 140 r \$0-tab-enabled;
+#X obj 189 132 key;
+#X obj 168 169 select 9;
+#X obj 195 235 int 0;
+#X obj 241 235 + 1;
+#X obj 195 258 mod 16;
+#X msg 99 145 \; \$2 \$1;
+#X obj 57 190 outlet;
+#X obj 335 164 key;
+#X obj 338 184 select 27;
+#X text 362 164 Esc;
+#X obj 289 81 r \$0-tab-enabled;
+#X obj 305 208 spigot;
+#X obj 302 246 s \$0-tab-enabled;
+#X msg 305 229 0;
+#X obj 267 266 s \$0-curr-step;
+#X obj 284 117 r \$0-playing;
+#X connect 0 0 2 1;
+#X connect 1 0 2 0;
+#X connect 1 0 11 0;
+#X connect 2 0 10 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 1;
+#X connect 4 0 7 1;
+#X connect 4 0 16 1;
+#X connect 5 0 6 0;
+#X connect 6 0 3 0;
+#X connect 7 0 9 0;
+#X connect 7 0 8 0;
+#X connect 8 0 7 1;
+#X connect 9 0 19 0;
+#X connect 12 0 13 0;
+#X connect 13 0 16 0;
+#X connect 16 0 18 0;
+#X connect 18 0 17 0;
+#X connect 20 0 7 1;
+#X restore 318 31 pd keys;
+#X obj 76 62 tgl 15 0 \$0-tab-enabled \$0-tab-enabled edit 0 -6 0 8
+-262144 -1 -1 0 1;
+#X obj 8 363 s \$0-set-note;
+#X obj 7 312 kbd2midi;
+#X obj 89 258 r \$0-tab-enabled;
+#X obj 148 26 r \$0-curr-step;
+#X obj 254 84 s \$0-playing;
+#X obj 418 184 r \$0-playing;
+#X obj 570 184 r \$0-playing;
+#X text 405 162 Get value from pool;
+#X text 571 164 Colorize current step;
+#X text 713 298 Re-colorize previous step;
+#X text 602 13 Utility patches;
+#X obj 76 107 bng 15 250 50 0 \$0-forward empty v 3 7 1 12 -262131
+-225271 -1;
+#X obj 76 87 bng 15 250 50 0 \$0-backward empty ^ 3 9 1 12 -262131
+-225271 -1;
+#N canvas 0 0 450 300 shifter 0;
+#X obj 141 188 s \$0-shifter;
+#X obj 138 157 f -1;
+#X obj 177 158 f 1;
+#X obj 177 80 r \$0-forward;
+#X obj 138 61 r \$0-backward;
+#X obj 98 212 s \$0-originator;
+#X msg 83 154 set;
+#X obj 179 108 t b b b;
+#X obj 226 139 s \$0-prepare-shift;
+#X obj 109 113 t b b b;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 7 0;
+#X connect 4 0 9 0;
+#X connect 6 0 5 0;
+#X connect 7 0 6 0;
+#X connect 7 1 2 0;
+#X connect 7 2 8 0;
+#X connect 9 0 6 0;
+#X connect 9 1 1 0;
+#X connect 9 2 8 0;
+#X restore 248 142 pd shifter;
+#X connect 1 0 14 0;
#X connect 2 0 3 1;
#X connect 3 0 7 0;
#X connect 3 1 9 0;
-#X connect 10 0 3 0;
-#X connect 29 0 32 0;
-#X connect 30 0 33 0;
-#X connect 30 0 36 0;
-#X connect 31 0 30 0;
-#X connect 33 0 29 0;
-#X connect 36 0 38 0;
-#X connect 36 0 40 0;
-#X connect 37 0 39 0;
-#X connect 38 0 37 1;
-#X connect 38 1 37 0;
-#X coords 0 0 1 1 102 380 1;
+#X connect 12 0 15 0;
+#X connect 13 0 47 0;
+#X connect 14 0 13 0;
+#X connect 16 0 12 0;
+#X connect 19 0 21 0;
+#X connect 19 0 23 0;
+#X connect 19 0 40 0;
+#X connect 20 0 22 0;
+#X connect 21 0 20 1;
+#X connect 21 1 20 0;
+#X connect 41 0 7 0;
+#X connect 44 0 43 0;
+#X connect 45 0 44 0;
+#X connect 46 0 13 0;
+#X connect 48 0 16 0;
+#X connect 49 0 19 0;
+#X coords 0 0 1 1 108 360 1;