pot6 added

This commit is contained in:
Dooho Yi 2020-10-16 08:46:26 +09:00
parent 365059fca2
commit 2187e35199
7 changed files with 392 additions and 193 deletions

View file

@ -0,0 +1,34 @@
#include "HystFilter.h"
HystFilter::HystFilter( uint16_t inputValues, uint16_t outputValues, uint16_t margin ) :
_inputValues( inputValues ),
_outputValues( outputValues ),
_margin( margin ),
_currentOutputLevel( 0 )
{
}
uint16_t HystFilter::getOutputLevel( uint16_t inputLevel ) {
// get lower and upper bounds for currentOutputLevel
uint16_t lb = (float) ( (float) _inputValues / _outputValues ) * _currentOutputLevel;
if ( _currentOutputLevel > 0 )
lb -= _margin; // subtract margin
uint16_t ub = ( ( (float) ( (float) _inputValues / _outputValues ) * ( _currentOutputLevel + 1 ) ) - 1 );
if ( _currentOutputLevel < _outputValues )
ub += _margin; // add margin
// now test if input is outside the outer margins for current output value
// If so, caclulate new output level.
if ( inputLevel < lb || inputLevel > ub ) {
// determine new output level
_currentOutputLevel = ( ( (float) inputLevel * (float) _outputValues ) / _inputValues );
}
return _currentOutputLevel;
}

View file

@ -0,0 +1,50 @@
/*
* Class: HystFilter [Hysteresis filter].
* Apply hysteresis to an input value and deliver a lower resolution, stabilised output value.
*
*/
#ifndef HystFilter_h
#define HystFilter_h
#include <Arduino.h>
class HystFilter
{
public:
HystFilter( uint16_t inputValues, uint16_t outputValues, uint16_t margin ) ;
// constructor
// inputValues: the total number of discrete values delivered by the input.
// For example, a 10 bit ADC delivers 1024 values.
// 8 bit ADC = 256, 9 bit ADC = 512, 10 bit ADC = 1024, 11 bit ADC = 2048, 12 bit ADC = 4096 etc.
// outputValues: the number of discrete output values delivered. This governs the resolution of the function.
// For example a 6 bit resolution yields 64 values. This should ideally be no higher that the input resolution
// minus 3 bits. For example if the input resolution is 10 bits (1024), this should not exceed 7 bits (128)
// margin: margin sets the 'stickyness' of the hysteresis or the reluctance to leave the current state.
// It is measured in units of the the input level. As a general rule, this should be about 10% to 25% of the
// range of input values that map to 1 output value. For example, if the inputValues is 1024 and the outputValues
// is 128, then 8 input values map to 1 output value so the margin should be 2 (25% of 8 ).
// Probably a value of 2 is OK. For low resolutions or noisy environments, it can be higher. Don't make it too high
// or ranges overlap and some output values become unreachable.
uint16_t getOutputLevel( uint16_t inputLevel ) ;
// converts an input level (eg in the range 0 to 1023 to an aoutput value of 1 to 127 with hyteresis.
private:
uint16_t _inputValues ;
uint16_t _outputValues ;
uint16_t _margin ;
uint16_t _currentOutputLevel ;
} ;
#endif

View file

@ -0,0 +1,3 @@
# got this from arduino forum ==> contribution of user '6v6gt'
## https://forum.arduino.cc/index.php?topic=526806.15

View file

