aboutsummaryrefslogtreecommitdiff
path: root/filters
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2008-12-05 20:19:42 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2008-12-05 20:19:42 +0000
commit84102c25d9b3dd3adadf5add3f820e640a78c8a6 (patch)
treea7461fc94be51e1d0674b6dddee4c4f30f2c04ce /filters
parentaf07cb0d783bb46ce4dbecbd191de2c3bdc1d2c2 (diff)
made all help patches actually control a [biquad~] with a [noise~] input
svn path=/trunk/externals/ggee/; revision=10427
Diffstat (limited to 'filters')
-rw-r--r--filters/bandpass-help.pd43
-rw-r--r--filters/equalizer-help.pd57
-rw-r--r--filters/highpass-help.pd45
-rw-r--r--filters/highshelf-help.pd59
-rw-r--r--filters/hlshelf-help.pd82
-rw-r--r--filters/lowpass-help.pd47
-rw-r--r--filters/lowshelf-help.pd59
-rw-r--r--filters/notch-help.pd45
8 files changed, 271 insertions, 166 deletions
diff --git a/filters/bandpass-help.pd b/filters/bandpass-help.pd
index 959fc26..24f3e39 100644
--- a/filters/bandpass-help.pd
+++ b/filters/bandpass-help.pd
@@ -1,23 +1,30 @@
-#N canvas 295 68 566 339 10;
-#X obj 77 199 print;
-#X floatatom 77 114 0 0 0 0 - - -;
-#X floatatom 168 114 0 0 0 0 - - -;
-#X msg 91 138 bang;
-#X text 139 93 bandwidth (0 - 100);
-#X text 75 226 These filters are all controlled by a bandwidth which
+#N canvas 92 30 461 436 10;
+#X text 63 298 These filters are all controlled by a bandwidth which
is expressed in octaves. A bandwidth of 100 is equivalent to one octave.
;
#X text 76 12 Bandpass coefficients for biquad~;
#X text 70 26 ===================================;
-#X text 6 320 (C) Guenter Geiger 2000;
-#X text 75 92 frequency;
-#X text 75 268 Attention \, only the left inlet triggers new coefficients
+#X text 63 340 Attention \, only the left inlet triggers new coefficients
for biquad~;
-#X obj 77 160 bandpass 4000 33;
-#X obj 33 114 r doit;
-#X connect 1 0 11 0;
-#X connect 2 0 11 1;
-#X connect 2 0 3 0;
-#X connect 3 0 11 0;
-#X connect 11 0 0 0;
-#X connect 12 0 3 0;
+#X text 8 388 (C) Guenter Geiger 2000;
+#X floatatom 176 119 0 0 0 0 - - -;
+#X floatatom 267 119 0 0 0 0 - - -;
+#X obj 267 142 trigger bang float;
+#X obj 113 216 biquad~;
+#X obj 113 156 noise~;
+#X obj 102 258 dac~;
+#X obj 179 74 hsl 128 17 20 20000 1 0 empty empty frequency 5 9 0 10
+-203904 -1 -1 0 0;
+#X obj 270 97 hsl 128 17 0 100 0 0 empty empty bandwidth 5 9 0 10 -261682
+-1 -1 0 1;
+#X obj 176 185 bandpass;
+#X connect 5 0 13 0;
+#X connect 6 0 7 0;
+#X connect 7 0 13 0;
+#X connect 7 1 13 1;
+#X connect 8 0 10 1;
+#X connect 8 0 10 0;
+#X connect 9 0 8 0;
+#X connect 11 0 5 0;
+#X connect 12 0 6 0;
+#X connect 13 0 8 0;
diff --git a/filters/equalizer-help.pd b/filters/equalizer-help.pd
index 2a80108..65352db 100644
--- a/filters/equalizer-help.pd
+++ b/filters/equalizer-help.pd
@@ -1,27 +1,40 @@
-#N canvas 212 148 577 304 10;
-#X obj 87 145 print;
-#X floatatom 87 77 0 0 0 0 - - -;
-#X floatatom 196 75 0 0 0 0 - - -;
-#X msg 101 101 bang;
-#X text 196 54 bandwidth (0 - 100);
-#X text 75 179 These filters are all controlled by a bandwidth which
+#N canvas 153 157 456 417 10;
+#X text 63 298 These filters are all controlled by a bandwidth which
is expressed in octaves. A bandwidth of 100 is equivalent to one octave.
;
-#X text 8 268 (C) Guenter Geiger 2000;
-#X text 85 55 frequency;
-#X text 75 221 Attention \, only the left inlet triggers new coefficients
+#X text 63 340 Attention \, only the left inlet triggers new coefficients
for biquad~;
-#X floatatom 139 76 0 0 0 0 - - -;
-#X text 148 55 gain;
+#X text 8 388 (C) Guenter Geiger 2000;
+#X floatatom 96 109 0 0 0 0 - - -;
+#X floatatom 157 109 0 0 0 0 - - -;
+#X obj 157 132 trigger bang float;
+#X obj 43 206 biquad~;
+#X obj 43 146 noise~;
+#X obj 99 64 hsl 128 17 20 20000 1 1 empty empty frequency 5 9 0 10
+-203904 -1 -1 5400 0;
+#X obj 160 87 hsl 128 17 0 100 0 1 empty empty gain 5 9 0 10 -204786
+-1 -1 6300 0;
+#X obj 34 266 dac~;
+#X obj 43 234 *~ 0.1;
+#X floatatom 297 109 0 0 0 0 - - -;
+#X obj 297 132 trigger bang float;
+#X obj 300 87 hsl 128 17 0 100 0 1 empty empty bandwidth 5 9 0 10 -261682
+-1 -1 9100 0;
#X text 71 26 ==============================================;
#X text 76 12 Parametric Equalizer coefficients for biquad~;
-#X obj 87 123 equalizer 5000 70 8;
-#X obj 41 77 r doit;
-#X connect 1 0 13 0;
-#X connect 2 0 3 0;
-#X connect 2 0 13 2;
-#X connect 3 0 13 0;
-#X connect 9 0 3 0;
-#X connect 9 0 13 1;
-#X connect 13 0 0 0;
-#X connect 14 0 13 0;
+#X obj 96 175 equalizer 5000 70 8;
+#X connect 3 0 17 0;
+#X connect 4 0 5 0;
+#X connect 5 0 17 0;
+#X connect 5 1 17 1;
+#X connect 6 0 11 0;
+#X connect 7 0 6 0;
+#X connect 8 0 3 0;
+#X connect 9 0 4 0;
+#X connect 11 0 10 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 13 0 17 0;
+#X connect 13 1 17 2;
+#X connect 14 0 12 0;
+#X connect 17 0 6 0;
diff --git a/filters/highpass-help.pd b/filters/highpass-help.pd
index 954b05c..9c42cf6 100644
--- a/filters/highpass-help.pd
+++ b/filters/highpass-help.pd
@@ -1,23 +1,32 @@
-#N canvas 365 183 559 332 10;
-#X obj 77 151 print;
-#X floatatom 77 83 0 0 0 0 - - -;
-#X floatatom 168 84 0 0 0 0 - - -;
-#X msg 91 107 bang;
-#X text 168 63 bandwidth (0 - 100);
-#X text 75 195 These filters are all controlled by a bandwidth which
+#N canvas 92 30 461 436 10;
+#X text 63 298 These filters are all controlled by a bandwidth which
is expressed in octaves. A bandwidth of 100 is equivalent to one octave.
;
#X text 70 26 ===================================;
-#X text 3 308 (C) Guenter Geiger 2000;
-#X text 75 61 frequency;
-#X text 75 237 Attention \, only the left inlet triggers new coefficients
+#X text 63 340 Attention \, only the left inlet triggers new coefficients
for biquad~;
+#X text 8 388 (C) Guenter Geiger 2000;
+#X floatatom 176 119 0 0 0 0 - - -;
+#X floatatom 267 119 0 0 0 0 - - -;
+#X obj 267 142 trigger bang float;
+#X obj 113 216 biquad~;
+#X obj 113 156 noise~;
+#X obj 179 74 hsl 128 17 20 20000 1 1 empty empty frequency 5 9 0 10
+-203904 -1 -1 10100 0;
+#X obj 270 97 hsl 128 17 0 100 0 1 empty empty bandwidth 5 9 0 10 -261682
+-1 -1 6200 0;
+#X obj 176 185 highpass;
+#X obj 104 276 dac~;
#X text 76 12 Highpass coefficients for biquad~;
-#X obj 77 129 highpass 4000 33;
-#X obj 34 82 r doit;
-#X connect 1 0 11 0;
-#X connect 2 0 3 0;
-#X connect 2 0 11 1;
-#X connect 3 0 11 0;
-#X connect 11 0 0 0;
-#X connect 12 0 11 0;
+#X obj 113 244 *~ 0.1;
+#X connect 4 0 11 0;
+#X connect 5 0 6 0;
+#X connect 6 0 11 0;
+#X connect 6 1 11 1;
+#X connect 7 0 14 0;
+#X connect 8 0 7 0;
+#X connect 9 0 4 0;
+#X connect 10 0 5 0;
+#X connect 11 0 7 0;
+#X connect 14 0 12 0;
+#X connect 14 0 12 1;
diff --git a/filters/highshelf-help.pd b/filters/highshelf-help.pd
index b2ab9f1..08cea2b 100644
--- a/filters/highshelf-help.pd
+++ b/filters/highshelf-help.pd
@@ -1,27 +1,40 @@
-#N canvas 310 193 553 339 10;
-#X obj 77 182 print;
-#X floatatom 77 114 0 0 0 0 - - -;
-#X floatatom 186 112 0 0 0 0 - - -;
-#X msg 91 138 bang;
-#X text 75 226 These filters are all controlled by a bandwidth which
+#N canvas 321 83 456 417 10;
+#X text 63 298 These filters are all controlled by a bandwidth which
is expressed in octaves. A bandwidth of 100 is equivalent to one octave.
;
-#X text 4 317 (C) Guenter Geiger 2000;
-#X text 75 92 frequency;
-#X text 75 268 Attention \, only the left inlet triggers new coefficients
+#X text 70 26 ===================================;
+#X text 63 340 Attention \, only the left inlet triggers new coefficients
for biquad~;
-#X floatatom 129 113 0 0 0 0 - - -;
-#X text 138 92 gain;
-#X text 71 26 ==============================================;
-#X text 186 91 slope (0 - 100);
+#X text 8 388 (C) Guenter Geiger 2000;
+#X floatatom 96 109 0 0 0 0 - - -;
+#X floatatom 157 109 0 0 0 0 - - -;
+#X obj 157 132 trigger bang float;
+#X obj 43 206 biquad~;
+#X obj 43 146 noise~;
+#X obj 99 64 hsl 128 17 20 20000 1 1 empty empty frequency 5 9 0 10
+-203904 -1 -1 5100 0;
+#X obj 160 87 hsl 128 17 0 100 0 1 empty empty gain 5 9 0 10 -204786
+-1 -1 2800 0;
+#X obj 34 266 dac~;
+#X obj 43 234 *~ 0.1;
+#X floatatom 297 109 0 0 0 0 - - -;
+#X obj 297 132 trigger bang float;
+#X obj 300 87 hsl 128 17 0 100 0 1 empty empty slope 5 9 0 10 -261682
+-1 -1 6600 0;
#X text 76 12 Highshelf coefficients for biquad~;
-#X obj 77 160 highshelf 5000 70 100;
-#X obj 30 113 r doit;
-#X connect 1 0 13 0;
-#X connect 2 0 3 0;
-#X connect 2 0 13 2;
-#X connect 3 0 13 0;
-#X connect 8 0 3 0;
-#X connect 8 0 13 1;
-#X connect 13 0 0 0;
-#X connect 14 0 13 0;
+#X obj 96 175 highshelf 5000 70 100;
+#X connect 4 0 17 0;
+#X connect 5 0 6 0;
+#X connect 6 0 17 0;
+#X connect 6 1 17 1;
+#X connect 7 0 12 0;
+#X connect 8 0 7 0;
+#X connect 9 0 4 0;
+#X connect 10 0 5 0;
+#X connect 12 0 11 0;
+#X connect 12 0 11 1;
+#X connect 13 0 14 0;
+#X connect 14 0 17 0;
+#X connect 14 1 17 2;
+#X connect 15 0 13 0;
+#X connect 17 0 7 0;
diff --git a/filters/hlshelf-help.pd b/filters/hlshelf-help.pd
index 91496f8..967a4d0 100644
--- a/filters/hlshelf-help.pd
+++ b/filters/hlshelf-help.pd
@@ -1,28 +1,58 @@
-#N canvas 365 183 620 471 10;
-#X obj 38 182 print;
-#X floatatom 38 114 0 0 0 0 - - -;
-#X floatatom 71 115 0 0 0 0 - - -;
-#X text 37 12 Bandpass coefficients for biquad~;
-#X text 31 26 ===================================;
-#X text 7 313 (C) Guenter Geiger 2000;
-#X text 36 268 Attention \, only the left inlet triggers new coefficients
+#N canvas 317 111 789 401 10;
+#X text 7 351 (C) Guenter Geiger 2000;
+#X text 211 298 Attention \, only the left inlet triggers new coefficients
for biquad~;
-#X obj 38 160 hlshelf;
-#X floatatom 106 114 0 0 0 0 - - -;
-#X text 36 99;
-#X floatatom 173 114 0 0 0 0 - - -;
-#X floatatom 212 115 0 0 0 0 - - -;
-#X text 31 90 gain0;
-#X text 70 89 gain1;
-#X text 111 89 gain2;
-#X text 171 89 f-low;
-#X text 214 90 f-high;
-#X text 33 218 The hlshelf object creates filter coefficients for the
-biquad~ filter. The three shelfs of the filter are controlled through
+#X text 208 248 The hlshelf object creates filter coefficients for
+the biquad~ filter. The three shelfs of the filter are controlled through
the gains \, the boundaries of the areas through f-low and f-high;
-#X connect 1 0 7 0;
-#X connect 2 0 7 1;
-#X connect 7 0 0 0;
-#X connect 8 0 7 2;
-#X connect 10 0 7 3;
-#X connect 11 0 7 4;
+#X text 37 12 high-low shelf coefficients for biquad~;
+#X text 31 26 ========================================;
+#X floatatom 488 101 0 0 0 0 - - -;
+#X floatatom 349 101 0 0 0 0 - - -;
+#X obj 349 123 trigger bang float;
+#X obj 45 223 biquad~;
+#X obj 45 163 noise~;
+#X obj 491 81 hsl 128 17 20 20000 1 1 empty empty frequency-low 5 9
+0 10 -203904 -1 -1 4400 0;
+#X obj 352 81 hsl 128 17 0 100 0 1 empty empty gain2 5 9 0 10 -204786
+-1 -1 9100 0;
+#X obj 36 283 dac~;
+#X obj 45 251 *~ 0.1;
+#X obj 129 192 hlshelf 30 50 70 500 5000;
+#X obj 488 123 trigger bang float;
+#X floatatom 628 101 0 0 0 0 - - -;
+#X obj 631 81 hsl 128 17 20 20000 1 1 empty empty frequency-high 5
+9 0 10 -204800 -1 -1 8800 0;
+#X obj 628 123 trigger bang float;
+#X floatatom 209 101 0 0 0 0 - - -;
+#X obj 209 123 trigger bang float;
+#X obj 212 81 hsl 128 17 0 100 0 1 empty empty gain1 5 9 0 10 -204786
+-1 -1 9200 0;
+#X floatatom 69 100 0 0 0 0 - - -;
+#X obj 72 80 hsl 128 17 0 100 0 1 empty empty gain0 5 9 0 10 -204786
+-1 -1 2300 0;
+#X obj 129 140 bang;
+#X connect 5 0 15 0;
+#X connect 6 0 7 0;
+#X connect 7 0 24 0;
+#X connect 7 1 14 2;
+#X connect 8 0 13 0;
+#X connect 9 0 8 0;
+#X connect 10 0 5 0;
+#X connect 11 0 6 0;
+#X connect 13 0 12 0;
+#X connect 13 0 12 1;
+#X connect 14 0 8 0;
+#X connect 15 0 24 0;
+#X connect 15 1 14 3;
+#X connect 16 0 18 0;
+#X connect 17 0 16 0;
+#X connect 18 0 24 0;
+#X connect 18 1 14 4;
+#X connect 19 0 20 0;
+#X connect 20 0 24 0;
+#X connect 20 1 14 1;
+#X connect 21 0 19 0;
+#X connect 22 0 14 0;
+#X connect 23 0 22 0;
+#X connect 24 0 14 0;
diff --git a/filters/lowpass-help.pd b/filters/lowpass-help.pd
index ca6b1cf..d5e2c11 100644
--- a/filters/lowpass-help.pd
+++ b/filters/lowpass-help.pd
@@ -1,23 +1,32 @@
-#N canvas 365 183 515 357 10;
-#X obj 77 182 print;
-#X floatatom 77 114 0 0 0 0 - - -;
-#X floatatom 162 114 0 0 0 0 - - -;
-#X msg 91 138 bang;
-#X text 139 93 bandwidth (0 - 100);
-#X text 75 226 These filters are all controlled by a bandwidth which
+#N canvas 271 181 461 436 10;
+#X text 63 298 These filters are all controlled by a bandwidth which
is expressed in octaves. A bandwidth of 100 is equivalent to one octave.
;
#X text 70 26 ===================================;
-#X text 5 320 (C) Guenter Geiger 2000;
-#X text 75 92 frequency;
-#X text 75 268 Attention \, only the left inlet triggers new coefficients
+#X text 63 340 Attention \, only the left inlet triggers new coefficients
for biquad~;
-#X text 71 12 Lowpass coefficients for biquad~;
-#X obj 32 114 r doit;
-#X obj 77 160 lowpass 4000 33;
-#X connect 1 0 12 0;
-#X connect 2 0 3 0;
-#X connect 2 0 12 1;
-#X connect 3 0 12 0;
-#X connect 11 0 12 0;
-#X connect 12 0 0 0;
+#X text 8 388 (C) Guenter Geiger 2000;
+#X floatatom 176 119 0 0 0 0 - - -;
+#X floatatom 267 119 0 0 0 0 - - -;
+#X obj 267 142 trigger bang float;
+#X obj 113 216 biquad~;
+#X obj 113 156 noise~;
+#X obj 179 74 hsl 128 17 20 20000 1 1 empty empty frequency 5 9 0 10
+-203904 -1 -1 8000 0;
+#X obj 270 97 hsl 128 17 0 100 0 1 empty empty bandwidth 5 9 0 10 -261682
+-1 -1 6400 0;
+#X obj 104 276 dac~;
+#X obj 113 244 *~ 0.1;
+#X text 76 12 Lowpass coefficients for biquad~;
+#X obj 176 185 lowpass;
+#X connect 4 0 14 0;
+#X connect 5 0 6 0;
+#X connect 6 0 14 0;
+#X connect 6 1 14 1;
+#X connect 7 0 12 0;
+#X connect 8 0 7 0;
+#X connect 9 0 4 0;
+#X connect 10 0 5 0;
+#X connect 12 0 11 0;
+#X connect 12 0 11 1;
+#X connect 14 0 7 0;
diff --git a/filters/lowshelf-help.pd b/filters/lowshelf-help.pd
index ad320a0..5389d5f 100644
--- a/filters/lowshelf-help.pd
+++ b/filters/lowshelf-help.pd
@@ -1,27 +1,40 @@
-#N canvas 365 183 595 347 10;
-#X obj 77 182 print;
-#X floatatom 77 114 0 0 0 0 - - -;
-#X floatatom 192 113 0 0 0 0 - - -;
-#X msg 91 138 bang;
-#X text 75 226 These filters are all controlled by a bandwidth which
+#N canvas 321 83 456 417 10;
+#X text 63 298 These filters are all controlled by a bandwidth which
is expressed in octaves. A bandwidth of 100 is equivalent to one octave.
;
-#X text 4 319 (C) Guenter Geiger 2000;
-#X text 75 92 frequency;
-#X text 75 268 Attention \, only the left inlet triggers new coefficients
+#X text 70 26 ===================================;
+#X text 63 340 Attention \, only the left inlet triggers new coefficients
for biquad~;
-#X floatatom 129 113 0 0 0 0 - - -;
-#X text 138 92 gain;
-#X text 71 26 ==============================================;
-#X text 192 92 slope (0 - 100);
+#X text 8 388 (C) Guenter Geiger 2000;
+#X floatatom 96 109 0 0 0 0 - - -;
+#X floatatom 157 109 0 0 0 0 - - -;
+#X obj 157 132 trigger bang float;
+#X obj 43 206 biquad~;
+#X obj 43 146 noise~;
+#X obj 99 64 hsl 128 17 20 20000 1 1 empty empty frequency 5 9 0 10
+-203904 -1 -1 5100 0;
+#X obj 160 87 hsl 128 17 0 100 0 1 empty empty gain 5 9 0 10 -204786
+-1 -1 2800 0;
+#X obj 34 266 dac~;
+#X obj 43 234 *~ 0.1;
#X text 76 12 Lowshelf coefficients for biquad~;
-#X obj 31 113 r doit;
-#X obj 77 160 lowshelf 4000 50 100;
-#X connect 1 0 14 0;
-#X connect 2 0 3 0;
-#X connect 2 0 14 2;
-#X connect 3 0 14 0;
-#X connect 8 0 3 0;
-#X connect 8 0 14 1;
-#X connect 13 0 14 0;
-#X connect 14 0 0 0;
+#X floatatom 297 109 0 0 0 0 - - -;
+#X obj 297 132 trigger bang float;
+#X obj 300 87 hsl 128 17 0 100 0 1 empty empty slope 5 9 0 10 -261682
+-1 -1 6600 0;
+#X obj 96 175 lowshelf 4000 50 100;
+#X connect 4 0 17 0;
+#X connect 5 0 6 0;
+#X connect 6 0 17 0;
+#X connect 6 1 17 1;
+#X connect 7 0 12 0;
+#X connect 8 0 7 0;
+#X connect 9 0 4 0;
+#X connect 10 0 5 0;
+#X connect 12 0 11 0;
+#X connect 12 0 11 1;
+#X connect 14 0 15 0;
+#X connect 15 0 17 0;
+#X connect 15 1 17 2;
+#X connect 16 0 14 0;
+#X connect 17 0 7 0;
diff --git a/filters/notch-help.pd b/filters/notch-help.pd
index ee53e7d..aaf669f 100644
--- a/filters/notch-help.pd
+++ b/filters/notch-help.pd
@@ -1,21 +1,32 @@
-#N canvas 363 47 641 397 10;
-#X obj 68 149 print;
-#X floatatom 68 81 0 0 0 0 - - -;
-#X floatatom 141 81 0 0 0 0 - - -;
-#X msg 82 105 bang;
-#X text 141 60 bandwidth (0 - 100);
-#X text 66 193 These filters are all controlled by a bandwidth which
+#N canvas 271 181 461 436 10;
+#X text 63 298 These filters are all controlled by a bandwidth which
is expressed in octaves. A bandwidth of 100 is equivalent to one octave.
;
#X text 70 26 ===================================;
-#X text 7 310 (C) Guenter Geiger 2000;
-#X text 66 59 frequency;
-#X text 66 235 Attention \, only the left inlet triggers new coefficients
+#X text 63 340 Attention \, only the left inlet triggers new coefficients
for biquad~;
-#X text 72 13 Notch coefficients for biquad~;
-#X obj 68 127 notch 4000 33;
-#X connect 1 0 11 0;
-#X connect 2 0 3 0;
-#X connect 2 0 11 1;
-#X connect 3 0 11 0;
-#X connect 11 0 0 0;
+#X text 8 388 (C) Guenter Geiger 2000;
+#X floatatom 176 119 0 0 0 0 - - -;
+#X floatatom 267 119 0 0 0 0 - - -;
+#X obj 267 142 trigger bang float;
+#X obj 113 216 biquad~;
+#X obj 113 156 noise~;
+#X obj 179 74 hsl 128 17 20 20000 1 1 empty empty frequency 5 9 0 10
+-203904 -1 -1 8800 0;
+#X obj 270 97 hsl 128 17 0 300 0 1 empty empty bandwidth 5 9 0 10 -261682
+-1 -1 12700 0;
+#X obj 104 276 dac~;
+#X obj 113 244 *~ 0.1;
+#X text 76 12 Notch coefficients for biquad~;
+#X obj 176 185 notch;
+#X connect 4 0 14 0;
+#X connect 5 0 6 0;
+#X connect 6 0 14 0;
+#X connect 6 1 14 1;
+#X connect 7 0 12 0;
+#X connect 8 0 7 0;
+#X connect 9 0 4 0;
+#X connect 10 0 5 0;
+#X connect 12 0 11 0;
+#X connect 12 0 11 1;
+#X connect 14 0 7 0;