aboutsummaryrefslogtreecommitdiff
path: root/abs
diff options
context:
space:
mode:
authorFranz Zotter <fzotter@users.sourceforge.net>2010-02-11 11:46:21 +0000
committerFranz Zotter <fzotter@users.sourceforge.net>2010-02-11 11:46:21 +0000
commit2a01f32186dacf4a970b4189c43e140a8832813f (patch)
tree4134d683f9d89f31fff861734dd7cfbf11acd018 /abs
parent68729718fce729bfdca438af1ac26971baf64218 (diff)
added a kaiser window to the mtx_window abstraction.
svn path=/trunk/externals/iem/iemmatrix/; revision=13168
Diffstat (limited to 'abs')
-rw-r--r--abs/mtx_win_besseli0.pd146
-rw-r--r--abs/mtx_window-help.pd171
-rw-r--r--abs/mtx_window.pd95
3 files changed, 320 insertions, 92 deletions
diff --git a/abs/mtx_win_besseli0.pd b/abs/mtx_win_besseli0.pd
new file mode 100644
index 0000000..abcd590
--- /dev/null
+++ b/abs/mtx_win_besseli0.pd
@@ -0,0 +1,146 @@
+#N canvas 442 0 1152 729 12;
+#X obj 184 130 mtx_< 2.5;
+#X obj 385 142 mtx_>= 2.5;
+#X obj 385 165 mtx_find;
+#X obj 184 152 mtx_find;
+#X obj 307 251 mtx_index;
+#X obj 106 236 mtx_index;
+#X obj 106 343 mtx_fill;
+#X obj 82 427 mtx;
+#X obj 80 41 t b a a a;
+#X obj 567 198 mtx_zeros;
+#X obj 567 151 mtx_size;
+#X obj 567 175 pack;
+#N canvas 0 0 897 561 smallx 0;
+#X obj 240 -115 mtx_.^ 2;
+#X obj 240 -73 mtx_+ 8.92003e-06;
+#X obj 240 -93 mtx_* 0.249877;
+#X obj 240 277 mtx_+;
+#X obj 272 -48 mtx_.^ 4;
+#X obj 304 1 mtx_.^ 6;
+#X obj 338 47 mtx_.^ 8;
+#X obj 370 98 mtx_.^ 10;
+#X obj 402 144 mtx_.^ 12;
+#X obj 272 -26 mtx_* -0.0153664;
+#X obj 304 23 mtx_* 0.00152453;
+#X obj 338 69 mtx_* -0.000134196;
+#X obj 370 120 mtx_* 7.76875e-06;
+#X obj 402 166 mtx_* -2.04329e-07;
+#X obj 272 256 mtx_+;
+#X obj 304 236 mtx_+;
+#X obj 338 217 mtx_+;
+#X obj 370 196 mtx_+;
+#X obj 240 -158 t a a a a a a;
+#X obj 240 302 mtx_exp;
+#X obj 241 -181 inlet;
+#X obj 240 333 outlet;
+#X connect 0 0 2 0;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 19 0;
+#X connect 4 0 9 0;
+#X connect 5 0 10 0;
+#X connect 6 0 11 0;
+#X connect 7 0 12 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 12 0 17 0;
+#X connect 13 0 17 1;
+#X connect 14 0 3 1;
+#X connect 15 0 14 1;
+#X connect 16 0 15 1;
+#X connect 17 0 16 1;
+#X connect 18 0 0 0;
+#X connect 18 1 4 0;
+#X connect 18 2 5 0;
+#X connect 18 3 6 0;
+#X connect 18 4 7 0;
+#X connect 18 5 8 0;
+#X connect 19 0 21 0;
+#X connect 20 0 18 0;
+#X restore 106 260 pd smallx;
+#X obj 307 105 t a a;
+#X obj 106 102 t a a;
+#N canvas 295 16 806 381 bigx 0;
+#X obj 227 -132 inlet;
+#X obj 226 132 outlet;
+#X text 391 -110 exp(x)./sqrt(2*pi*x).*(1+1./(8*x));
+#X obj 277 23 mtx_.^ 0.5;
+#X obj 226 46 mtx_./;
+#X obj 226 -25 mtx_exp;
+#X obj 455 20 mtx_+ 1;
+#X obj 455 -2 mtx_.^ -1;
+#X obj 455 -24 mtx_* 8;
+#X obj 226 80 mtx_.*;
+#X obj 226 -49 t a a;
+#X obj 337 -47 atan;
+#X obj 337 -24 * 8;
+#X obj 337 -93 loadbang;
+#X obj 277 -1 mtx_* 1;
+#X obj 226 -109 t a a;
+#X msg 337 -70 1;
+#X connect 0 0 15 0;
+#X connect 3 0 4 1;
+#X connect 4 0 9 0;
+#X connect 5 0 4 0;
+#X connect 6 0 9 1;
+#X connect 7 0 6 0;
+#X connect 8 0 7 0;
+#X connect 9 0 1 0;
+#X connect 10 0 5 0;
+#X connect 10 1 14 0;
+#X connect 11 0 12 0;
+#X connect 12 0 14 1;
+#X connect 13 0 16 0;
+#X connect 14 0 3 0;
+#X connect 15 0 10 0;
+#X connect 15 1 8 0;
+#X connect 16 0 11 0;
+#X restore 307 275 pd bigx;
+#X obj 80 18 inlet;
+#X obj 82 456 outlet;
+#X obj 463 165 mtx_size;
+#X obj 307 225 spigot;
+#X obj 237 177 mtx_size;
+#X obj 106 204 spigot;
+#X obj 184 177 t a a;
+#X obj 184 205 spigot;
+#X obj 385 223 spigot;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 2 0 18 0;
+#X connect 2 0 24 0;
+#X connect 3 0 22 0;
+#X connect 4 0 15 0;
+#X connect 5 0 12 0;
+#X connect 6 0 7 1;
+#X connect 7 0 17 0;
+#X connect 8 0 7 0;
+#X connect 8 1 14 0;
+#X connect 8 2 13 0;
+#X connect 8 3 10 0;
+#X connect 9 0 6 1;
+#X connect 10 0 11 0;
+#X connect 10 1 11 1;
+#X connect 11 0 9 0;
+#X connect 12 0 6 0;
+#X connect 13 0 19 0;
+#X connect 13 1 1 0;
+#X connect 14 0 21 0;
+#X connect 14 1 0 0;
+#X connect 15 0 6 0;
+#X connect 16 0 8 0;
+#X connect 18 1 19 1;
+#X connect 18 1 24 1;
+#X connect 19 0 4 0;
+#X connect 20 1 21 1;
+#X connect 20 1 23 1;
+#X connect 21 0 5 0;
+#X connect 22 0 23 0;
+#X connect 22 1 20 0;
+#X connect 23 0 5 1;
+#X connect 23 0 6 2;
+#X connect 24 0 6 2;
+#X connect 24 0 4 1;
diff --git a/abs/mtx_window-help.pd b/abs/mtx_window-help.pd
index 73d4c90..42be0c7 100644
--- a/abs/mtx_window-help.pd
+++ b/abs/mtx_window-help.pd
@@ -1,4 +1,4 @@
-#N canvas 439 163 841 379 10;
+#N canvas 187 140 841 379 10;
#X text 483 27 part of iemmatrix;
#N canvas 0 0 450 300 convert2tablemsg 0;
#X obj 130 35 inlet;
@@ -20,27 +20,26 @@
#X restore 33 284 pd convert2tablemsg;
#N canvas 0 0 450 300 (subpatch) 0;
#X array view_window 101 float 1;
-#A 0 6.04683e-05 0.00152308 0.00493353 0.0102785 0.0175371 0.0266809
-0.0376743 0.0504743 0.0650308 0.081287 0.0991793 0.118638 0.139587
-0.161944 0.185622 0.210528 0.236566 0.263633 0.291624 0.320429 0.349935
-0.380029 0.41059 0.441502 0.472641 0.503888 0.535119 0.566214 0.597049
-0.627506 0.657464 0.686807 0.715419 0.74319 0.770011 0.795777 0.820387
-0.843745 0.865759 0.886345 0.905421 0.922912 0.938751 0.952876 0.965231
-0.975768 0.984446 0.991231 0.996096 0.999023 1 0.999023 0.996096 0.991231
-0.984446 0.975768 0.965231 0.952876 0.938751 0.922912 0.905421 0.886345
-0.865759 0.843745 0.820387 0.795777 0.770011 0.74319 0.715419 0.686807
-0.657464 0.627506 0.597049 0.566214 0.53512 0.503888 0.472641 0.441502
-0.410591 0.380029 0.349935 0.320429 0.291624 0.263633 0.236566 0.210529
-0.185622 0.161944 0.139587 0.118638 0.0991794 0.081287 0.0650308 0.0504743
-0.0376743 0.026681 0.0175371 0.0102785 0.00493356 0.00152309 6.0472e-05
-;
+#A 0 0.000448756 0.000945109 0.00165503 0.00268316 0.00407733 0.00591581
+0.00828443 0.0112762 0.0149904 0.019532 0.0250102 0.0315369 0.0392254
+0.0481884 0.0585358 0.0703731 0.0837981 0.0988997 0.115755 0.134427
+0.154961 0.177385 0.201708 0.227912 0.255959 0.285784 0.317297 0.35038
+0.384891 0.420659 0.457489 0.495163 0.53344 0.572058 0.610739 0.649192
+0.687112 0.724189 0.760109 0.794559 0.827231 0.857827 0.886059 0.911661
+0.934386 0.954011 0.970343 0.983219 0.99251 0.998122 1 0.998122 0.99251
+0.98322 0.970343 0.954011 0.934386 0.911661 0.886059 0.857827 0.827231
+0.794559 0.76011 0.724189 0.687112 0.649192 0.61074 0.572058 0.53344
+0.495163 0.457489 0.420659 0.384891 0.350381 0.317297 0.285784 0.255959
+0.227912 0.201708 0.177386 0.154961 0.134427 0.115755 0.0988999 0.0837981
+0.0703731 0.0585359 0.0481884 0.0392254 0.0315369 0.0250102 0.019532
+0.0149904 0.0112762 0.00828444 0.00591582 0.00407733 0.00268316 0.00165504
+0.000945111 0.000448758;
#X coords 0 1.1 100 0 101 80 1;
#X restore 326 212 graph;
#X text 43 34 [mtx_window];
#X text 166 69 creates a row vector with windows of different specifications.
;
-#X text 268 157 outletB: window vector;
-#X obj 33 242 mtx_window;
+#X text 271 157 outletB: window vector;
#X obj 33 306 s view_window;
#X text 268 138 inletA: <window type> <length>;
#X msg 33 68 rectangular 101;
@@ -52,7 +51,15 @@
#X msg 71 189 gauss 101 -77;
#X text 227 315 note: the third parameter for gaussian windows describes
the attenuation at the borders;
-#N canvas 201 191 842 574 fft_analysis 0;
+#X text 480 241 use this e.g. for:;
+#X msg 80 216 kaiser 101 \$1;
+#X obj 33 242 mtx_window;
+#X msg 174 187 0;
+#X msg 296 188 10;
+#X msg 266 188 8;
+#X msg 235 188 5;
+#X msg 204 188 2;
+#N canvas 625 163 842 574 fft_analysis 0;
#X msg 477 0 sine 64;
#X msg 477 42 hanning 64;
#X msg 475 -41 rectangular 64;
@@ -142,28 +149,45 @@ the attenuation at the borders;
#X msg 477 63 blackman 64;
#X obj 385 362 mtx_+;
#X obj 474 210 tgl 15 1 empty empty broad/narrow 0 -6 0 8 -262144 -1
--1 0 1;
+-1 1 1;
#X obj 37 353 dbtorms;
#X obj 41 317 hsl 128 15 0 127 0 1 empty empty ampl -2 -6 0 12 -262144
--1 -1 2700 1;
+-1 -1 0 1;
#X floatatom 38 336 5 0 0 0 - - -;
#X obj 79 197 dbtorms;
#X obj 83 161 hsl 128 15 0 127 0 1 empty empty ampl -2 -6 0 10 -262144
--1 -1 8500 1;
+-1 -1 9900 1;
#X floatatom 80 180 5 0 0 0 - - -;
#N canvas 0 0 450 300 (subpatch) 0;
-#X array spectrum 33 float 1;
-#A 0 38.8997 40.9673 44.5099 103.061 42.2724 36.1278 32.8119 30.9618
-29.4879 27.9126 28.5928 27.8325 29.063 27.9504 26.035 24.9683 26.7623
-27.919 26.0393 25.3933 28.6392 28.0565 27.9295 28.0921 27.2243 26.9047
-26.9266 26.7948 25.7899 26.8739 26.8707 27.2482 27.7987;
-#X array sineamp 33 float 1;
-#A 0 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85
-85 85 85 85 85 85 85 85 85 85 85 85;
-#X array noiseamp 33 float 1;
-#A 0 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27
-27 27 27 27 27 27 27 27 27 27 27 27;
-#X coords 0 100 32 0 200 140 1;
+#X array spectrum 129 float 1;
+#A 0 56.377 77.3304 80.1692 76.3056 66.8052 80.5651 82.465 74.9327
+82.4891 91.8709 96.2977 98.4686 99.0234 98.1252 95.6622 91.1155 82.4891
+66.9537 78.6591 77.4688 68.019 67.7708 73.5005 71.7182 60.2204 65.3425
+69.9818 67.9057 54.6513 63.1717 67.3292 65.0647 50.2597 61.3407 65.221
+62.8226 46.6091 59.7915 63.4904 60.9916 43.4733 58.4672 62.0381 59.4612
+40.7174 57.3238 60.7997 58.1604 38.2504 56.3288 59.7315 57.0415 36.0149
+55.4562 58.8013 56.0695 33.9678 54.6867 57.9852 55.2182 32.0684 54.0057
+57.2658 54.4691 30.298 53.4006 56.6287 53.8066 28.6325 52.8621 56.063
+53.2186 27.0424 52.3832 55.5605 52.6966 25.5223 51.9567 55.1137 52.2326
+24.0564 51.5776 54.7167 51.8203 22.6263 51.2422 54.3654 51.4551 21.2226
+50.9464 54.0553 51.1324 19.8274 50.6876 53.7836 50.849 18.4236 50.4638
+53.5478 50.6023 16.9878 50.2726 53.3455 50.3899 15.5157 50.1124 53.175
+50.2099 14.0048 49.9819 53.0348 50.0604 12.4079 49.8806 52.9241 49.9408
+10.7623 49.8072 52.8418 49.8498 9.20872 49.7614 52.7872 49.7866 7.94681
+49.7429 52.7602 49.7513 7.39902;
+#X array sineamp 129 float 1;
+#A 0 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99
+99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99
+99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99
+99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99
+99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99
+99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99;
+#X array noiseamp 129 float 1;
+#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
+#X coords 0 100 128 0 200 140 1;
#X restore 51 -51 graph;
#X obj 133 198 s sineamp;
#X msg 133 178 const \$1;
@@ -267,7 +291,7 @@ the attenuation at the borders;
#X connect 8 0 0 0;
#X restore -7 286 pd mtx_noise~;
#X obj 339 63 dsp;
-#X obj 339 45 tgl 15 0 empty dsp_tgl empty 0 -6 0 8 -262144 -1 -1 1
+#X obj 339 45 tgl 15 0 empty dsp_tgl empty 0 -6 0 8 -262144 -1 -1 0
1;
#X text 343 -39 3 choose window;
#X text 343 180 4 choose broadband/narrow band normalization;
@@ -294,15 +318,15 @@ the attenuation at the borders;
#X floatatom 29 163 6 0 0 0 freq - -;
#N canvas 0 0 450 300 (subpatch) 0;
#X array signal 64 float 1;
-#A 0 0.350809 0.352529 0.323749 0.267889 0.188056 0.0924733 -0.0115446
--0.114268 -0.207012 -0.282098 -0.332474 -0.354627 -0.346684 -0.308276
--0.243687 -0.157757 -0.058738 0.0452786 0.146309 0.234006 0.301564
-0.343327 0.355167 0.337243 0.289477 0.217643 0.126626 0.0241541 -0.0796336
--0.176431 -0.25886 -0.318325 -0.350513 -0.352816 -0.324453 -0.267944
--0.188785 -0.0933459 0.0104961 0.112465 0.206113 0.281239 0.332285
-0.354519 0.346625 0.308685 0.244169 0.158802 0.0600548 -0.0446618 -0.144633
--0.233125 -0.300845 -0.343326 -0.355903 -0.337678 -0.290366 -0.218386
--0.127163 -0.0258419 0.0781731 0.176044 0.257996 0.31818;
+#A 0 0.332393 -0.190103 -0.696238 -1.14245 -1.49035 -1.70998 -1.78244
+-1.70151 -1.47414 -1.1199 -0.669277 -0.161057 0.361022 0.852032 1.26971
+1.57812 1.75071 1.77263 1.642 1.37004 0.980184 0.505969 -0.0117945
+-0.528541 -0.999799 -1.38501 -1.65103 -1.77496 -1.74612 -1.56702 -1.25305
+-0.831239 -0.337892 0.184535 0.69108 1.13815 1.48727 1.70839 1.78248
+1.70317 1.47728 1.12425 0.674464 0.166635 -0.355539 -0.847111 -1.26578
+-1.57551 -1.74965 -1.77321 -1.64417 -1.37362 -0.984858 -0.511333 0.00619539
+0.52319 0.995158 1.38148 1.64891 1.77443 1.74724 1.56968 1.25702 0.836189
+;
#X coords 0 2 63 -2 200 140 1;
#X restore 589 -66 graph;
#X obj 385 427 s spectrum;
@@ -312,13 +336,20 @@ the attenuation at the borders;
#X obj 116 237 loadbang;
#X obj 404 47 loadbang;
#X msg 117 218 2.999;
-#X obj 461 113 mtx_window;
+#X obj 211 353 mtx_resize 0 256;
#X msg 472 87 gauss 64 -85;
-#X connect 0 0 59 0;
-#X connect 1 0 59 0;
-#X connect 2 0 59 0;
+#X obj 461 113 mtx_window;
+#X msg 650 130 kaiser 64 \$1;
+#X msg 649 96 0;
+#X msg 743 96 8;
+#X msg 713 96 5;
+#X msg 777 95 10;
+#X msg 682 96 2;
+#X connect 0 0 61 0;
+#X connect 1 0 61 0;
+#X connect 2 0 61 0;
#X connect 4 0 3 0;
-#X connect 5 0 6 0;
+#X connect 5 0 59 0;
#X connect 6 0 7 0;
#X connect 6 1 8 0;
#X connect 7 0 9 0;
@@ -327,9 +358,9 @@ the attenuation at the borders;
#X connect 10 0 11 0;
#X connect 11 0 52 0;
#X connect 12 0 5 1;
-#X connect 13 0 59 0;
-#X connect 14 0 59 0;
-#X connect 15 0 59 0;
+#X connect 13 0 61 0;
+#X connect 14 0 61 0;
+#X connect 15 0 61 0;
#X connect 16 0 10 0;
#X connect 16 0 30 0;
#X connect 17 0 12 1;
@@ -368,17 +399,29 @@ the attenuation at the borders;
#X connect 56 0 58 0;
#X connect 57 0 2 0;
#X connect 58 0 50 0;
-#X connect 59 0 4 0;
-#X connect 59 0 12 0;
-#X connect 60 0 59 0;
+#X connect 59 0 6 0;
+#X connect 60 0 61 0;
+#X connect 61 0 4 0;
+#X connect 61 0 12 0;
+#X connect 62 0 61 0;
+#X connect 63 0 62 0;
+#X connect 64 0 62 0;
+#X connect 65 0 62 0;
+#X connect 66 0 62 0;
+#X connect 67 0 62 0;
#X restore 616 242 pd fft_analysis;
-#X text 480 241 use this e.g. for:;
-#X connect 1 0 7 0;
-#X connect 6 0 1 0;
-#X connect 9 0 6 0;
-#X connect 10 0 6 0;
-#X connect 11 0 6 0;
-#X connect 12 0 6 0;
-#X connect 13 0 6 0;
-#X connect 14 0 6 0;
-#X connect 15 0 6 0;
+#X connect 1 0 6 0;
+#X connect 8 0 18 0;
+#X connect 9 0 18 0;
+#X connect 10 0 18 0;
+#X connect 11 0 18 0;
+#X connect 12 0 18 0;
+#X connect 13 0 18 0;
+#X connect 14 0 18 0;
+#X connect 17 0 18 0;
+#X connect 18 0 1 0;
+#X connect 19 0 17 0;
+#X connect 20 0 17 0;
+#X connect 21 0 17 0;
+#X connect 22 0 17 0;
+#X connect 23 0 17 0;
diff --git a/abs/mtx_window.pd b/abs/mtx_window.pd
index 5bd23e6..6fa0a6a 100644
--- a/abs/mtx_window.pd
+++ b/abs/mtx_window.pd
@@ -1,4 +1,4 @@
-#N canvas 0 0 839 500 10;
+#N canvas 400 0 1130 500 10;
#X obj 41 9 inlet;
#N canvas 404 130 450 300 scale_-1...1 0;
#X obj 126 -4 inlet;
@@ -108,7 +108,6 @@
#X obj 419 328 mtx_+ 0.08;
#X obj 260 65 t f b;
#X msg 264 109 5;
-#X obj 48 131 demux 0 1 2 3 4 5;
#X text 24 147 hanning;
#X text 62 162 sine;
#X text 131 160 rect;
@@ -138,10 +137,43 @@
#X text 625 46 part of iemmatrix;
#X text 549 412 Franz Zotter 2006;
#X text 93 149 gauss;
+#X obj 48 131 demux 0 1 2 3 4 5 6;
#X obj 48 32 route hanning sine gauss rectangular bartlett hamming
-blackman;
+blackman kaiser;
+#X obj 303 67 t f b a;
+#X msg 301 109 6;
+#N canvas 1059 432 430 404 kaiser 1;
+#X obj 43 41 inlet;
+#X obj 232 44 inlet;
+#X obj 43 362 outlet;
+#X obj 43 248 mtx_win_besseli0;
+#X obj 43 327 mtx_./ 1;
+#X obj 43 159 mtx_* 1;
+#X obj 43 74 mtx_.^ 2;
+#X obj 43 95 mtx_* -1;
+#X obj 43 116 mtx_+ 1;
+#X obj 43 137 mtx_.^ 0.5;
+#X msg 232 227 \$3;
+#X msg 232 65 \$2;
+#X msg 232 180 matrix 1 1 \$1;
+#X obj 232 204 mtx_win_besseli0;
+#X connect 0 0 6 0;
+#X connect 1 0 11 0;
+#X connect 3 0 4 0;
+#X connect 4 0 2 0;
+#X connect 5 0 3 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 5 0;
+#X connect 10 0 4 1;
+#X connect 11 0 5 1;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 10 0;
+#X restore 704 317 pd kaiser;
#X connect 0 0 68 0;
-#X connect 1 0 48 0;
+#X connect 1 0 67 0;
#X connect 2 0 6 0;
#X connect 3 0 4 0;
#X connect 4 0 2 1;
@@ -150,7 +182,7 @@ blackman;
#X connect 7 0 30 0;
#X connect 8 0 1 0;
#X connect 8 1 9 0;
-#X connect 9 0 48 1;
+#X connect 9 0 67 1;
#X connect 10 0 14 0;
#X connect 11 0 12 0;
#X connect 12 0 10 1;
@@ -158,8 +190,8 @@ blackman;
#X connect 14 0 30 0;
#X connect 15 0 1 0;
#X connect 15 1 16 0;
-#X connect 16 0 48 1;
-#X connect 17 0 48 1;
+#X connect 16 0 67 1;
+#X connect 17 0 67 1;
#X connect 18 0 1 0;
#X connect 18 1 17 0;
#X connect 18 2 25 0;
@@ -176,7 +208,7 @@ blackman;
#X connect 29 0 19 0;
#X connect 31 0 1 0;
#X connect 31 1 32 0;
-#X connect 32 0 48 1;
+#X connect 32 0 67 1;
#X connect 33 0 34 0;
#X connect 34 0 35 0;
#X connect 35 0 30 0;
@@ -188,30 +220,31 @@ blackman;
#X connect 41 0 45 0;
#X connect 42 0 1 0;
#X connect 42 1 43 0;
-#X connect 43 0 48 1;
+#X connect 43 0 67 1;
#X connect 44 0 30 0;
#X connect 45 0 44 0;
#X connect 46 0 1 0;
#X connect 46 1 47 0;
-#X connect 47 0 48 1;
-#X connect 48 0 2 0;
-#X connect 48 1 10 0;
-#X connect 48 2 29 0;
-#X connect 48 3 33 0;
-#X connect 48 4 36 0;
-#X connect 48 5 53 0;
-#X connect 53 0 59 0;
-#X connect 54 0 53 1;
-#X connect 55 0 54 0;
-#X connect 56 0 62 0;
-#X connect 58 0 30 0;
-#X connect 59 0 61 0;
-#X connect 59 1 60 0;
-#X connect 60 0 56 0;
-#X connect 61 0 63 0;
-#X connect 62 0 64 1;
-#X connect 63 0 64 0;
-#X connect 64 0 58 0;
+#X connect 47 0 67 1;
+#X connect 52 0 58 0;
+#X connect 53 0 52 1;
+#X connect 54 0 53 0;
+#X connect 55 0 61 0;
+#X connect 57 0 30 0;
+#X connect 58 0 60 0;
+#X connect 58 1 59 0;
+#X connect 59 0 55 0;
+#X connect 60 0 62 0;
+#X connect 61 0 63 1;
+#X connect 62 0 63 0;
+#X connect 63 0 57 0;
+#X connect 67 0 2 0;
+#X connect 67 1 10 0;
+#X connect 67 2 29 0;
+#X connect 67 3 33 0;
+#X connect 67 4 36 0;
+#X connect 67 5 52 0;
+#X connect 67 6 71 0;
#X connect 68 0 8 0;
#X connect 68 1 15 0;
#X connect 68 2 18 0;
@@ -219,3 +252,9 @@ blackman;
#X connect 68 4 31 0;
#X connect 68 5 42 0;
#X connect 68 6 46 0;
+#X connect 68 7 69 0;
+#X connect 69 0 1 0;
+#X connect 69 1 70 0;
+#X connect 69 2 71 1;
+#X connect 70 0 67 1;
+#X connect 71 0 30 0;