@ -0,0 +1,52 @@
/*
HystFilter class [Hysteresis]
This code example shows obtaining values 0-64 from one potentiometer wired
as a voltage divider and 0-10 from another.
These values remain stable even if the potentiometer
is set on a border point between two values.
The same principle could be used to set the brightness of a display
dependent on the ambient light, but free from flicker or switching a heater
on based on a thermostat etc.
6v6gt 17.apr.2018
ver 0.01 03.02.2018 Original verson with table to represent range end points
ver 0.02 13.04.2018 Original verson with calculation to determine range end points.
ver 0.04 17.03.2018 Class implementation for multiple potentiometers (or other analog sources)
*/
#include "HystFilter.h"
HystFilter potA( 1024, 64, 3 ); // 10 bit ADC = 1024, 64 discrete output values required, margin = 3 units (of 1024)
HystFilter potB( 1024, 10, 5 ); // 10 bit ADC = 1024, 10 discrete output values required, margin = 5 units (of 1024)
void setup() {
Serial.begin( 9600 );
}
void loop() {
Serial.print("potA: " );
Serial.print( potA.getOutputLevel( analogRead(A0) ) );
Serial.print(" " );
Serial.println( analogRead(A0) );
Serial.print("potB: " );
Serial.print( potB.getOutputLevel( analogRead(A1) ) );
Serial.print(" " );
Serial.println( analogRead(A1) );
Serial.println(" " );
delay ( 500 );
}

18
pot6/platformio.ini Normal file
View file

@ -0,0 +1,18 @@
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[platformio]
default_envs = teensy32
[env:teensy32]
platform = teensy@3.6.0
board = teensy32
framework = arduino
lib_deps =

19
pot6/src/main.cpp Normal file
View file

@ -0,0 +1,19 @@
//
// a controller w/ 6 knobs (or pots)
//
//
// Forest all/around @ MMCA, Seoul
//
//
// 2020 10 14
//
void setup() {
}
void loop() {
}

View file

