aboutsummaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
authorDavide Morelli <morellid@users.sourceforge.net>2005-12-10 03:28:48 +0000
committerDavide Morelli <morellid@users.sourceforge.net>2005-12-10 03:28:48 +0000
commit6a59a3a53803ecf4ffc7b1d4b914d8fa014d1472 (patch)
treed0f6bbe7405733d454ea241fe6730c5aebf6ca84 /patches
parentb25f226536efda8462316c452daccf4a41231b43 (diff)
adding the patch actually used in a performace as example
svn path=/trunk/externals/frankenstein/; revision=4180
Diffstat (limited to 'patches')
-rwxr-xr-xpatches/GA2005.pd558
-rwxr-xr-xpatches/organist.pd322
-rwxr-xr-xpatches/percussionist.pd975
3 files changed, 1855 insertions, 0 deletions
diff --git a/patches/GA2005.pd b/patches/GA2005.pd
new file mode 100755
index 0000000..e805fe9
--- /dev/null
+++ b/patches/GA2005.pd
@@ -0,0 +1,558 @@
+#N canvas 26 150 732 323 12;
+#X obj 148 148 organist;
+#X obj 248 149 percussionist;
+#X obj 248 114 tgl 20 0 empty empty toggle 0 -6 0 8 -258699 -1 -1 0
+1;
+#X obj 137 206 dac~;
+#X obj 135 181 +~;
+#X obj 165 180 +~;
+#X symbolatom 270 234 20 0 0 0 current - current_chord;
+#X symbolatom 271 253 20 0 0 0 next - next_chord;
+#N canvas 54 3 868 635 sequencer 0;
+#X obj 138 7 cnv 15 600 450 empty empty tables 20 12 0 14 -262131 -66577
+0;
+#X obj 144 5 cnv 15 3 450 empty position 2 5 28 0 8 -24198 -258699
+0;
+#N canvas 0 0 450 300 graph7 0;
+#X array novelty-array 300 float 1;
+#A 0 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997
+0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949996
+0.937497 0.924997 0.912497 0.899997 0.899997 0.874997 0.849997 0.824997
+0.774997 0.724997 0.649998 0.599998 0.549998 0.524998 0.449998 0.399998
+0.724997 0.999996 0.999996 0.999996 0.999996 0.949997 0.949997 0.949997
+0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997
+0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997
+0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997
+0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997
+0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997 0.949997
+0.949996 0.937497 0.924997 0.899997 0.874997 0.874997 0.874997 0.874997
+0.874997 0.874997 0.874997 0.874997 0.874997 0.862497 0.849997 0.849997
+0.849997 0.837497 0.824997 0.824997 0.824997 0.824997 0.824997 0.824997
+0.824997 0.824997 0.812497 0.799997 0.762497 0.724997 0.674998 0.649998
+0.624998 0.574998 0.549998 0.524998 0.499998 0.449998 0.399999 0.374999
+0.349999 0.349999 0.349999 0.349999 0.349999 0.349999 0.349999 0.349999
+0.349999 0.349999 0.349999 0.349999 0.362499 0.374999 0.424998 0.449998
+0.487498 0.524998 0.574998 0.612498 0.649998 0.716664 0.78333 0.899997
+0.949996 0.974996 0.974996 0.974996 0.974996 0.974996 0.974996 0.974996
+0.974996 0.949996 0.949996 0.924997 0.924997 0.874997 0.849997 0.824997
+0.799997 0.774997 0.749997 0.724997 0.699997 0.674997 0.649998 0.649998
+0.624998 0.624998 0.624998 0.624998 0.608331 0.591664 0.574998 0.566665
+0.558331 0.549998 0.541665 0.533331 0.524998 0.524998 0.524998 0.524998
+0.524998 0.524998 0.524998 0.524998 0.524998 0.524998 0.524998 0.574998
+0.549998 0.549998 0.549998 0.549998 0.549998 0.549998 0.562498 0.599998
+0.649998 0.649998 0.724997 0.724997 0.749997 0.774997 0.774997 0.774997
+0.774997 0.774997 0.774997 0.774997 0.774997 0.774997 0.774997 0.774997
+0.674997 0.649998 0.624998 0.624998 0.599998 0.599998 0.599998 0.599998
+0.599998 0.599998 0.599998 0.599998 0.599998 0.599998 0.599998 0.499998
+0.449998 0.399998 0.349999 0.299999 0.299999 0.224999 0.199999 0.124999
+0.124999 0.124999 0.124999 0.124999 0.124999 0.124999 0.124999 0.124999
+0.124999 0.124999 0.124999 0.124999 0.124999 0.124999 0.124999 0.124999
+0.124999 0.124999 0.124999 0.124999 0.149999 0.162499 0.174999 0.249999
+0.262499 0.274999 0.324999 0.349999 0.362498 0.374998 0.399998 0.424998
+0.449998 0.499998 0.524998 0.549998 0.599998 0.624998 0.649997 0.674997
+0.699997 0.724997 0.741664 0.75833 0.774997 0.799997 0.824997 0.849997
+0.874997 0.924996 0.924996 0.924996 0.924996 0.874997 0.874997 0.874997
+0.874997 0.874997 0.874997 0.899997 0.874997;
+#X coords 0 1 299 0 600 40 1;
+#X restore 138 42 graph;
+#N canvas 0 0 450 300 graph7 0;
+#X array aderenza-array 300 float 1;
+#A 0 0.949998 0.949998 0.949998 0.949998 0.949998 0.949998 0.949998
+0.949998 0.949998 0.949998 0.949998 0.949998 0.949998 0.949998 0.949998
+0.949998 0.949998 0.949998 0.949998 0.949998 0.949998 0.949998 0.949998
+0.937498 0.924998 0.924998 0.899998 0.899998 0.899998 0.899998 0.899998
+0.899998 0.899998 0.899998 0.899998 0.899998 0.887498 0.874999 0.849999
+0.824999 0.799999 0.712499 0.687499 0.662499 0.637499 0.624999 0.612499
+0.604166 0.595832 0.462499 0.462499 0.456249 0.449999 0.443749 0.437499
+0.431249 0.424999 0.418749 0.412499 0.412499 0.412499 0.412499 0.412499
+0.412499 0.412499 0.412499 0.412499 0.412499 0.412499 0.412499 0.412499
+0.412499 0.437499 0.437499 0.437499 0.437499 0.437499 0.437499 0.437499
+0.437499 0.437499 0.437499 0.437499 0.437499 0.437499 0.437499 0.437499
+0.437499 0.437499 0.437499 0.437499 0.462499 0.462499 0.512499 0.587499
+0.662499 0.712499 0.787499 0.812499 0.912498 0.912498 0.912498 0.912498
+0.912498 0.912498 0.912498 0.904165 0.895832 0.887498 0.887498 0.887498
+0.887498 0.887498 0.887498 0.887498 0.887498 0.887498 0.887498 0.887498
+0.887498 0.887498 0.887498 0.887498 0.887498 0.887498 0.887498 0.887498
+0.887498 0.862498 0.837498 0.787499 0.737499 0.662499 0.537499 0.537499
+0.512499 0.474999 0.437499 0.412499 0.387499 0.362499 0.337499 0.312499
+0.287499 0.2375 0.2375 0.2125 0.2125 0.2125 0.1875 0.1875 0.1375 0.1125
+0.1125 0.0874998 0.1125 0.1125 0.0874998 0.0874998 0.0874998 0.0874998
+0.0874998 0.0874998 0.0874998 0.0874998 0.0874998 0.0874998 0.0874998
+0.0874998 0.0874998 0.0624999 0.0624999 0.0374999 0.0374999 0.0374999
+0.0374999 0.0374999 0.0374999 0.0374999 0.0374999 0.0374999 0.0374999
+0.0624999 0.0874998 0.0999998 0.1625 0.1625 0.2125 0.2375 0.2375 0.2375
+0.274999 0.312499 0.337499 0.387499 0.387499 0.387499 0.387499 0.387499
+0.387499 0.387499 0.387499 0.387499 0.387499 0.387499 0.387499 0.387499
+0.387499 0.387499 0.387499 0.387499 0.387499 0.387499 0.387499 0.387499
+0.387499 0.387499 0.387499 0.387499 0.387499 0.387499 0.412499 0.412499
+0.399999 0.387499 0.387499 0.387499 0.387499 0.387499 0.387499 0.387499
+0.387499 0.387499 0.387499 0.387499 0.412499 0.424999 0.437499 0.437499
+0.437499 0.462499 0.487499 0.512499 0.537499 0.549999 0.562499 0.587499
+0.612499 0.649999 0.687499 0.699999 0.712499 0.729165 0.745832 0.762499
+0.770832 0.779165 0.787499 0.787499 0.787499 0.787499 0.787499 0.787499
+0.787499 0.795832 0.804165 0.812499 0.816345 0.820191 0.824037 0.827883
+0.831729 0.835576 0.839422 0.843268 0.847114 0.85096 0.854806 0.858653
+0.862499 0.868748 0.874998 0.881248 0.887498 0.887498 0.887498 0.904165
+0.920832 0.937498 0.937498 0.937498 0.937498 0.937498 0.937498 0.937498
+0.937498 0.937498 0.937498 0.937498 0.937498;
+#X coords 0 1 299 0 600 40 1;
+#X restore 138 84 graph;
+#N canvas 0 0 450 300 graph7 0;
+#X array variazione-array 300 float 1;
+#A 0 0.0500002 0.0500002 0.0500002 0.0500002 0.0500002 0.0500002 0.0500002
+0.0500002 0.0500002 0.0500002 0.0500002 0.0500002 0.0500002 0.0500002
+0.0500002 0.0500002 0.0500002 0.0500002 0.0500002 0.0500002 0.0500002
+0.0500002 0.125 0.150001 0.150001 0.150001 0.175001 0.150001 0.150001
+0.150001 0.175001 0.225001 0.250001 0.300001 0.300001 0.300001 0.300001
+0.300001 0.325001 0.325001 0.325001 0.350001 0.375001 0.375001 0.375001
+0.400002 0.400002 0.400002 0.400002 0.400002 0.400002 0.400002 0.400002
+0.400002 0.400002 0.400002 0.400002 0.400002 0.375001 0.375001 0.375001
+0.325001 0.325001 0.300001 0.275001 0.275001 0.275001 0.275001 0.275001
+0.275001 0.325001 0.325001 0.275001 0.225001 0.175001 0.175001 0.175001
+0.175001 0.175001 0.175001 0.150001 0.150001 0.150001 0.150001 0.150001
+0.150001 0.150001 0.150001 0.150001 0.150001 0.150001 0.150001 0.175001
+0.175001 0.200001 0.212501 0.225001 0.225001 0.225001 0.225001 0.225001
+0.237501 0.250001 0.225001 0.250001 0.275001 0.275001 0.300001 0.300001
+0.300001 0.312501 0.325001 0.325001 0.325001 0.325001 0.325001 0.350001
+0.375001 0.375001 0.375001 0.375001 0.400002 0.412502 0.425002 0.437502
+0.450002 0.462502 0.475002 0.475002 0.475002 0.487502 0.500002 0.525002
+0.525002 0.525002 0.550002 0.550002 0.550002 0.550002 0.550002 0.550002
+0.550002 0.575002 0.600002 0.600002 0.600002 0.625002 0.625002 0.650002
+0.650002 0.700003 0.725003 0.750003 0.750003 0.750003 0.775003 0.800003
+0.800003 0.800003 0.800003 0.800003 0.800003 0.800003 0.800003 0.812503
+0.825003 0.850003 0.850003 0.850003 0.850003 0.850003 0.850003 0.850003
+0.850003 0.850003 0.850003 0.850003 0.850003 0.850003 0.850003 0.850003
+0.850003 0.850003 0.850003 0.850003 0.850003 0.850003 0.850003 0.850003
+0.850003 0.850003 0.850003 0.850003 0.850003 0.850003 0.837503 0.825003
+0.825003 0.825003 0.825003 0.825003 0.825003 0.825003 0.825003 0.825003
+0.825003 0.825003 0.825003 0.825003 0.825003 0.818753 0.812503 0.806253
+0.800003 0.790003 0.780003 0.770003 0.760003 0.750003 0.725003 0.700003
+0.675003 0.650002 0.625002 0.575002 0.525002 0.487502 0.450002 0.437502
+0.425002 0.400002 0.400002 0.400002 0.400002 0.400002 0.400001 0.391668
+0.383335 0.375001 0.366668 0.358335 0.350001 0.325001 0.325001 0.325001
+0.325001 0.325001 0.325001 0.325001 0.325001 0.316668 0.308334 0.300001
+0.275001 0.250001 0.225001 0.200001 0.175001 0.150001 0.150001 0.150001
+0.150001 0.150001 0.150001 0.150001 0.150001 0.150001 0.150001 0.150001
+0.150001 0.150001 0.150001 0.150001 0.150001 0.150001 0.150001 0.150001
+0.150001 0.150001 0.150001 0.150001 0.150001 0.150001 0.150001 0.150001
+0.150001 0.137501 0.125 0.125 0.125 0.1125 0.1 0.0750003 0.0750003
+0.0750003 0.0750003 0.0750003 0.0250001 0 0;
+#X coords 0 1 299 0 600 40 1;
+#X restore 138 125 graph;
+#N canvas 0 0 450 300 graph7 0;
+#X array riempimento-array 300 float 1;
+#A 0 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.0375 0.05 0.075 0.05
+0.05 0.05 0.05 0.075 0.075 0.075 0.075 0.075 0.075 0.075 0.075 0.08125
+0.0875 0.09375 0.1 0.15 0.15 0.15 0.15 0.15 0.15 0.15 0.15 0.15 0.166667
+0.183333 0.2 0.20625 0.2125 0.21875 0.225 0.2375 0.25 0.258333 0.266667
+0.275 0.291667 0.308333 0.325 0.341667 0.358333 0.375 0.383333 0.391667
+0.4 0.415 0.43 0.445 0.46 0.475 0.5 0.5 0.5 0.525 0.55 0.575 0.6 0.6125
+0.625 0.6375 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65
+0.65 0.65 0.65 0.65 0.6375 0.625 0.6125 0.6 0.6 0.6 0.6 0.5875 0.55
+0.5375 0.525 0.5 0.475 0.45 0.425 0.4125 0.4 0.4 0.4 0.4 0.4 0.4 0.4
+0.4 0.4 0.4 0.4125 0.425 0.4375 0.475 0.5 0.5 0.525 0.525 0.525 0.55
+0.6 0.625 0.65 0.675 0.675 0.675 0.7 0.725 0.75 0.75 0.758333 0.766666
+0.775 0.8 0.825 0.85 0.85 0.85 0.85 0.85 0.85 0.85 0.85 0.85 0.85 0.85
+0.85 0.85 0.85 0.85 0.85 0.85 0.85 0.825 0.8 0.783333 0.766666 0.75
+0.725 0.6875 0.625 0.5875 0.55 0.51 0.47 0.43 0.39 0.35 0.329167 0.308333
+0.2875 0.266667 0.245833 0.225 0.21875 0.2125 0.20625 0.2 0.205 0.21
+0.215 0.22 0.225 0.255 0.285 0.315 0.37 0.42 0.445 0.47 0.495 0.511667
+0.528333 0.545 0.57 0.595 0.62 0.645 0.686667 0.711667 0.711667 0.736667
+0.753333 0.77 0.786667 0.799167 0.811667 0.811667 0.811667 0.811667
+0.811667 0.811666 0.799167 0.786667 0.774167 0.761666 0.740833 0.72
+0.699166 0.678333 0.6575 0.636667 0.596667 0.556667 0.516667 0.476667
+0.436667 0.411667 0.411667 0.397381 0.383095 0.368809 0.354524 0.340238
+0.325952 0.311666 0.299167 0.286667 0.274167 0.261667 0.249167 0.236667
+0.230784 0.224902 0.219019 0.213137 0.207255 0.201372 0.19549 0.189608
+0.183725 0.177843 0.171961 0.166078 0.160196 0.154314 0.148431 0.148431
+0.148431 0.148431 0.131765 0.115098 0.0984313 0.0859312 0.0734312 0.0734312
+0.0484312 0.0484312 0.0234312 0.0234312 0.0234312 0.0234312 0.0234312
+0.0234312 0.0234312 0.0203062 0.0171812 0.0140562 0.0109312 0.00780625
+0.00468125 0.00155625 -0.00156875 -0.00156875 -0.00156875 -0.00156875
+-0.00156875 -0.00156875 -0.00156875 -0.00156875 -0.00156875 -0.00156875
+-0.00156875 0.0270027 0.0234312 0.0234312 0.0234312 -0.0250002;
+#X coords 0 1 299 0 600 40 1;
+#X restore 138 166 graph;
+#N canvas 0 0 450 300 graph7 0;
+#X array crossover-array 300 float 1;
+#A 0 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9
+0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9;
+#X coords 0 1 299 0.8 600 40 1;
+#X restore 138 207 graph;
+#N canvas 0 0 450 300 graph7 0;
+#X array mutation-array 300 float 1;
+#A 0 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025 0.025
+0.025;
+#X coords 0 0.1 299 0 600 40 1;
+#X restore 138 248 graph;
+#N canvas 0 0 450 300 graph7 0;
+#X array reinsert-src-array 300 float 1;
+#A 0 1 1 1 1 1.25 1.5 1.5 1.75 2 2 2.25 2.5 2.5 2.5 3 3.25 3.5 3.75
+4 4.25 4.5 4.75 4.75 4.75 4.75 4.75 4.75 4.75 4.75 4.75 4.75 4.875
+5 5 5.125 5.25 5.25 5.25 5.25 5.25 5.25 5.25 5.25 5.25 5.125 5 4.875
+4.75 4 3.5 3.125 2.75 2.25 1.75 1.25 1.125 1 0.875 0.75 0.75 0.625
+0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
+0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
+0.5 0.5 0.5 0.5 0.5 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
+0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
+0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
+0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
+0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
+0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
+0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
+0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
+0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
+0.875 1 1.125 1.25 1.375 1.5 1.625 1.75 1.875 2 2.25 2.33333 2.41667
+2.5 3 3.25 3.375 3.5 3.75 3.75 3.75 4 3.91667 3.83333 3.75 3.75 3.75
+3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75
+3.75 3.75 3.75 3.625 3.5 3.4375 3.375 3.3125 3.25 3.125 3 2.625 2.25
+2 1.75 1.75 1.625 1.5 1.25 1.25 1.25 1.25 1.25 1.25 1.2 1.15 1.1 1.05
+1 1 1 1 1 1 1 1 1;
+#X coords 0 10 299 0 600 40 1;
+#X restore 138 289 graph;
+#N canvas 0 0 450 300 graph7 0;
+#X array reinsert-last-array 300 float 1;
+#A 0 1 1 1 1 1 1 1 1.25 1.25 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5
+1.5 1.5 2 2.25 2.25 2.5 2.75 2.75 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+3.08333 3.16667 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25
+3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.375 3.5 3.58333
+3.66667 3.75 3.875 4 4.08333 4.16667 4.25 4.375 4.5 4.5 4.5 4.5 4.5
+4.5 4.5 4.5 4.5 4.5 4.5 4.625 4.75 4.83333 4.91667 5 5.25 5.5 5.5 5.5
+5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5
+5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5
+5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5
+5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5
+5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5
+5.375 5.25 5.08333 4.91667 4.75 4.625 4.5 4.5 4.5 4.25 4 4 4 4 4 4
+4 4 3.875 3.75 3.5 3.41667 3.33333 3.25 3 2.75 2.5 2.25 2 2 2 2 2 1.95833
+1.91667 1.875 1.83333 1.79167 1.75 1.75 1.75 1.75 1.75 1.75 1.75 1.75
+1.75 1.75 1.75 1.75 1.75 1.75 1.75 1.75 1.75 1.75 1.75 1.75 1.75 1.75
+1.75 1.75 1.75 1.75 1.75 1.6875 1.625 1.5625 1.5 1.42857 1.35714 1.28571
+1.21429 1.14286 1.07143 1 0.964286 0.928571 0.892857 0.857143 0.857143
+0.857143 0.857143 0.857143 0.857143 0.857143 0.857143 0.857143 0.857143
+0.857143 0.857143 0.857143 0.857143 0.857143 0.857143 0.857143 0.857143
+0.834415 0.811688 0.788961 0.766234 0.743506 0.720779 0.698052 0.675325
+0.652597 0.62987 0.607143 0.607143 0.607143 0.607143 0.607143 0.607143
+0.607143 0.607143 0.607143 0;
+#X coords 0 10 299 0 600 40 1;
+#X restore 138 330 graph;
+#N canvas 52 122 804 637 cursor 0;
+#X obj 250 31 r bar;
+#X obj 251 58 * 2;
+#X floatatom 314 45 5 0 0 0 - - -;
+#X msg 250 105 \; position pos \$1 5;
+#X obj 252 81 + 140;
+#X floatatom 96 100 5 0 0 0 - - -;
+#X obj 61 67 inlet;
+#X obj 160 92 outlet;
+#X msg 160 69 set \$1;
+#X msg 177 180 \; position label \$1;
+#X obj 177 158 makefilename %d;
+#X obj 61 125 s bar-position;
+#X connect 0 0 1 0;
+#X connect 0 0 8 0;
+#X connect 0 0 10 0;
+#X connect 1 0 4 0;
+#X connect 2 0 4 1;
+#X connect 4 0 3 0;
+#X connect 5 0 11 0;
+#X connect 6 0 11 0;
+#X connect 8 0 7 0;
+#X connect 10 0 9 0;
+#X restore 132 492 pd cursor;
+#N canvas 0 0 838 605 reading-tables 0;
+#X obj 446 314 s novelty;
+#X obj 437 268 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 514 76 s reinit;
+#X obj 45 424 s reinsert_src;
+#X obj 44 345 s reinsert_last;
+#X obj 47 98 s aderenza;
+#X obj 469 162 s riempimento;
+#X obj 456 240 s variazione;
+#X obj 41 178 s prob_crossover;
+#X obj 43 257 s prob_mutation;
+#X obj 337 16 r bar;
+#X obj 469 139 tabread riempimento-array;
+#X obj 456 288 tabread novelty-array;
+#X obj 450 116 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 463 216 tabread variazione-array;
+#X obj 445 193 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 41 51 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144 -1
+-1 0 1;
+#X obj 61 75 tabread aderenza-array;
+#X obj 516 31 select 8;
+#X msg 515 53 1;
+#X obj 40 128 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 60 152 tabread crossover-array;
+#X obj 37 210 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 55 234 tabread mutation-array;
+#X obj 65 323 tabread reinsert-src-array;
+#X floatatom 18 323 5 0 0 0 - - -;
+#X floatatom 17 396 5 0 0 0 - - -;
+#X obj 64 396 tabread reinsert-last-array;
+#X obj 442 341 vsl 15 40 60 120 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 463 360 tabread tempo-array;
+#X obj 451 387 s tempo;
+#X msg 523 396 \; tempo-array const 80;
+#X msg 472 476 \; crossover-array const 0.9;
+#X msg 472 434 \; mutation-array const 0.025;
+#X obj 183 456 vsl 15 40 60 120 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 204 476 tabread velocity-array;
+#X obj 192 502 s velocity;
+#X msg 511 523 \; velocity-array const 80;
+#X msg 35 527 \; reinsert-src-array const 1;
+#X msg 264 533 \; reinsert-last-array const 1;
+#X connect 1 0 0 0;
+#X connect 10 0 18 0;
+#X connect 10 0 11 0;
+#X connect 10 0 14 0;
+#X connect 10 0 12 0;
+#X connect 10 0 17 0;
+#X connect 10 0 21 0;
+#X connect 10 0 23 0;
+#X connect 10 0 24 0;
+#X connect 10 0 27 0;
+#X connect 10 0 29 0;
+#X connect 10 0 35 0;
+#X connect 11 0 6 0;
+#X connect 12 0 0 0;
+#X connect 13 0 6 0;
+#X connect 14 0 7 0;
+#X connect 15 0 7 0;
+#X connect 16 0 5 0;
+#X connect 17 0 5 0;
+#X connect 18 0 19 0;
+#X connect 19 0 2 0;
+#X connect 20 0 8 0;
+#X connect 21 0 8 0;
+#X connect 22 0 9 0;
+#X connect 23 0 9 0;
+#X connect 24 0 4 0;
+#X connect 25 0 4 0;
+#X connect 26 0 3 0;
+#X connect 27 0 3 0;
+#X connect 28 0 30 0;
+#X connect 29 0 30 0;
+#X connect 34 0 36 0;
+#X connect 35 0 36 0;
+#X restore 429 494 pd reading-tables;
+#X obj 139 460 hsl 600 30 0 300 0 0 empty empty position -60 25 0 8
+-261689 -1 -1 399 1;
+#X obj 442 524 cnv 15 300 60 empty next_chord_canvas F major 20 25
+1 22 -225280 -66577 0;
+#X obj 136 524 cnv 15 300 60 empty current_chord_canvas C major 20
+25 1 22 -225280 -66577 0;
+#N canvas 0 0 454 304 setting-chords 0;
+#X obj 72 60 r current_chord;
+#X msg 71 85 \; current_chord_canvas label \$1;
+#X obj 72 139 r next_chord;
+#X msg 71 164 \; next_chord_canvas label \$1;
+#X connect 0 0 1 0;
+#X connect 2 0 3 0;
+#X restore 258 495 pd setting-chords;
+#N canvas 0 0 814 488 writing-tables 0;
+#X obj 437 268 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 599 77 s reinit;
+#X obj 337 16 r bar;
+#X obj 450 116 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 445 193 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 44 33 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144 -1
+-1 0 1;
+#X obj 601 32 select 8;
+#X msg 600 54 1;
+#X obj 42 110 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 34 187 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X floatatom 37 306 5 0 0 0 - - -;
+#X floatatom 38 380 5 0 0 0 - - -;
+#X obj 61 75 tabwrite aderenza-array;
+#X obj 60 152 tabwrite crossover-array;
+#X obj 51 235 tabwrite mutation-array;
+#X obj 65 323 tabwrite reinsert-src-array;
+#X obj 64 396 tabwrite reinsert-last-array;
+#X obj 469 139 tabwrite riempimento-array;
+#X obj 464 216 tabwrite variazione-array;
+#X obj 455 289 tabwrite novelty-array;
+#X obj 442 324 vsl 15 40 60 120 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X msg 462 387 \; tempo-array const 80;
+#X obj 463 349 tabwrite tempo-array;
+#X connect 0 0 19 0;
+#X connect 2 0 12 1;
+#X connect 2 0 13 1;
+#X connect 2 0 14 1;
+#X connect 2 0 15 1;
+#X connect 2 0 16 1;
+#X connect 2 0 17 1;
+#X connect 2 0 18 1;
+#X connect 2 0 19 1;
+#X connect 2 0 22 1;
+#X connect 3 0 17 0;
+#X connect 4 0 18 0;
+#X connect 5 0 12 0;
+#X connect 6 0 7 0;
+#X connect 7 0 1 0;
+#X connect 8 0 13 0;
+#X connect 9 0 14 0;
+#X connect 10 0 15 0;
+#X connect 11 0 16 0;
+#X connect 20 0 22 0;
+#X restore 597 496 pd writing-tables;
+#N canvas 0 0 450 300 graph7 0;
+#X array tempo-array 300 float 1;
+#A 0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
+65 65 65 65 65 65 65 65 65.2143 65.4286 65.6429 65.8571 66.0714 66.2857
+66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5
+66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5
+68 68.5 69 69.5 70.25 71 71.75 72.5 72.875 73.25 73.625 74 74.75 75.5
+76 76.5 77 78 79 80 80.75 81.5 81.5 82 82.5 83 83.75 84.5 85.1 85.7
+86.3 86.9 87.5 88 88.5 89 89.5 94 94 94 95.5 95.5 95.5 95.5 95.5 95.5
+95.5 95.5 95.5 96 96.5 97 97.5 98 98.5 99 99.5 100 101 102 103 103.25
+103.5 103.75 104 104.25 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5
+104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5
+104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5
+104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5 104.5
+104.5 104.5 104.5 103 101.5 101.5 101.5 101.5 101.5 101.5 101.5 101.5
+100.75 100 100 100 98.5 98.5 98 97.5 97 96.5 96 95.5 95 94.5 94 93.5
+93 92.5 92.5 92.5 92.5 94.5 93.5 92.375 91.25 90.125 89 88.25 87.5
+86.75 86 86 86 86 86.5 86.5 83.5 83.5 83.5 83.5 83.5 83.5 83.5 82 80.5
+79 79 79 79 78.25 77.5 77.5 77.5 77.5 77.5 77.5 77 76.5 76 76 74.5
+74.5 74.5 74.5 74.5 74.5 74.5 74.5 74.5 74.5 74 73.5 73 72.25 71.5
+71.5 71.5 71.5 71.5 71.5 68.5 68.5 68.5 68.5 67.75 67.75 67.25 66.75
+66.25 66.25 66.25 66.25 66.25 66.25 66.25 66.25 66.25 66.25 66.25 63.8125
+63.625 63.4375 63.25 63.0625 62.875 62.6875 62.5 62.5 62.5 61 61 61
+61 61 61;
+#X coords 0 120 299 60 600 40 1;
+#X restore 138 370 graph;
+#N canvas 0 0 450 300 graph7 0;
+#X array velocity-array 300 float 1;
+#A 0 62 62.375 62.75 63 63.25 63.5 63.5 63.5 63.5 63.5 63.5 63.5 63.5
+64.25 64.25 64.25 64.25 64.25 65 65.375 65.75 66.125 66.5 66.5 66.5
+66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.5 66.75 67 67.25 67.25
+67.25 68 68.75 68.75 69.125 69.5 69.5 69.5 70.25 70.25 70.25 70.25
+71 71 71 71 71 71 71 71 71 71.3 71.6 71.9 72.2 72.5 73.25 73.625 74
+74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74
+74 74 74.75 74.75 74.75 75.125 75.5 75.5 75.875 76.25 76.625 77 77.375
+77.75 77.75 78.5 78.75 79 79.25 79.25 79.25 79.75 80.25 80.75 81.125
+81.5 81.5 81.5 81.5 81.5 81.5 81.5 81.75 82 82.25 82.625 83 83.75 85.25
+85.25 85.25 85.5 85.75 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86
+86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86
+86 86 86 86 86 86 86 86 85.625 85.25 85.25 85.25 85.25 85 84.75 84.5
+83.75 83 82.25 81.95 81.65 81.35 81.05 80.75 81.05 80.9 80.75 80.375
+80 79.625 79.25 79.25 79.25 78.875 78.5 78.25 78 77.75 77.75 77.75
+77.75 77.375 77 76.625 76.25 75.875 75.5 74 73.75 73.5 73.25 72.5 72.5
+72.5 72.3125 72.125 71.9375 71.75 71 70.75 70.5 70.25 70.1346 70.0193
+69.9039 69.7885 69.6731 69.5577 69.4423 69.3269 69.2115 69.0962 68.9808
+68.8654 68.75 68.75 68.75 68.75 68.75 68.75 68.75 68.75 68.75 68.75
+68.75 68 68 68 68 68 68 68 67.25 66.5 66.125 65.75 65.375 65 65 65
+64.8928 64.7857 64.6786 64.5714 64.4643 64.3571 64.25 64.25 64.25 64.25
+63.875 63.5 63.125 62.75 62.5357 62.3214 62.1071 61.8929 61.6786 61.4643
+61.25 61.25 61.25 61.25 61.25 61.25 61.25 61.25;
+#X coords 0 90 299 60 600 40 1;
+#X restore 139 412 graph;
+#X text 466 568 next;
+#X text 367 568 current -->;
+#X connect 10 0 12 0;
+#X connect 12 0 10 0;
+#X restore 255 65 pd sequencer;
+#N canvas 296 372 546 320 count-bars 0;
+#X obj 55 230 int 0;
+#X obj 104 230 + 1;
+#X obj 43 45 bang;
+#X msg 177 90 0;
+#X obj 329 64 r bar-position;
+#X obj 55 254 s bar;
+#X obj 56 191 spigot;
+#X obj 41 21 inlet bang;
+#X obj 110 40 inlet toggle;
+#X obj 178 66 inlet reset;
+#X obj 320 27 inlet set-position;
+#X connect 0 0 1 0;
+#X connect 0 0 5 0;
+#X connect 1 0 0 1;
+#X connect 2 0 6 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 6 0 0 0;
+#X connect 7 0 2 0;
+#X connect 8 0 6 1;
+#X connect 9 0 3 0;
+#X connect 10 0 0 0;
+#X restore 381 193 pd count-bars;
+#X obj 499 168 hsl 128 15 0 300 0 0 empty empty position -2 -6 0 8
+-261681 -1 -1 500 1;
+#X obj 402 169 tgl 15 0 empty empty toggle 0 -6 0 8 -261681 -1 -1 1
+1;
+#X obj 450 168 bng 15 250 50 0 empty empty rewind 0 -6 0 8 -261681
+-1 -1;
+#X text 364 65 <-- open ME !;
+#X obj 597 193 loadbang;
+#X msg 598 215 1;
+#X connect 0 0 4 0;
+#X connect 0 1 5 0;
+#X connect 0 2 6 0;
+#X connect 0 3 7 0;
+#X connect 1 0 4 1;
+#X connect 1 1 5 1;
+#X connect 1 2 0 0;
+#X connect 1 2 9 0;
+#X connect 2 0 1 0;
+#X connect 4 0 3 0;
+#X connect 5 0 3 1;
+#X connect 10 0 9 3;
+#X connect 11 0 9 1;
+#X connect 12 0 9 2;
+#X connect 14 0 15 0;
+#X connect 15 0 11 0;
+#X connect 15 0 12 0;
diff --git a/patches/organist.pd b/patches/organist.pd
new file mode 100755
index 0000000..3353716
--- /dev/null
+++ b/patches/organist.pd
@@ -0,0 +1,322 @@
+#N canvas 14 34 935 707 12;
+#X symbolatom 731 341 18 0 0 2 next_chord - -;
+#N canvas 39 349 531 328 readme 0;
+#X text 59 31 howto populate the graph: play the chord \, when the
+output of [chord] is ok bang the "add" message. bang it each time you
+change chord \, it will store the transitions;
+#X text 56 120 howto ask for the next chord: play the chord \, bang
+the "set" message \, this will set the current chord without adding
+it to the graph's memory \, now bang the next 1 message. this chord_graph
+will respond with the chord you played most of the times after the
+current chord. you can send "next x" where x is from 0 to 1 \, 0 =
+max novelty \, 1= min novelty;
+#X text 56 259 you can save graph state sending the write message;
+#X restore 762 56 pd readme;
+#X obj 121 329 harmonizer;
+#X msg 44 298 current \$1;
+#X msg 158 283 target \$1;
+#X obj 44 274 symbol;
+#X obj 44 254 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 157 261 symbol;
+#X obj 289 261 int 36;
+#X obj 355 262 int 60;
+#X obj 426 260 int 67;
+#X obj 494 259 int 76;
+#X obj 566 262 int 84;
+#X obj 335 289 pack f f f f f;
+#X obj 358 233 t b b b b b;
+#X obj 245 347 unpack f f f f f;
+#X obj 153 97 symbol;
+#X obj 98 43 bng 15 250 50 0 empty empty change_chord 0 -6 0 8 -262144
+-1 -1;
+#X msg 153 121 set \$1;
+#N canvas 0 0 718 428 midi 0;
+#X obj 141 253 outlet;
+#X obj 271 31 notein;
+#X obj 271 66 chord 59;
+#X msg 175 149 add \$1;
+#X obj 175 121 symbol;
+#X obj 176 94 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 248 163 symbol;
+#X obj 249 136 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 248 191 set \$1;
+#X symbolatom 311 101 25 0 0 0 - - -;
+#X connect 1 0 2 0;
+#X connect 1 1 2 1;
+#X connect 2 2 4 1;
+#X connect 2 2 6 1;
+#X connect 2 2 9 0;
+#X connect 3 0 0 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 8 0 0 0;
+#X restore 423 135 pd midi;
+#N canvas 0 0 466 316 fileIO 0;
+#X obj 143 225 outlet;
+#X msg 175 135 init 1;
+#X msg 115 77 write strani;
+#X msg 145 105 read strani;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X restore 340 134 pd fileIO;
+#X obj 100 73 t b b;
+#X obj 157 228 t b a;
+#X obj 49 348 bang;
+#X obj 63 111 f 1;
+#X msg 59 135 next \$1;
+#X obj 48 70 vsl 15 30 0 1 0 0 empty empty empty 0 -8 0 8 -262144 -1
+-1 1547 1;
+#X floatatom 13 112 5 0 0 0 - - -;
+#X obj 178 571 csoundapi~ bay.orc;
+#X msg 463 545 event i 10 0 17000 10 30;
+#X msg 463 568 event i 30 0 17000 2 30;
+#X msg 464 521 event i 25 0 17000 0.98 0.8 20000;
+#X obj 466 497 loadbang;
+#X obj 13 32 r novelty;
+#X obj 462 63 t b b;
+#X obj 220 96 symbol;
+#X msg 220 124 tonality \$1;
+#X obj 220 72 bng 15 250 50 0 empty empty change 0 -6 0 8 -262144 -1
+-1;
+#X obj 19 160 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X symbolatom 305 204 15 0 0 2 tonality - -;
+#X text 529 392 this transposes of a + minor 3rd;
+#X obj 458 361 loadbang;
+#X msg 459 386 3;
+#X symbolatom 575 339 18 0 0 2 curr_chord - -;
+#X obj 42 218 symbol;
+#X obj 42 194 t s b;
+#X obj 29 606 outlet~;
+#X obj 106 609 outlet~;
+#X obj 578 358 outlet;
+#X obj 733 360 outlet;
+#N canvas 0 0 812 538 prepare_voice 0;
+#X obj 48 57 inlet;
+#X obj 392 55 inlet;
+#X obj 46 422 outlet;
+#X obj 52 95 + 0;
+#X obj 49 184 mtof;
+#X obj 52 129 t f b;
+#X obj 50 154 int 60;
+#X text 399 138 this adds a 1 chord delay;
+#X obj 115 55 inlet;
+#X obj 113 420 outlet;
+#X obj 119 93 + 0;
+#X obj 116 179 mtof;
+#X obj 119 127 t f b;
+#X obj 117 152 int 60;
+#X obj 176 52 inlet;
+#X obj 174 417 outlet;
+#X obj 180 90 + 0;
+#X obj 177 179 mtof;
+#X obj 180 124 t f b;
+#X obj 178 149 int 60;
+#X obj 242 54 inlet;
+#X obj 240 419 outlet;
+#X obj 246 92 + 0;
+#X obj 243 181 mtof;
+#X obj 246 126 t f b;
+#X obj 244 151 int 60;
+#X obj 307 54 inlet;
+#X obj 305 419 outlet;
+#X obj 311 92 + 0;
+#X obj 308 181 mtof;
+#X obj 311 126 t f b;
+#X obj 309 151 int 60;
+#X text 383 38 semitones;
+#X obj 47 313 spigot;
+#X obj 505 268 loadbang;
+#X msg 506 291 1;
+#X obj 63 290 r v1;
+#X obj 119 313 spigot;
+#X obj 180 314 spigot;
+#X obj 247 313 spigot;
+#X obj 312 313 spigot;
+#X obj 135 290 r v2;
+#X obj 196 291 r v3;
+#X obj 263 291 r v4;
+#X obj 328 290 r v5;
+#X connect 0 0 3 0;
+#X connect 1 0 3 1;
+#X connect 1 0 28 1;
+#X connect 1 0 22 1;
+#X connect 1 0 10 1;
+#X connect 1 0 16 1;
+#X connect 3 0 5 0;
+#X connect 4 0 33 0;
+#X connect 5 0 6 1;
+#X connect 5 1 6 0;
+#X connect 6 0 4 0;
+#X connect 8 0 10 0;
+#X connect 10 0 12 0;
+#X connect 11 0 37 0;
+#X connect 12 0 13 1;
+#X connect 12 1 13 0;
+#X connect 13 0 11 0;
+#X connect 14 0 16 0;
+#X connect 16 0 18 0;
+#X connect 17 0 38 0;
+#X connect 18 0 19 1;
+#X connect 18 1 19 0;
+#X connect 19 0 17 0;
+#X connect 20 0 22 0;
+#X connect 22 0 24 0;
+#X connect 23 0 39 0;
+#X connect 24 0 25 1;
+#X connect 24 1 25 0;
+#X connect 25 0 23 0;
+#X connect 26 0 28 0;
+#X connect 28 0 30 0;
+#X connect 29 0 40 0;
+#X connect 30 0 31 1;
+#X connect 30 1 31 0;
+#X connect 31 0 29 0;
+#X connect 33 0 2 0;
+#X connect 34 0 35 0;
+#X connect 35 0 33 1;
+#X connect 35 0 37 1;
+#X connect 35 0 38 1;
+#X connect 35 0 39 1;
+#X connect 35 0 40 1;
+#X connect 36 0 33 1;
+#X connect 37 0 9 0;
+#X connect 38 0 15 0;
+#X connect 39 0 21 0;
+#X connect 40 0 27 0;
+#X connect 41 0 37 1;
+#X connect 42 0 38 1;
+#X connect 43 0 39 1;
+#X connect 44 0 40 1;
+#X restore 237 387 pd prepare_voice;
+#X obj 45 415 tgl 20 0 v1 empty toggle_v1 0 -6 0 8 -262144 -1 -1 1
+1;
+#X obj 44 446 tgl 20 0 v2 empty toggle_v2 0 -6 0 8 -262144 -1 -1 1
+1;
+#X obj 43 476 tgl 20 0 v3 empty toggle_v3 0 -6 0 8 -262144 -1 -1 1
+1;
+#X obj 43 507 tgl 20 0 v4 empty toggle_v4 0 -6 0 8 -262144 -1 -1 1
+1;
+#X obj 40 537 tgl 20 0 v5 empty toggle_v5 0 -6 0 8 -262144 -1 -1 1
+1;
+#X obj 7 376 loadbang;
+#X msg 8 399 1;
+#X obj 83 169 chords_memory strani;
+#X obj 595 20 inlet;
+#X obj 595 43 bang;
+#X obj 596 64 int 0;
+#X obj 647 65 + 1;
+#X obj 598 86 % 2;
+#X obj 462 40 sel 0;
+#X obj 326 431 r msec-beat;
+#X obj 326 474 / 1000;
+#X obj 326 452 * 32;
+#X obj 327 495 + 2;
+#X obj 174 499 pack f f f;
+#X obj 429 456 r velocity;
+#X floatatom 417 491 5 0 0 0 - - -;
+#X msg 171 522 event i 9 0 \$2 \$1 \$3 0.5;
+#X obj 27 585 *~ 0.9;
+#X obj 105 587 *~ 0.9;
+#X connect 2 0 15 0;
+#X connect 3 0 2 0;
+#X connect 4 0 2 0;
+#X connect 5 0 3 0;
+#X connect 6 0 5 0;
+#X connect 7 0 4 0;
+#X connect 8 0 13 0;
+#X connect 9 0 13 1;
+#X connect 10 0 13 2;
+#X connect 11 0 13 3;
+#X connect 12 0 13 4;
+#X connect 13 0 2 0;
+#X connect 14 0 8 0;
+#X connect 14 1 9 0;
+#X connect 14 2 10 0;
+#X connect 14 3 11 0;
+#X connect 14 4 12 0;
+#X connect 15 0 8 1;
+#X connect 15 0 23 0;
+#X connect 15 0 50 0;
+#X connect 15 1 9 1;
+#X connect 15 1 50 1;
+#X connect 15 2 10 1;
+#X connect 15 2 50 2;
+#X connect 15 3 11 1;
+#X connect 15 3 50 3;
+#X connect 15 4 12 1;
+#X connect 15 4 50 4;
+#X connect 16 0 18 0;
+#X connect 17 0 21 0;
+#X connect 18 0 58 0;
+#X connect 19 0 58 0;
+#X connect 20 0 58 0;
+#X connect 21 0 24 0;
+#X connect 22 0 14 0;
+#X connect 22 1 7 0;
+#X connect 23 0 5 0;
+#X connect 24 0 25 0;
+#X connect 25 0 58 0;
+#X connect 26 0 24 1;
+#X connect 26 0 27 0;
+#X connect 28 0 73 0;
+#X connect 28 1 74 0;
+#X connect 29 0 28 0;
+#X connect 30 0 28 0;
+#X connect 31 0 28 0;
+#X connect 32 0 31 0;
+#X connect 32 0 29 0;
+#X connect 32 0 30 0;
+#X connect 33 0 26 0;
+#X connect 34 0 21 0;
+#X connect 35 0 36 0;
+#X connect 36 0 58 0;
+#X connect 37 0 35 0;
+#X connect 38 0 58 0;
+#X connect 42 0 50 5;
+#X connect 44 0 43 0;
+#X connect 44 0 48 0;
+#X connect 45 0 44 1;
+#X connect 45 1 44 0;
+#X connect 50 0 69 0;
+#X connect 50 1 69 0;
+#X connect 50 2 69 0;
+#X connect 50 3 69 0;
+#X connect 50 4 69 0;
+#X connect 56 0 57 0;
+#X connect 57 0 51 0;
+#X connect 57 0 52 0;
+#X connect 57 0 53 0;
+#X connect 57 0 54 0;
+#X connect 57 0 55 0;
+#X connect 58 0 0 0;
+#X connect 58 0 5 1;
+#X connect 58 0 22 0;
+#X connect 58 0 35 1;
+#X connect 58 0 16 0;
+#X connect 58 0 45 0;
+#X connect 58 0 49 0;
+#X connect 58 1 39 0;
+#X connect 59 0 60 0;
+#X connect 60 0 61 0;
+#X connect 61 0 62 0;
+#X connect 61 0 63 0;
+#X connect 62 0 61 1;
+#X connect 63 0 64 0;
+#X connect 64 0 34 0;
+#X connect 65 0 67 0;
+#X connect 66 0 68 0;
+#X connect 67 0 66 0;
+#X connect 68 0 69 1;
+#X connect 69 0 72 0;
+#X connect 70 0 69 2;
+#X connect 70 0 71 0;
+#X connect 72 0 28 0;
+#X connect 73 0 46 0;
+#X connect 74 0 47 0;
diff --git a/patches/percussionist.pd b/patches/percussionist.pd
new file mode 100755
index 0000000..c7ec609
--- /dev/null
+++ b/patches/percussionist.pd
@@ -0,0 +1,975 @@
+#N canvas 0 0 1011 709 12;
+#N canvas 4 65 458 308 perc 0;
+#X obj 351 17 inlet;
+#X obj 158 250 outlet~;
+#X obj 168 45 noise~;
+#X obj 180 190 line 0 50;
+#X obj 158 216 *~;
+#X msg 310 137 0 50;
+#X obj 156 112 *~ 0.5;
+#X msg 262 96 1 10;
+#X obj 316 90 delay 50;
+#X connect 0 0 7 0;
+#X connect 0 0 8 0;
+#X connect 2 0 6 0;
+#X connect 3 0 4 1;
+#X connect 4 0 1 0;
+#X connect 5 0 3 0;
+#X connect 6 0 4 0;
+#X connect 7 0 3 0;
+#X connect 8 0 5 0;
+#X restore 53 459 pd perc;
+#X obj 54 441 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X obj 361 183 metro;
+#N canvas 1 23 474 324 msecs 0;
+#X obj 58 19 inlet;
+#X obj 61 209 outlet;
+#X obj 57 147 /;
+#X obj 57 100 bang;
+#X obj 73 79 t f f;
+#X obj 57 174 / 4;
+#X msg 57 122 60000;
+#X connect 0 0 4 0;
+#X connect 2 0 5 0;
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 4 1 2 1;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X restore 425 154 pd msecs;
+#X obj 424 80 loadbang;
+#X msg 425 101 60;
+#X obj 361 160 tgl 15 0 empty empty empty 0 -6 0 8 -258699 -1 -1 1
+1;
+#N canvas 0 0 490 340 graph2 0;
+#X obj 122 9 inlet;
+#X obj 362 255 outlet;
+#X obj 171 33 int;
+#X obj 204 31 + 1;
+#X obj 185 57 % 4;
+#X obj 168 78 sel 0;
+#X obj 168 105 bng 15 250 50 0 empty empty beat 0 -6 0 8 -262144 -1
+-1;
+#X obj 263 86 sel 0;
+#X obj 264 108 bng 15 250 50 0 empty empty bar 0 -6 0 8 -262144 -1
+-1;
+#X obj 262 63 % 16;
+#X obj 69 278 hradio 10 1 0 16 empty empty empty 0 -6 0 8 -262144 -1
+-1 13;
+#X obj 70 64 / 2;
+#X obj 71 87 int;
+#X obj 72 111 hradio 10 1 0 2 empty empty 1/8 0 -6 0 8 -262144 -1 -1
+0;
+#X obj 342 78 int;
+#X obj 73 220 hradio 10 1 0 4 empty empty 1/4 0 -6 0 8 -262144 -1 -1
+3;
+#X obj 341 55 / 4;
+#X obj 70 167 hradio 10 1 0 4 empty empty 1/16 0 -6 0 8 -262144 -1
+-1 1;
+#X connect 0 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 2 1;
+#X connect 3 0 4 0;
+#X connect 3 0 9 0;
+#X connect 4 0 5 0;
+#X connect 4 0 17 0;
+#X connect 4 0 11 0;
+#X connect 5 0 6 0;
+#X connect 7 0 8 0;
+#X connect 9 0 7 0;
+#X connect 9 0 10 0;
+#X connect 9 0 16 0;
+#X connect 9 0 1 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 14 0 15 0;
+#X connect 16 0 14 0;
+#X coords 0 1 100 -1 200 140 1;
+#X restore 381 242 graph;
+#X floatatom 447 179 5 0 0 0 - - -;
+#X obj 475 424 t a a;
+#X obj 470 450 bang;
+#X obj 373 221 delay;
+#X obj 408 200 / 2;
+#N canvas 65 11 799 687 instr_bass 0;
+#X obj 72 43 inlet;
+#X obj 249 569 throw~ mainL;
+#X obj 355 563 throw~ mainR;
+#X obj 81 80 int;
+#X obj 45 132 select 1;
+#X obj 146 179 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 238 34 inlet;
+#X obj 223 299 bng 25 250 50 0 empty empty play 30 10 0 8 -258699 -241291
+-1;
+#X obj 253 322 bng 25 250 50 0 empty empty load 30 10 0 8 -258699 -241291
+-1;
+#X obj 223 276 r channel1;
+#X obj 136 382 sampleplayer 1;
+#X msg 250 356 samples/BD01.WAV;
+#X obj 401 522 outlet~;
+#X obj 96 214 r sampleinit;
+#X floatatom 62 338 5 0 0 0 - - -;
+#X text 57 320 length;
+#X floatatom 63 361 5 0 0 0 - - -;
+#X text 56 379 volume;
+#X floatatom 110 338 5 0 0 0 - - -;
+#X floatatom 159 338 5 0 0 0 - - -;
+#X text 159 318 pitch;
+#X text 111 319 start;
+#X obj 250 413 s lastload;
+#X msg 100 290 1;
+#X msg 62 290 440;
+#X msg 137 290 100;
+#X obj 337 509 *~ 0;
+#X obj 520 119 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 7620 1;
+#X obj 504 46 loadbang;
+#X obj 509 350 loadbang;
+#N canvas 263 354 478 328 varia 0;
+#X obj 244 46 inlet;
+#X obj 135 193 outlet;
+#X obj 137 94 osc~ 0.001;
+#X obj 137 119 snapshot~;
+#X obj 244 110 metro 100;
+#X obj 136 168 / 2;
+#X obj 131 48 inlet;
+#X obj 137 142 + 1;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X connect 7 0 5 0;
+#X restore 577 382 pd varia;
+#X obj 637 358 tgl 15 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0
+1;
+#X floatatom 583 435 5 0 0 0 - - -;
+#X msg 509 373 0.005;
+#X obj 542 462 loadbang;
+#N canvas 263 354 478 328 varia 0;
+#X obj 244 46 inlet;
+#X obj 135 193 outlet;
+#X obj 137 94 osc~ 0.001;
+#X obj 137 119 snapshot~;
+#X obj 244 110 metro 100;
+#X obj 136 168 / 2;
+#X obj 131 48 inlet;
+#X obj 137 142 + 1;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X connect 7 0 5 0;
+#X restore 610 494 pd varia;
+#X obj 670 470 tgl 15 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0
+1;
+#X floatatom 619 546 5 0 0 0 - - -;
+#X obj 609 521 * 20;
+#X msg 542 485 0.025;
+#X obj 300 460 bp~ 100 20;
+#X obj 576 409 * 100;
+#X msg 506 70 0.6;
+#X obj 81 104 tabread proposed1;
+#X connect 0 0 3 0;
+#X connect 3 0 43 0;
+#X connect 4 0 5 0;
+#X connect 4 0 7 0;
+#X connect 6 0 7 0;
+#X connect 7 0 10 4;
+#X connect 8 0 10 5;
+#X connect 9 0 7 0;
+#X connect 10 0 26 0;
+#X connect 10 1 22 0;
+#X connect 11 0 10 6;
+#X connect 13 0 11 0;
+#X connect 13 0 24 0;
+#X connect 13 0 23 0;
+#X connect 13 0 25 0;
+#X connect 14 0 10 1;
+#X connect 16 0 10 0;
+#X connect 18 0 10 2;
+#X connect 19 0 10 3;
+#X connect 23 0 18 0;
+#X connect 24 0 14 0;
+#X connect 25 0 19 0;
+#X connect 26 0 1 0;
+#X connect 26 0 2 0;
+#X connect 26 0 12 0;
+#X connect 27 0 26 1;
+#X connect 28 0 42 0;
+#X connect 29 0 33 0;
+#X connect 30 0 41 0;
+#X connect 31 0 30 1;
+#X connect 33 0 30 0;
+#X connect 34 0 39 0;
+#X connect 35 0 38 0;
+#X connect 36 0 35 1;
+#X connect 38 0 37 0;
+#X connect 38 0 40 2;
+#X connect 39 0 35 0;
+#X connect 41 0 32 0;
+#X connect 41 0 40 1;
+#X connect 42 0 27 0;
+#X connect 43 0 4 0;
+#X restore 325 431 pd instr_bass;
+#N canvas 65 11 787 675 instr_high 0;
+#X obj 72 43 inlet;
+#X obj 150 594 throw~ mainL;
+#X obj 274 591 throw~ mainR;
+#X obj 81 80 int;
+#X obj 45 132 select 1;
+#X obj 146 179 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 260 44 inlet;
+#X obj 229 309 bng 25 250 50 0 empty empty play 30 10 0 8 -258699 -241291
+-1;
+#X obj 259 332 bng 25 250 50 0 empty empty load 30 10 0 8 -258699 -241291
+-1;
+#X obj 378 570 outlet~;
+#X obj 106 227 r sampleinit;
+#X floatatom 68 348 5 0 0 0 - - -;
+#X text 63 330 length;
+#X floatatom 69 371 5 0 0 0 - - -;
+#X text 62 389 volume;
+#X floatatom 116 348 5 0 0 0 - - -;
+#X floatatom 165 348 5 0 0 0 - - -;
+#X text 165 328 pitch;
+#X text 117 329 start;
+#X obj 249 420 s lastload;
+#X msg 106 300 1;
+#X msg 68 300 440;
+#X obj 142 392 sampleplayer 2;
+#X obj 229 286 r channel2;
+#X msg 143 300 100;
+#X msg 256 366 samples/SD01.WAV;
+#X obj 250 525 *~ 0;
+#X obj 523 151 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 5080 1;
+#X obj 504 46 loadbang;
+#X obj 475 365 loadbang;
+#N canvas 263 354 478 328 varia 0;
+#X obj 244 46 inlet;
+#X obj 135 193 outlet;
+#X obj 137 94 osc~ 0.001;
+#X obj 137 119 snapshot~;
+#X obj 244 110 metro 100;
+#X obj 136 168 / 2;
+#X obj 131 48 inlet;
+#X obj 137 142 + 1;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X connect 7 0 5 0;
+#X restore 543 397 pd varia;
+#X obj 603 373 tgl 15 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0
+1;
+#X obj 266 477 bp~ 100 20;
+#X floatatom 549 450 5 0 0 0 - - -;
+#X obj 542 424 * 8000;
+#X msg 475 388 0.005;
+#X obj 508 477 loadbang;
+#N canvas 263 354 478 328 varia 0;
+#X obj 244 46 inlet;
+#X obj 135 193 outlet;
+#X obj 137 94 osc~ 0.001;
+#X obj 137 119 snapshot~;
+#X obj 244 110 metro 100;
+#X obj 136 168 / 2;
+#X obj 131 48 inlet;
+#X obj 137 142 + 1;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X connect 7 0 5 0;
+#X restore 576 509 pd varia;
+#X obj 636 485 tgl 15 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0
+1;
+#X floatatom 585 561 5 0 0 0 - - -;
+#X obj 575 536 * 20;
+#X msg 508 500 0.025;
+#X msg 506 70 0.4;
+#X obj 81 104 tabread proposed2;
+#X connect 0 0 3 0;
+#X connect 3 0 43 0;
+#X connect 4 0 5 0;
+#X connect 4 0 7 0;
+#X connect 6 0 7 0;
+#X connect 7 0 22 4;
+#X connect 8 0 22 5;
+#X connect 10 0 25 0;
+#X connect 10 0 21 0;
+#X connect 10 0 20 0;
+#X connect 10 0 24 0;
+#X connect 11 0 22 1;
+#X connect 13 0 22 0;
+#X connect 15 0 22 2;
+#X connect 16 0 22 3;
+#X connect 20 0 15 0;
+#X connect 21 0 11 0;
+#X connect 22 0 26 0;
+#X connect 22 1 19 0;
+#X connect 23 0 7 0;
+#X connect 24 0 16 0;
+#X connect 25 0 22 6;
+#X connect 26 0 9 0;
+#X connect 26 0 1 0;
+#X connect 26 0 2 0;
+#X connect 27 0 26 1;
+#X connect 28 0 42 0;
+#X connect 29 0 35 0;
+#X connect 30 0 34 0;
+#X connect 31 0 30 1;
+#X connect 34 0 32 1;
+#X connect 34 0 33 0;
+#X connect 35 0 30 0;
+#X connect 36 0 41 0;
+#X connect 37 0 40 0;
+#X connect 38 0 37 1;
+#X connect 40 0 32 2;
+#X connect 40 0 39 0;
+#X connect 41 0 37 0;
+#X connect 42 0 27 0;
+#X connect 43 0 4 0;
+#X restore 325 454 pd instr_high;
+#N canvas 48 52 595 565 metro 0;
+#X obj 64 231 throw~ mainL;
+#X obj 186 232 throw~ mainR;
+#X obj 83 33 inlet;
+#X obj 82 87 bang;
+#N canvas 4 65 458 308 perc 0;
+#X obj 351 17 inlet;
+#X obj 158 250 outlet~;
+#X obj 168 45 noise~;
+#X obj 180 190 line 0 50;
+#X obj 158 216 *~;
+#X msg 310 137 0 50;
+#X msg 262 96 1 10;
+#X obj 316 90 delay 50;
+#X obj 156 113 *~ 0.1;
+#X connect 0 0 6 0;
+#X connect 0 0 7 0;
+#X connect 2 0 8 0;
+#X connect 3 0 4 1;
+#X connect 4 0 1 0;
+#X connect 5 0 3 0;
+#X connect 6 0 3 0;
+#X connect 7 0 5 0;
+#X connect 8 0 4 0;
+#X restore 83 149 pd perc;
+#X obj 103 185 *~ 0.3;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 5 0 0 0;
+#X restore 325 410 pd metro;
+#X obj 118 514 catch~ mainL;
+#X obj 118 536 catch~ mainR;
+#N canvas 23 68 811 352 capture 0;
+#X obj 713 29 inlet;
+#X obj 148 224 int;
+#X msg 58 204 1;
+#X obj 68 179 t a a;
+#X obj 101 200 bang;
+#X obj 43 247 tabwrite played1;
+#X obj 59 145 inlet;
+#X obj 305 227 int;
+#X msg 215 207 1;
+#X obj 225 182 t a a;
+#X obj 258 203 bang;
+#X obj 216 148 inlet;
+#X obj 458 227 int;
+#X msg 368 207 1;
+#X obj 378 182 t a a;
+#X obj 411 203 bang;
+#X obj 369 148 inlet;
+#X obj 607 227 int;
+#X msg 517 207 1;
+#X obj 527 182 t a a;
+#X obj 560 203 bang;
+#X obj 518 148 inlet;
+#X obj 200 250 tabwrite played2;
+#X obj 354 250 tabwrite played3;
+#X obj 502 250 tabwrite played4;
+#X connect 0 0 1 1;
+#X connect 0 0 7 1;
+#X connect 0 0 12 1;
+#X connect 0 0 17 1;
+#X connect 1 0 5 1;
+#X connect 2 0 5 0;
+#X connect 3 0 2 0;
+#X connect 3 1 4 0;
+#X connect 4 0 1 0;
+#X connect 6 0 3 0;
+#X connect 7 0 22 1;
+#X connect 8 0 22 0;
+#X connect 9 0 8 0;
+#X connect 9 1 10 0;
+#X connect 10 0 7 0;
+#X connect 11 0 9 0;
+#X connect 12 0 23 1;
+#X connect 13 0 23 0;
+#X connect 14 0 13 0;
+#X connect 14 1 15 0;
+#X connect 15 0 12 0;
+#X connect 16 0 14 0;
+#X connect 17 0 24 1;
+#X connect 18 0 24 0;
+#X connect 19 0 18 0;
+#X connect 19 1 20 0;
+#X connect 20 0 17 0;
+#X connect 21 0 19 0;
+#X restore 135 484 pd capture;
+#X text 37 224 this delay is to center the quantization;
+#X obj 426 130 nbx 5 14 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+10 -258699 -1 -1 71.75 256;
+#X text 29 30 test1: detect rhythmic pattern and proposes a counterpoint
+;
+#X obj 476 397 select 0;
+#N canvas 0 0 454 304 valori 0;
+#X obj 57 40 inlet;
+#X obj 136 42 inlet;
+#X obj 229 42 inlet;
+#X obj 58 215 outlet;
+#X msg 60 112 variazione \$1;
+#X msg 135 74 riempimento \$1;
+#X msg 231 133 aderenza \$1;
+#X connect 0 0 4 0;
+#X connect 1 0 5 0;
+#X connect 2 0 6 0;
+#X connect 4 0 3 0;
+#X connect 5 0 3 0;
+#X connect 6 0 3 0;
+#X restore 698 378 pd valori;
+#X obj 678 220 vsl 15 128 0 1 0 0 empty empty variazione 0 -8 0 8 -262144
+-1 -1 3493 1;
+#X obj 730 226 vsl 15 128 0 1 0 0 empty empty riempimento 0 -8 0 8
+-262144 -1 -1 7937 1;
+#X obj 788 239 vsl 15 128 0 1 0 0 empty empty aderenza 0 -8 0 8 -262144
+-1 -1 5239 1;
+#N canvas 0 4 458 308 ritmino 0;
+#X obj 216 31 inlet;
+#X obj 201 268 outlet;
+#X obj 48 131 select 0;
+#X obj 131 135 select 3;
+#X obj 211 136 select 6;
+#X obj 200 238 bang;
+#X obj 307 133 select 8;
+#X connect 0 0 2 0;
+#X connect 0 0 3 0;
+#X connect 0 0 4 0;
+#X connect 0 0 6 0;
+#X connect 2 0 5 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X restore 58 412 pd ritmino;
+#X floatatom 665 357 5 0 0 0 - - -;
+#X floatatom 719 359 5 0 0 0 - - -;
+#X floatatom 786 371 5 0 0 0 - - -;
+#X obj 460 101 s sampleinit;
+#X obj 59 507 *~ 1;
+#X obj 22 431 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 1270 1;
+#X obj 19 351 loadbang;
+#X obj 285 385 t a a a a a a a;
+#N canvas 65 11 783 671 instr3 0;
+#X obj 72 43 inlet;
+#X obj 242 561 throw~ mainL;
+#X obj 366 558 throw~ mainR;
+#X obj 81 80 int;
+#X obj 45 132 select 1;
+#X obj 146 179 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 260 44 inlet;
+#X obj 229 309 bng 25 250 50 0 empty empty play 30 10 0 8 -258699 -241291
+-1;
+#X obj 259 332 bng 25 250 50 0 empty empty load 30 10 0 8 -258699 -241291
+-1;
+#X obj 470 537 outlet~;
+#X obj 106 227 r sampleinit;
+#X floatatom 68 348 5 0 0 0 - - -;
+#X text 63 330 length;
+#X floatatom 69 371 5 0 0 0 - - -;
+#X text 62 389 volume;
+#X floatatom 116 348 5 0 0 0 - - -;
+#X floatatom 165 348 5 0 0 0 - - -;
+#X text 165 328 pitch;
+#X text 117 329 start;
+#X obj 249 420 s lastload;
+#X msg 106 300 1;
+#X msg 68 300 440;
+#X obj 229 286 r channel2;
+#X msg 143 300 100;
+#X obj 287 502 *~ 0;
+#X obj 523 151 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 5080 1;
+#X obj 504 46 loadbang;
+#X msg 256 366 samples/claps.WAV;
+#X obj 142 392 sampleplayer 3;
+#X obj 288 461 bp~ 100 20;
+#X obj 513 339 loadbang;
+#N canvas 263 354 478 328 varia 0;
+#X obj 244 46 inlet;
+#X obj 135 193 outlet;
+#X obj 137 94 osc~ 0.001;
+#X obj 137 119 snapshot~;
+#X obj 244 110 metro 100;
+#X obj 136 168 / 2;
+#X obj 131 48 inlet;
+#X obj 137 142 + 1;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X connect 7 0 5 0;
+#X restore 581 371 pd varia;
+#X obj 641 347 tgl 15 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0
+1;
+#X floatatom 587 424 5 0 0 0 - - -;
+#X obj 580 398 * 8000;
+#X msg 513 362 0.005;
+#X obj 546 451 loadbang;
+#N canvas 263 354 478 328 varia 0;
+#X obj 244 46 inlet;
+#X obj 135 193 outlet;
+#X obj 137 94 osc~ 0.001;
+#X obj 137 119 snapshot~;
+#X obj 244 110 metro 100;
+#X obj 136 168 / 2;
+#X obj 131 48 inlet;
+#X obj 137 142 + 1;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X connect 7 0 5 0;
+#X restore 614 483 pd varia;
+#X obj 674 459 tgl 15 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0
+1;
+#X floatatom 623 535 5 0 0 0 - - -;
+#X obj 613 510 * 20;
+#X msg 546 474 0.025;
+#X msg 506 70 0.4;
+#X obj 81 104 tabread proposed3;
+#X connect 0 0 3 0;
+#X connect 3 0 43 0;
+#X connect 4 0 5 0;
+#X connect 4 0 7 0;
+#X connect 6 0 7 0;
+#X connect 7 0 28 4;
+#X connect 8 0 28 5;
+#X connect 10 0 27 0;
+#X connect 10 0 21 0;
+#X connect 10 0 20 0;
+#X connect 10 0 23 0;
+#X connect 11 0 28 1;
+#X connect 13 0 28 0;
+#X connect 15 0 28 2;
+#X connect 16 0 28 3;
+#X connect 20 0 15 0;
+#X connect 21 0 11 0;
+#X connect 22 0 7 0;
+#X connect 23 0 16 0;
+#X connect 24 0 9 0;
+#X connect 24 0 1 0;
+#X connect 24 0 2 0;
+#X connect 25 0 24 1;
+#X connect 26 0 42 0;
+#X connect 27 0 28 6;
+#X connect 28 0 24 0;
+#X connect 28 1 19 0;
+#X connect 30 0 35 0;
+#X connect 31 0 34 0;
+#X connect 32 0 31 1;
+#X connect 34 0 33 0;
+#X connect 34 0 29 1;
+#X connect 35 0 31 0;
+#X connect 36 0 41 0;
+#X connect 37 0 40 0;
+#X connect 38 0 37 1;
+#X connect 40 0 39 0;
+#X connect 40 0 29 2;
+#X connect 41 0 37 0;
+#X connect 42 0 25 0;
+#X connect 43 0 4 0;
+#X restore 325 479 pd instr3;
+#N canvas 65 11 775 663 instr4 0;
+#X obj 72 43 inlet;
+#X obj 242 561 throw~ mainL;
+#X obj 366 558 throw~ mainR;
+#X obj 81 80 int;
+#X obj 45 132 select 1;
+#X obj 146 179 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 260 44 inlet;
+#X obj 229 309 bng 25 250 50 0 empty empty play 30 10 0 8 -258699 -241291
+-1;
+#X obj 259 332 bng 25 250 50 0 empty empty load 30 10 0 8 -258699 -241291
+-1;
+#X obj 470 537 outlet~;
+#X obj 106 227 r sampleinit;
+#X floatatom 68 348 5 0 0 0 - - -;
+#X text 63 330 length;
+#X floatatom 69 371 5 0 0 0 - - -;
+#X text 62 389 volume;
+#X floatatom 116 348 5 0 0 0 - - -;
+#X floatatom 165 348 5 0 0 0 - - -;
+#X text 165 328 pitch;
+#X text 117 329 start;
+#X obj 249 420 s lastload;
+#X msg 106 300 1;
+#X msg 68 300 440;
+#X obj 229 286 r channel2;
+#X msg 143 300 100;
+#X obj 294 505 *~ 0;
+#X obj 523 151 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 7620 1;
+#X obj 504 46 loadbang;
+#X obj 142 392 sampleplayer 4;
+#X msg 255 365 samples/SHAKE1.WAV;
+#X obj 529 338 loadbang;
+#N canvas 263 354 478 328 varia 0;
+#X obj 244 46 inlet;
+#X obj 135 193 outlet;
+#X obj 137 94 osc~ 0.001;
+#X obj 137 119 snapshot~;
+#X obj 244 110 metro 100;
+#X obj 136 168 / 2;
+#X obj 131 48 inlet;
+#X obj 137 142 + 1;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X connect 7 0 5 0;
+#X restore 597 370 pd varia;
+#X obj 657 346 tgl 15 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0
+1;
+#X floatatom 603 423 5 0 0 0 - - -;
+#X obj 596 397 * 8000;
+#X msg 529 361 0.005;
+#X obj 562 450 loadbang;
+#N canvas 263 354 478 328 varia 0;
+#X obj 244 46 inlet;
+#X obj 135 193 outlet;
+#X obj 137 94 osc~ 0.001;
+#X obj 137 119 snapshot~;
+#X obj 244 110 metro 100;
+#X obj 136 168 / 2;
+#X obj 131 48 inlet;
+#X obj 137 142 + 1;
+#X connect 0 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X connect 7 0 5 0;
+#X restore 630 482 pd varia;
+#X obj 690 458 tgl 15 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0
+1;
+#X floatatom 639 534 5 0 0 0 - - -;
+#X obj 629 509 * 20;
+#X msg 562 473 0.025;
+#X obj 316 454 bp~ 100 20;
+#X msg 506 70 0.6;
+#X obj 81 104 tabread proposed4;
+#X connect 0 0 3 0;
+#X connect 3 0 43 0;
+#X connect 4 0 5 0;
+#X connect 4 0 7 0;
+#X connect 6 0 7 0;
+#X connect 7 0 27 4;
+#X connect 8 0 27 5;
+#X connect 10 0 28 0;
+#X connect 10 0 21 0;
+#X connect 10 0 20 0;
+#X connect 10 0 23 0;
+#X connect 11 0 27 1;
+#X connect 13 0 27 0;
+#X connect 15 0 27 2;
+#X connect 16 0 27 3;
+#X connect 20 0 15 0;
+#X connect 21 0 11 0;
+#X connect 22 0 7 0;
+#X connect 23 0 16 0;
+#X connect 24 0 9 0;
+#X connect 24 0 1 0;
+#X connect 24 0 2 0;
+#X connect 25 0 24 1;
+#X connect 26 0 42 0;
+#X connect 27 0 24 0;
+#X connect 27 1 19 0;
+#X connect 28 0 27 6;
+#X connect 29 0 34 0;
+#X connect 30 0 33 0;
+#X connect 31 0 30 1;
+#X connect 33 0 32 0;
+#X connect 33 0 41 1;
+#X connect 34 0 30 0;
+#X connect 35 0 40 0;
+#X connect 36 0 39 0;
+#X connect 37 0 36 1;
+#X connect 39 0 38 0;
+#X connect 39 0 41 2;
+#X connect 40 0 36 0;
+#X connect 42 0 25 0;
+#X connect 43 0 4 0;
+#X restore 325 503 pd instr4;
+#X obj 72 590 *~;
+#X obj 158 565 vsl 15 40 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 3120 1;
+#X obj 104 588 *~;
+#X obj 190 565 loadbang;
+#X obj 840 155 loadbang;
+#X obj 850 243 loadbang;
+#X msg 851 263 0.8;
+#N canvas 186 160 510 360 varia2 0;
+#X obj 244 46 inlet;
+#X obj 94 275 outlet;
+#X obj 84 172 snapshot~;
+#X obj 244 110 metro 100;
+#X obj 60 53 inlet;
+#X obj 226 230 table varia2;
+#X obj 47 236 tabread varia2;
+#X obj 45 201 * 100;
+#X obj 53 121 phasor~ 0.01;
+#X connect 0 0 3 0;
+#X connect 2 0 7 0;
+#X connect 3 0 2 0;
+#X connect 4 0 8 0;
+#X connect 6 0 1 0;
+#X connect 7 0 6 0;
+#X connect 8 0 2 0;
+#X restore 851 203 pd varia2;
+#X msg 839 178 0.01;
+#X obj 918 182 tgl 15 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0
+1;
+#X msg 21 375 0.1;
+#X msg 192 588 0.8;
+#N canvas 26 13 993 549 tables 0;
+#N canvas 0 0 450 300 graph1 0;
+#X array played1 16 float 1;
+#A 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0;
+#X coords 0 1.5 15 -0.5 200 40 1;
+#X restore 101 20 graph;
+#N canvas 0 0 450 300 graph1 0;
+#X array src1 16 float 1;
+#A 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0;
+#X coords 0 1.5 15 -0.5 200 40 1;
+#X restore 494 25 graph;
+#N canvas 0 0 450 300 graph1 0;
+#X array proposed1 16 float 1;
+#A 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 0 1;
+#X coords 0 1.5 15 -0.5 200 40 1;
+#X restore 483 257 graph;
+#N canvas 0 0 450 300 graph1 0;
+#X array proposed2 16 float 1;
+#A 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0;
+#X coords 0 1.5 15 -0.5 200 40 1;
+#X restore 482 307 graph;
+#N canvas 0 0 450 300 graph1 0;
+#X array proposed3 16 float 1;
+#A 0 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0;
+#X coords 0 1.5 15 -0.5 200 40 1;
+#X restore 482 354 graph;
+#N canvas 0 0 450 300 graph1 0;
+#X array proposed4 16 float 1;
+#A 0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 1 1;
+#X coords 0 1.5 15 -0.5 200 40 1;
+#X restore 482 401 graph;
+#N canvas 0 0 450 300 graph1 0;
+#X array played2 16 float 1;
+#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
+#X coords 0 1.5 15 -0.5 200 40 1;
+#X restore 100 68 graph;
+#N canvas 0 0 450 300 graph1 0;
+#X array src2 16 float 1;
+#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
+#X coords 0 1.5 15 -0.5 200 40 1;
+#X restore 492 76 graph;
+#N canvas 0 0 450 300 graph1 0;
+#X array played3 16 float 1;
+#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
+#X coords 0 1.5 15 -0.5 200 40 1;
+#X restore 97 117 graph;
+#N canvas 0 0 450 300 graph1 0;
+#X array src3 16 float 1;
+#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
+#X coords 0 1.5 15 -0.5 200 40 1;
+#X restore 492 126 graph;
+#N canvas 0 0 450 300 graph1 0;
+#X array played4 16 float 1;
+#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
+#X coords 0 1.5 15 -0.5 200 40 1;
+#X restore 96 168 graph;
+#N canvas 0 0 450 300 graph1 0;
+#X array src4 16 float 1;
+#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
+#X coords 0 1.5 15 -0.5 200 40 1;
+#X restore 491 178 graph;
+#X restore 303 104 pd tables;
+#X obj 380 599 GArhythm src1 src2 src3 src4 proposed1 proposed2 proposed3
+proposed4;
+#N canvas 0 0 454 304 avg_rhythms 0;
+#X obj 41 76 bang;
+#X obj 46 104 ritmo1 played1 src1;
+#X obj 45 125 ritmo1 played2 src2;
+#X obj 46 146 ritmo1 played3 src3;
+#X obj 45 165 ritmo1 played4 src4;
+#X obj 116 44 inlet;
+#X connect 0 0 1 0;
+#X connect 0 0 2 0;
+#X connect 0 0 3 0;
+#X connect 0 0 4 0;
+#X connect 5 0 0 0;
+#X restore 510 452 pd avg_rhythms;
+#N canvas 0 0 458 308 audio2bang 0;
+#X obj 54 38 inlet~;
+#X obj 53 61 bonk~ 64;
+#X obj 69 117 outlet;
+#X obj 155 42 inlet~;
+#X obj 154 65 bonk~ 64;
+#X obj 170 121 outlet;
+#X obj 240 41 inlet~;
+#X obj 239 64 bonk~ 64;
+#X obj 255 120 outlet;
+#X obj 333 45 inlet~;
+#X obj 332 68 bonk~ 64;
+#X obj 348 124 outlet;
+#X connect 0 0 1 0;
+#X connect 1 1 2 0;
+#X connect 3 0 4 0;
+#X connect 4 1 5 0;
+#X connect 6 0 7 0;
+#X connect 7 1 8 0;
+#X connect 9 0 10 0;
+#X connect 10 1 11 0;
+#X restore 128 328 pd audio2bang;
+#X obj 67 628 outlet~;
+#X obj 132 629 outlet~;
+#X obj 372 55 inlet;
+#X obj 90 295 adc~ 1;
+#X obj 141 296 adc~ 2;
+#X obj 194 296 adc~ 3;
+#X obj 247 295 adc~ 4;
+#X obj 577 408 outlet;
+#X obj 675 76 r variazione;
+#X obj 706 117 r riempimento;
+#X obj 830 75 r aderenza;
+#N canvas 0 0 644 564 messages 0;
+#X obj 117 252 outlet;
+#X msg 105 174 reinit;
+#X obj 106 131 r reinit;
+#X obj 106 153 bang;
+#X msg 205 177 reinsert_src \$1;
+#X msg 356 171 reinsert_last \$1;
+#X msg 41 159 help;
+#X msg 234 94 prob_crossover \$1;
+#X msg 384 95 prob_mutation \$1;
+#X obj 204 153 r reinsert_src;
+#X obj 357 147 r reinsert_last;
+#X obj 234 70 r prob_crossover;
+#X obj 385 70 r prob_mutation;
+#X connect 1 0 0 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 8 0 0 0;
+#X connect 9 0 4 0;
+#X connect 10 0 5 0;
+#X connect 11 0 7 0;
+#X connect 12 0 8 0;
+#X restore 498 546 pd messages;
+#X obj 211 105 r tempo;
+#X obj 440 201 s msec-beat;
+#X connect 0 0 32 0;
+#X connect 0 0 53 0;
+#X connect 1 0 0 0;
+#X connect 2 0 11 0;
+#X connect 3 0 2 1;
+#X connect 3 0 8 0;
+#X connect 3 0 12 0;
+#X connect 3 0 67 0;
+#X connect 4 0 5 0;
+#X connect 4 0 31 0;
+#X connect 5 0 20 0;
+#X connect 6 0 2 0;
+#X connect 7 0 22 0;
+#X connect 7 0 35 0;
+#X connect 9 0 10 0;
+#X connect 9 1 52 0;
+#X connect 10 0 51 0;
+#X connect 11 0 7 0;
+#X connect 12 0 11 1;
+#X connect 16 0 38 0;
+#X connect 17 0 40 0;
+#X connect 20 0 3 0;
+#X connect 22 0 9 0;
+#X connect 22 0 61 0;
+#X connect 23 0 51 0;
+#X connect 24 0 23 0;
+#X connect 24 0 28 0;
+#X connect 25 0 23 1;
+#X connect 25 0 29 0;
+#X connect 26 0 23 2;
+#X connect 26 0 30 0;
+#X connect 27 0 1 0;
+#X connect 32 0 38 0;
+#X connect 33 0 32 1;
+#X connect 34 0 48 0;
+#X connect 35 0 27 0;
+#X connect 35 1 18 4;
+#X connect 35 2 15 0;
+#X connect 35 3 13 0;
+#X connect 35 4 14 0;
+#X connect 35 5 36 0;
+#X connect 35 6 37 0;
+#X connect 38 0 54 0;
+#X connect 39 0 38 1;
+#X connect 39 0 40 1;
+#X connect 40 0 55 0;
+#X connect 41 0 49 0;
+#X connect 42 0 46 0;
+#X connect 43 0 44 0;
+#X connect 44 0 26 0;
+#X connect 45 0 25 0;
+#X connect 46 0 45 0;
+#X connect 47 0 45 1;
+#X connect 48 0 33 0;
+#X connect 49 0 39 0;
+#X connect 53 0 18 0;
+#X connect 53 1 18 1;
+#X connect 53 2 18 2;
+#X connect 53 3 18 3;
+#X connect 56 0 6 0;
+#X connect 57 0 53 0;
+#X connect 58 0 53 1;
+#X connect 59 0 53 2;
+#X connect 60 0 53 3;
+#X connect 62 0 24 0;
+#X connect 63 0 25 0;
+#X connect 64 0 26 0;
+#X connect 65 0 51 0;
+#X connect 66 0 20 0;