@ -1,4 +1,4 @@
#N canvas 89 89 1285 589 10; #N canvas 1 89 1285 589 10;
#X obj 20 126 unpackOSC; #X obj 20 126 unpackOSC;
#X obj 107 18 loadbang; #X obj 107 18 loadbang;
#X msg 147 91 devices; #X msg 147 91 devices;
@ -14,15 +14,15 @@
#X floatatom 193 189 5 0 0 0 - - -; #X floatatom 193 189 5 0 0 0 - - -;
#X obj 451 140 o.io.slipserial; #X obj 451 140 o.io.slipserial;
#X msg 480 89 devices; #X msg 480 89 devices;
#X msg 557 94 close; #X msg 567 94 close;
#X obj 1057 228 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 #X obj 1057 228 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1; 0 1;
#X text 865 18 NOTE! -->; #X text 958 32 NOTE! -->;
#X obj 928 10 cnv 15 100 60 empty empty empty 20 12 0 14 -261234 -66577 #X obj 1021 24 cnv 15 100 60 empty empty empty 20 12 0 14 -261234 -66577
0; 0;
#X msg 935 33 /note 60 100 1; #X msg 1028 47 /note 60 100 1;
#X text 934 13 well.. if we do like..; #X text 1027 27 well.. if we do like..;
#X text 934 53 w/o bundling.. why not?; #X text 1027 67 w/o bundling.. why not?;
#X obj 1010 251 t a b; #X obj 1010 251 t a b;
#X msg 1037 272 [; #X msg 1037 272 [;
#X obj 451 63 packOSC; #X obj 451 63 packOSC;
@ -62,27 +62,16 @@
#X connect 7 0 8 0; #X connect 7 0 8 0;
#X connect 9 0 6 0; #X connect 9 0 6 0;
#X restore 156 222 pd midi-in; #X restore 156 222 pd midi-in;
#X obj 941 115 r NOTE; #X obj 976 104 r NOTE;
#X msg 1010 297 /note/onoff \$1; #X msg 1010 297 /note/onoff \$1;
#X floatatom 975 272 5 0 0 0 - - -; #X floatatom 975 272 5 0 0 0 - - -;
#X obj 1090 119 loadbang; #X obj 1090 119 loadbang;
#X msg 1090 144 127; #X msg 1090 144 127;
#X text 1147 167 vol. override;
#X obj 979 246 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 #X obj 979 246 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1; -1 -1;
#X msg 1172 321 0; #X obj 957 471 s NOTE;
#X msg 1172 300 10; #X msg 957 445 68 100 1;
#X msg 1172 279 25; #X obj 976 154 print NOTE;
#X msg 1172 258 50;
#X msg 1172 217 255;
#X msg 1172 197 500;
#X msg 1172 237 127;
#X text 1197 197 BIG;
#X text 1198 321 SMALL;
#X msg 1175 146 180;
#X obj 1107 72 s NOTE;
#X msg 1107 46 68 100 1;
#X obj 941 163 print NOTE;
#X obj 733 252 t a b; #X obj 733 252 t a b;
#X msg 760 273 [; #X msg 760 273 [;
#X msg 664 273 ]; #X msg 664 273 ];
@ -93,16 +82,15 @@
#X msg 691 370 /note/pitch \$1; #X msg 691 370 /note/pitch \$1;
#X msg 733 298 /note/onoff \$1; #X msg 733 298 /note/onoff \$1;
#X floatatom 698 273 5 0 0 0 - - -; #X floatatom 698 273 5 0 0 0 - - -;
#X obj 664 163 print CTRL; #X obj 510 267 print CTRL;
#X obj 664 105 r CTRL; #X obj 510 209 r CTRL;
#X obj 664 203 r CTRL; #X obj 664 203 r CTRL;
#N canvas 423 23 875 805 crickets 1; #N canvas 423 89 875 805 crickets 1;
#X obj 89 492 pack f f; #X obj 89 492 pack f f;
#X obj 134 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 #X obj 134 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144
-1 -1 0 1; -1 -1 0 1;
#X obj 92 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 #X obj 92 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1; -1 -1 0 1;
#X obj 89 553 s CTRL;
#X floatatom 99 440 5 0 0 0 - - -; #X floatatom 99 440 5 0 0 0 - - -;
#X msg 89 521 120 \$1 \$2; #X msg 89 521 120 \$1 \$2;
#X obj 239 492 pack f f; #X obj 239 492 pack f f;
@ -110,7 +98,6 @@
-1 -1 0 1; -1 -1 0 1;
#X obj 242 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 #X obj 242 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1; -1 -1 0 1;
#X obj 239 553 s CTRL;
#X floatatom 249 440 5 0 0 0 - - -; #X floatatom 249 440 5 0 0 0 - - -;
#X msg 239 521 121 \$1 \$2; #X msg 239 521 121 \$1 \$2;
#X obj 747 58 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 #X obj 747 58 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
@ -122,15 +109,13 @@
-1 -1 0 1; -1 -1 0 1;
#X obj 392 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 #X obj 392 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1; -1 -1 0 1;
#X obj 389 553 s CTRL;
#X floatatom 399 440 5 0 0 0 - - -; #X floatatom 399 440 5 0 0 0 - - -;
#X msg 389 521 122 \$1 \$2; #X msg 389 521 122 \$1 \$2;
#X obj 539 492 pack f f; #X obj 539 492 pack f f;
#X obj 584 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 #X obj 584 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144
-1 -1 1 1; -1 -1 0 1;
#X obj 542 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 #X obj 542 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 1050 1; -1 -1 0 1;
#X obj 539 553 s CTRL;
#X floatatom 549 440 5 0 0 0 - - -; #X floatatom 549 440 5 0 0 0 - - -;
#X msg 539 521 123 \$1 \$2; #X msg 539 521 123 \$1 \$2;
#X obj 539 702 pack f f; #X obj 539 702 pack f f;
@ -150,7 +135,7 @@
#X obj 689 553 s CTRL; #X obj 689 553 s CTRL;
#X floatatom 699 440 5 0 0 0 - - -; #X floatatom 699 440 5 0 0 0 - - -;
#X obj 271 709 metro 1000; #X obj 271 709 metro 1000;
#X obj 271 687 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 #X obj 271 687 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1; 1;
#X text 270 657 auto play; #X text 270 657 auto play;
#X msg 134 711 100 100 1; #X msg 134 711 100 100 1;
@ -245,136 +230,143 @@
#X obj 605 248 pipe 500; #X obj 605 248 pipe 500;
#X msg 719 521 105 100 1; #X msg 719 521 105 100 1;
#X obj 605 186 * 0; #X obj 605 186 * 0;
#X connect 0 0 5 0; #X text 22 585 manually send 'play stop' messages;
#X text 349 340 resample always send messages!! --> plz fix / or change
;
#X obj 89 553 s CTRL;
#X obj 239 553 s CTRL;
#X obj 389 553 s CTRL;
#X obj 539 553 s CTRL;
#X text 52 537 disconnected for TESTING;
#X text 212 537 disconnected for TESTING;
#X text 372 537 disconnected for TESTING;
#X text 532 537 disconnected for TESTING;
#X text 554 262 disconnected for TESTING;
#X connect 0 0 4 0;
#X connect 1 0 0 1; #X connect 1 0 0 1;
#X connect 2 0 0 0; #X connect 2 0 0 0;
#X connect 2 0 4 0; #X connect 2 0 3 0;
#X connect 5 0 3 0; #X connect 5 0 9 0;
#X connect 6 0 11 0; #X connect 6 0 5 1;
#X connect 7 0 6 1; #X connect 7 0 5 0;
#X connect 8 0 6 0; #X connect 7 0 8 0;
#X connect 8 0 10 0; #X connect 10 0 11 0;
#X connect 11 0 9 0; #X connect 11 0 65 0;
#X connect 12 0 13 0; #X connect 11 1 59 0;
#X connect 13 0 69 0; #X connect 12 0 10 0;
#X connect 13 1 63 0; #X connect 13 0 17 0;
#X connect 14 0 12 0; #X connect 14 0 13 1;
#X connect 15 0 20 0; #X connect 15 0 13 0;
#X connect 16 0 15 1; #X connect 15 0 16 0;
#X connect 17 0 15 0; #X connect 18 0 22 0;
#X connect 17 0 19 0; #X connect 19 0 18 1;
#X connect 20 0 18 0; #X connect 20 0 18 0;
#X connect 21 0 26 0; #X connect 20 0 21 0;
#X connect 22 0 21 1; #X connect 23 0 28 0;
#X connect 23 0 21 0; #X connect 24 0 23 1;
#X connect 23 0 25 0; #X connect 25 0 23 0;
#X connect 26 0 24 0; #X connect 25 0 27 0;
#X connect 27 0 32 0; #X connect 28 0 26 0;
#X connect 28 0 27 1; #X connect 31 0 30 1;
#X connect 29 0 27 0;
#X connect 29 0 31 0;
#X connect 32 0 30 0; #X connect 32 0 30 0;
#X connect 35 0 34 1; #X connect 32 0 34 0;
#X connect 36 0 34 0; #X connect 35 0 51 0;
#X connect 36 0 38 0; #X connect 36 0 35 0;
#X connect 39 0 55 0; #X connect 38 0 56 0;
#X connect 40 0 39 0; #X connect 39 0 56 0;
#X connect 42 0 60 0; #X connect 42 0 35 0;
#X connect 43 0 60 0; #X connect 43 0 35 1;
#X connect 46 0 39 0; #X connect 44 0 50 0;
#X connect 47 0 39 1; #X connect 45 0 44 0;
#X connect 48 0 54 0; #X connect 46 0 44 1;
#X connect 49 0 48 0; #X connect 48 0 44 0;
#X connect 50 0 48 1; #X connect 49 0 44 1;
#X connect 52 0 48 0; #X connect 50 0 57 0;
#X connect 53 0 48 1; #X connect 51 0 56 0;
#X connect 54 0 61 0; #X connect 52 0 35 1;
#X connect 55 0 60 0; #X connect 53 0 35 1;
#X connect 56 0 39 1; #X connect 54 0 35 1;
#X connect 57 0 39 1; #X connect 55 0 35 1;
#X connect 58 0 39 1; #X connect 60 0 20 0;
#X connect 59 0 39 1; #X connect 61 0 15 0;
#X connect 64 0 23 0; #X connect 62 0 7 0;
#X connect 65 0 17 0; #X connect 63 0 2 0;
#X connect 66 0 8 0; #X connect 64 0 32 0;
#X connect 67 0 2 0; #X connect 66 0 25 0;
#X connect 68 0 36 0; #X connect 67 0 71 0;
#X connect 70 0 29 0; #X connect 68 0 67 0;
#X connect 71 0 75 0; #X connect 69 0 67 0;
#X connect 72 0 71 0; #X connect 70 0 67 0;
#X connect 73 0 71 0; #X connect 71 0 72 0;
#X connect 74 0 71 0; #X connect 72 0 73 0;
#X connect 75 0 76 0; #X connect 72 1 74 0;
#X connect 76 0 77 0; #X connect 72 2 75 0;
#X connect 76 1 78 0; #X connect 72 3 76 0;
#X connect 76 2 79 0; #X connect 72 4 77 0;
#X connect 76 3 80 0; #X connect 72 5 78 0;
#X connect 76 4 81 0; #X connect 73 0 81 0;
#X connect 76 5 82 0; #X connect 74 0 84 0;
#X connect 77 0 85 0; #X connect 75 0 87 0;
#X connect 78 0 88 0; #X connect 77 0 93 0;
#X connect 79 0 91 0; #X connect 78 0 96 0;
#X connect 81 0 97 0; #X connect 79 0 80 0;
#X connect 82 0 100 0; #X connect 80 0 120 0;
#X connect 83 0 84 0; #X connect 81 0 79 0;
#X connect 84 0 124 0; #X connect 82 0 83 0;
#X connect 85 0 83 0; #X connect 83 0 122 0;
#X connect 86 0 87 0; #X connect 84 0 82 0;
#X connect 87 0 126 0; #X connect 85 0 86 0;
#X connect 88 0 86 0; #X connect 86 0 121 0;
#X connect 89 0 90 0; #X connect 87 0 85 0;
#X connect 90 0 125 0; #X connect 88 0 89 0;
#X connect 91 0 89 0; #X connect 89 0 103 0;
#X connect 92 0 93 0; #X connect 90 0 88 0;
#X connect 93 0 107 0; #X connect 91 0 92 0;
#X connect 94 0 92 0; #X connect 92 0 126 0;
#X connect 95 0 96 0; #X connect 93 0 91 0;
#X connect 96 0 130 0; #X connect 94 0 95 0;
#X connect 97 0 95 0; #X connect 95 0 104 0;
#X connect 98 0 99 0; #X connect 96 0 94 0;
#X connect 99 0 108 0; #X connect 97 0 2 0;
#X connect 100 0 98 0; #X connect 98 0 116 0;
#X connect 101 0 2 0; #X connect 99 0 117 0;
#X connect 102 0 120 0; #X connect 101 0 124 0;
#X connect 103 0 121 0; #X connect 102 0 119 0;
#X connect 105 0 128 0; #X connect 103 0 113 0;
#X connect 106 0 123 0; #X connect 104 0 114 0;
#X connect 107 0 117 0; #X connect 110 0 97 0;
#X connect 108 0 118 0; #X connect 111 0 98 0;
#X connect 114 0 101 0; #X connect 112 0 99 0;
#X connect 115 0 102 0; #X connect 113 0 100 0;
#X connect 116 0 103 0; #X connect 114 0 102 0;
#X connect 117 0 104 0; #X connect 115 0 101 0;
#X connect 118 0 106 0; #X connect 116 0 7 0;
#X connect 119 0 105 0; #X connect 117 0 15 0;
#X connect 120 0 8 0; #X connect 119 0 20 0;
#X connect 121 0 17 0; #X connect 120 0 110 0;
#X connect 123 0 23 0; #X connect 121 0 112 0;
#X connect 124 0 114 0; #X connect 122 0 111 0;
#X connect 125 0 116 0; #X connect 125 0 33 0;
#X connect 126 0 115 0; #X connect 126 0 115 0;
#X connect 128 0 127 0; #X restore 446 344 pd crickets ctrl;
#X connect 129 0 37 0; #X obj 896 154 print OSC;
#X connect 130 0 119 0;
#X restore 402 321 pd crickets ctrl;
#X obj 352 146 print OSC;
#X obj 698 295 int; #X obj 698 295 int;
#X obj 1167 72 s NOTE; #X obj 1207 92 s NOTE;
#X msg 1167 46 62 100 1; #X msg 1207 66 62 100 1;
#X msg 20 52 devicename /dev/tty.HC-06-DevB-1 \, baud 57600 \, pollintervall #X msg 20 52 devicename /dev/tty.HC-06-DevB-1 \, baud 57600 \, pollintervall
1 \, verbose 1; 1 \, verbose 1;
#X obj 664 126 spigot; #X obj 510 230 spigot;
#X obj 733 111 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 #X obj 559 215 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1; 1;
#X obj 352 119 spigot; #X obj 896 127 spigot;
#X obj 421 104 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 #X obj 945 112 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1; 1;
#X msg 538 52 devicename /dev/tty.usbmodem48710501 \, baud 57600 \, #X msg 558 52 devicename /dev/tty.usbmodem48710501 \, baud 57600 \,
pollintervall 1 \, verbose 1; pollintervall 1 \, verbose 1;
#X obj 941 136 spigot; #X obj 976 127 spigot;
#X obj 1010 121 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 #X obj 1025 112 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1; 1 1;
#X floatatom 1113 355 5 0 0 0 r:0-vol #0-vol -; #X floatatom 1135 232 5 0 0 0 r:0-vol #0-vol -;
#X obj 238 516 o.io.slipserial; #X obj 238 516 o.io.slipserial;
#X msg 267 465 devices; #X msg 267 465 devices;
#X msg 344 470 close; #X msg 344 470 close;
@ -383,6 +375,31 @@ pollintervall 1 \, verbose 1;
pollintervall 1 \, verbose 1; pollintervall 1 \, verbose 1;
#X obj 238 414 r OSC2; #X obj 238 414 r OSC2;
#X obj 625 309 s OSC2; #X obj 625 309 s OSC2;
#X msg 538 12 devicename /dev/portD \, baud 57600 \, pollintervall
1 \, verbose 1;
#X text 1180 167 vol. override;
#X msg 1208 321 0;
#X msg 1208 300 10;
#X msg 1208 279 25;
#X msg 1208 258 50;
#X msg 1208 217 255;
#X msg 1208 197 500;
#X msg 1208 237 127;
#X text 1233 197 BIG;
#X text 1234 321 SMALL;
#X msg 1208 146 180;
#X floatatom 1168 343 5 0 0 0 s:0-vol - #0-vol;
#X text 902 382 vol. control knob for keyboard is needed. / instead
of doing this messy approach.;
#X obj 430 230 spigot;
#X obj 479 215 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 430 209 r OSC2;
#X obj 430 267 print OSC2;
#X obj 896 104 r OSC;
#X msg 1135 254 set \$1;
#X obj 1027 471 s NOTE;
#X msg 1027 445 68 100 0;
#X connect 0 0 3 0; #X connect 0 0 3 0;
#X connect 2 0 7 1; #X connect 2 0 7 1;
#X connect 3 0 11 0; #X connect 3 0 11 0;
@ -409,56 +426,62 @@ pollintervall 1 \, verbose 1;
#X connect 26 1 31 0; #X connect 26 1 31 0;
#X connect 27 0 28 0; #X connect 27 0 28 0;
#X connect 28 0 26 0; #X connect 28 0 26 0;
#X connect 28 1 42 0; #X connect 28 1 41 0;
#X connect 28 2 22 0; #X connect 28 2 22 0;
#X connect 30 0 32 0; #X connect 30 0 32 0;
#X connect 31 0 32 0; #X connect 31 0 32 0;
#X connect 33 0 24 0; #X connect 33 0 24 0;
#X connect 33 0 77 0;
#X connect 35 0 34 0; #X connect 35 0 34 0;
#X connect 36 0 80 0; #X connect 36 0 69 0;
#X connect 37 0 32 0; #X connect 37 0 32 0;
#X connect 38 0 30 0; #X connect 38 0 30 0;
#X connect 39 0 40 0; #X connect 39 0 40 0;
#X connect 40 0 38 0; #X connect 40 0 38 0;
#X connect 42 0 38 0; #X connect 41 0 38 0;
#X connect 43 0 38 0; #X connect 43 0 42 0;
#X connect 44 0 38 0; #X connect 45 0 53 0;
#X connect 45 0 38 0; #X connect 45 1 46 0;
#X connect 46 0 38 0; #X connect 46 0 78 0;
#X connect 47 0 38 0; #X connect 47 0 78 0;
#X connect 48 0 38 0; #X connect 48 0 47 0;
#X connect 49 0 38 0; #X connect 48 1 52 0;
#X connect 52 0 38 0; #X connect 49 0 48 0;
#X connect 54 0 53 0; #X connect 49 1 54 0;
#X connect 49 2 45 0;
#X connect 51 0 78 0;
#X connect 52 0 78 0;
#X connect 53 0 78 0;
#X connect 54 0 60 0;
#X connect 56 0 64 0; #X connect 56 0 64 0;
#X connect 56 1 57 0; #X connect 57 0 49 0;
#X connect 57 0 89 0; #X connect 60 0 51 0;
#X connect 58 0 89 0; #X connect 62 0 61 0;
#X connect 59 0 58 0; #X connect 63 0 7 1;
#X connect 59 1 63 0; #X connect 64 0 55 0;
#X connect 60 0 59 0; #X connect 65 0 64 1;
#X connect 60 1 65 0; #X connect 66 0 59 0;
#X connect 60 2 56 0; #X connect 67 0 66 1;
#X connect 62 0 89 0; #X connect 68 0 13 1;
#X connect 63 0 89 0; #X connect 69 0 44 0;
#X connect 64 0 89 0; #X connect 70 0 69 1;
#X connect 65 0 71 0; #X connect 71 0 98 0;
#X connect 67 0 75 0; #X connect 73 0 72 1;
#X connect 68 0 60 0; #X connect 74 0 72 1;
#X connect 71 0 62 0; #X connect 75 0 72 0;
#X connect 73 0 72 0; #X connect 76 0 72 1;
#X connect 74 0 7 1; #X connect 77 0 75 0;
#X connect 75 0 66 0;
#X connect 76 0 75 1;
#X connect 77 0 70 0;
#X connect 78 0 77 1;
#X connect 79 0 13 1; #X connect 79 0 13 1;
#X connect 80 0 55 0; #X connect 81 0 91 0;
#X connect 81 0 80 1; #X connect 82 0 91 0;
#X connect 82 0 38 0; #X connect 83 0 91 0;
#X connect 84 0 83 1; #X connect 84 0 91 0;
#X connect 85 0 83 1; #X connect 85 0 91 0;
#X connect 86 0 83 0; #X connect 86 0 91 0;
#X connect 87 0 83 1; #X connect 87 0 91 0;
#X connect 88 0 86 0; #X connect 90 0 91 0;
#X connect 93 0 96 0;
#X connect 94 0 93 1;
#X connect 95 0 93 0;
#X connect 97 0 66 0;
#X connect 98 0 38 0;
#X connect 100 0 99 0;