nxInstrument009

Download all code, records and samples
Download nxInstrument009 2009.04.26 2009.09.26
Download SimpleOSC
Download Piano Soundfont

Python Code:

# Python Code:
# nx00902.py
# Author: Miquel Parera Jaques
# Date: 2009/04/22 21:22:29 CEST
# Target: Rossler Attractor (Main Oscillator)
 
import time
import os
import sys
import random
#from osc import oscAPI
import osc
import numpy
 
# Launch OSC
 
osc.init()
 
# Main variables
 
x = 1.0
y = 1.0
z = 1.0
 
a = 0.2
b = 0.2
c = 5.7
 
grec_init = random.randint(0, 150)
 
alfa = grec_init
beta = grec_init
gamma = grec_init
 
range_rossler = random.randint(360, 600)
print "range_rossler", range_rossler 
 
osc.sendMsg("/nxInstrument009/range_rossler", [range_rossler], "127.0.0.1", 12000)
 
init_freq = random.randint(33, 99)
print "init_freq:", init_freq
 
nxEscaleA = numpy.array(range(8))
 
nxEscaleA[0] = init_freq
nxEscaleA[1] = init_freq + 2
nxEscaleA[2] = init_freq + 4
nxEscaleA[3] = init_freq + 5
nxEscaleA[4] = init_freq + 7
nxEscaleA[5] = init_freq + 9
nxEscaleA[6] = init_freq + 11
nxEscaleA[7] = init_freq + 12
 
init_freq2 = init_freq + 36
 
nxEscaleB = numpy.array(range(8))
 
nxEscaleB[0] = init_freq2
nxEscaleB[1] = init_freq2 + 2
nxEscaleB[2] = init_freq2 + 4
nxEscaleB[3] = init_freq2 + 5
nxEscaleB[4] = init_freq2 + 7
nxEscaleB[5] = init_freq2 + 9
nxEscaleB[6] = init_freq2 + 11
nxEscaleB[7] = init_freq2 + 12
 
osc.sendMsg("/nxInstrument009/init_freq", [init_freq], "127.0.0.1", 12000)
 
osc.sendMsg("/nxInstrument009/nxEscaleA", [float(nxEscaleA[0]/2),float(nxEscaleA[1]/2),float(nxEscaleA[2]/2),float(nxEscaleA[3]/2),float(nxEscaleA[4]/2),float(nxEscaleA[5]/2),float(nxEscaleA[6]/2),float(nxEscaleA[7]/2)], "127.0.0.1", 12000)
 
osc.sendMsg("/nxInstrument009/nxEscaleB", [float(nxEscaleB[0]/2),float(nxEscaleB[1]/2),float(nxEscaleB[2]/2),float(nxEscaleB[3]/2),float(nxEscaleB[4]/2),float(nxEscaleB[5]/2),float(nxEscaleB[6]/2),float(nxEscaleB[7]/2)], "127.0.0.1", 12000)
 
# Tempo
 
nxBpm = random.randint(120, 200)
 
nxTempoMs = numpy.array(range(5))
 
# Milliseconds
 
nxTempoMs[2] = 60000/nxBpm
nxTempoMs[1] = nxTempoMs[2] * 2
nxTempoMs[0] = nxTempoMs[1] * 2
nxTempoMs[3] = nxTempoMs[2] / 2
nxTempoMs[4] = nxTempoMs[3] / 2
 
init_time = float(nxTempoMs[2]) / 1000
print "init_time:", init_time
 
osc.sendMsg("/nxInstrument009/init_time", [float(nxTempoMs[2])], "127.0.0.1", 12000)
 
total_time = init_time * range_rossler
print "total_time(min):", total_time/60 
 
# Delay
 
main_delay = float(random.choice([nxTempoMs[1],nxTempoMs[0],nxTempoMs[3],nxTempoMs[4]]))
print "main_delay:", main_delay
 
osc.sendMsg("/nxInstrument009/main_delay", [main_delay], "127.0.0.1", 12000)
 
delay2 = float(random.choice([nxTempoMs[1],nxTempoMs[0],nxTempoMs[3],nxTempoMs[4]]))
osc.sendMsg("/nxInstrument009/delay2", [delay2], "127.0.0.1", 12000)
delay3 = float(random.choice([nxTempoMs[1],nxTempoMs[0],nxTempoMs[3],nxTempoMs[4]]))
osc.sendMsg("/nxInstrument009/delay3", [delay3], "127.0.0.1", 12000)
 
# Filter
 
main_filter = random.randint(50, 300)
osc.sendMsg("/nxInstrument009/main_filter", [main_filter], "127.0.0.1", 12000)
filter2 = random.randint(50, 300)
osc.sendMsg("/nxInstrument009/filter2", [filter2], "127.0.0.1", 12000)
filter3 = random.randint(50, 300)
osc.sendMsg("/nxInstrument009/filter3", [filter3], "127.0.0.1", 12000)
 
for i in range(range_rossler):
 
    time.sleep(init_time)
 
    x = x + 0.01
    y = y + 0.01
    z = z + 0.01
 
    alfa = random.randint(-6,6)*(-y-z)
    beta = random.randint(-6,6)*(x+(a*y))
    gamma = random.randint(-6,6)*((b + z*(x-c))/10)
 
    osc.sendMsg("/nxInstrument009/harmonic_1", [alfa], "127.0.0.1", 12000)
    osc.sendMsg("/nxInstrument009/harmonic_2", [beta], "127.0.0.1", 12000)
    osc.sendMsg("/nxInstrument009/harmonic_3", [gamma], "127.0.0.1", 12000)
 
print "THE END"
 
osc.sendMsg("/nxInstrument009/off", [1], "127.0.0.1", 12000)

PureData Code:

#N canvas 0 25 1016 657 10;
#X obj 92 34 dumpOSC 12000;
#X floatatom 92 225 5 0 0 0 - - -;
#X obj 92 197 unpack f;
#X obj 92 63 OSCroute /nxInstrument009;
#X obj 92 113 OSCroute /init_freq;
#X obj 92 321 osc~;
#X obj 216 292 *;
#X floatatom 216 318 5 0 0 0 - - -;
#X obj 231 113 OSCroute /harmonic_1;
#X obj 93 517 +~;
#X obj 215 501 *~;
#X obj 215 476 +~;
#X obj 215 450 +~;
#X obj 216 375 *~ 0.25;
#X floatatom 231 219 5 0 0 0 - - -;
#X obj 313 486 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 313 463 loadbang;
#X obj 345 292 *;
#X floatatom 345 318 5 0 0 0 - - -;
#X obj 345 375 *~ 0.25;
#X floatatom 360 219 5 0 0 0 - - -;
#X obj 475 292 *;
#X floatatom 475 318 5 0 0 0 - - -;
#X obj 475 375 *~ 0.25;
#X floatatom 490 219 5 0 0 0 - - -;
#X obj 360 113 OSCroute /harmonic_2;
#X obj 490 113 OSCroute /harmonic_3;
#X obj 368 623 dac~;
#X msg 730 98 \; pd dsp 1;
#X msg 822 98 \; pd dsp 0;
#X text 729 128 ON;
#X text 819 129 OFF;
#X obj 650 532 *~;
#X obj 666 506 line~;
#X obj 730 64 loadbang;
#X obj 231 192 unpack f;
#X obj 360 192 unpack f;
#X obj 490 192 unpack f;
#X obj 666 183 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 166 196 float;
#X obj 166 162 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 622 113 OSCroute /off;
#X obj 727 182 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 666 450 0.1 6000;
#X msg 727 449 0 6000;
#N canvas 348 121 450 398 filter_+_delay 0;
#X obj 25 17 inlet~;
#X floatatom 46 207 0 0 0 0 - - -;
#X obj 25 279 +~;
#X obj 46 255 *~ 0.7;
#X obj 46 231 delread~ G02-del 160;
#X obj 65 295 delwrite~ G02-del 2000;
#X obj 26 346 outlet~;
#X obj 46 178 r main_delay;
#X obj 25 108 lop~;
#X floatatom 46 79 0 0 0 0 - - -;
#X obj 46 50 r main_filter;
#X connect 0 0 8 0;
#X connect 1 0 4 0;
#X connect 2 0 5 0;
#X connect 2 0 6 0;
#X connect 3 0 2 1;
#X connect 4 0 3 0;
#X connect 7 0 1 0;
#X connect 8 0 2 0;
#X connect 9 0 8 1;
#X connect 10 0 9 0;
#X restore 649 567 pd filter_+_delay;
#X obj -50 165 s main_delay;
#X obj -50 80 OSCroute /main_delay;
#X obj -50 116 unpack f;
#X floatatom -50 141 5 0 0 0 - - -;
#X obj 216 345 osc~;
#X obj 345 345 osc~;
#X obj 475 345 osc~;
#X obj -49 247 unpack f;
#X floatatom -49 272 5 0 0 0 - - -;
#X obj -49 221 OSCroute /main_filter;
#X obj -49 296 s main_filter;
#X obj -62 363 unpack f;
#X floatatom -62 388 5 0 0 0 - - -;
#X obj -62 337 OSCroute /range_rossler;
#X obj -62 412 s range_rossler;
#X obj -61 448 counter;
#X floatatom -61 477 5 0 0 0 - - -;
#X obj -61 503 s main_counter;
#N canvas 0 25 1016 657 loop 0;
#X obj 48 -26 inlet~;
#X floatatom 88 47 5 0 0 0 - - -;
#X obj 88 79 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X floatatom 88 150 5 0 0 0 - - -;
#X obj 88 15 r main_counter;
#X obj 88 119 counter 2 1 16 10;
#X obj 88 180 select 1;
#N canvas 0 0 450 300 (subpatch) 0;
#X array loop_1 44103 float 0;
#X coords 0 1.02 44102 -1.02 200 130 1;
#X restore 689 14 graph;
#X obj 49 326 tabwrite~ loop_1;
#N canvas 0 0 450 300 (subpatch) 0;
#X array loop_2 44103 float 0;
#X coords 0 1.02 44103 -1.02 200 130 1;
#X restore 688 185 graph;
#X obj 87 296 tabwrite~ loop_2;
#X obj 145 180 select 16;
#X msg 88 210 bang;
#X msg 145 213 stop;
#X msg 93 234 stop;
#X msg 150 237 bang;
#X obj 223 254 hip~ 5;
#X floatatom 224 56 0 0 0 0 - - -;
#X floatatom 310 92 0 0 0 0 - - -;
#X obj 310 119 * 441;
#X obj 288 168 +~ 1;
#X obj 223 144 -~ 0.5;
#X obj 223 194 cos~;
#X obj 223 227 *~;
#X obj 224 82 phasor~;
#X obj 223 169 *~ 0.5;
#X obj 288 143 *~;
#X obj 288 194 tabread4~ loop_1;
#X obj 254 448 outlet~;
#X obj 310 37 random 90;
#X msg 310 12 bang;
#X obj 310 -12 loadbang;
#X obj 254 366 *~;
#X obj 270 340 line~;
#X msg 270 284 0.1 6000;
#X msg 331 283 0 6000;
#X obj 270 253 r on;
#X obj 331 251 r off;
#X msg 224 30 1;
#N canvas 348 121 450 398 filter_+_delay2 0;
#X obj 25 17 inlet~;
#X floatatom 46 207 0 0 0 0 - - -;
#X obj 25 279 +~;
#X obj 46 255 *~ 0.7;
#X obj 26 346 outlet~;
#X obj 25 108 lop~;
#X floatatom 46 79 0 0 0 0 - - -;
#X obj 46 231 delread~ G03-del 160;
#X obj 65 295 delwrite~ G03-del 2000;
#X obj 46 50 r filter2;
#X obj 46 178 r delay2;
#X connect 0 0 5 0;
#X connect 1 0 7 0;
#X connect 2 0 4 0;
#X connect 2 0 8 0;
#X connect 3 0 2 1;
#X connect 5 0 2 0;
#X connect 6 0 5 1;
#X connect 7 0 3 0;
#X connect 9 0 6 0;
#X connect 10 0 1 0;
#X restore 255 405 pd filter_+_delay2;
#X obj 408 253 hip~ 5;
#X floatatom 409 55 0 0 0 0 - - -;
#X floatatom 495 91 0 0 0 0 - - -;
#X obj 495 118 * 441;
#X obj 473 167 +~ 1;
#X obj 408 143 -~ 0.5;
#X obj 408 193 cos~;
#X obj 408 226 *~;
#X obj 409 81 phasor~;
#X obj 408 168 *~ 0.5;
#X obj 473 142 *~;
#X obj 439 447 outlet~;
#X obj 495 36 random 90;
#X msg 495 11 bang;
#X obj 495 -13 loadbang;
#X obj 439 365 *~;
#X obj 455 339 line~;
#X msg 455 283 0.1 6000;
#X msg 516 282 0 6000;
#X obj 455 252 r on;
#X obj 516 250 r off;
#X msg 409 29 1;
#X obj 473 193 tabread4~ loop_2;
#N canvas 348 121 450 398 filter_+_delay3 0;
#X obj 25 17 inlet~;
#X floatatom 46 207 0 0 0 0 - - -;
#X obj 25 279 +~;
#X obj 46 255 *~ 0.7;
#X obj 26 346 outlet~;
#X obj 25 108 lop~;
#X floatatom 46 79 0 0 0 0 - - -;
#X obj 46 50 r filter3;
#X obj 46 178 r delay3;
#X obj 46 231 delread~ G04-del 160;
#X obj 65 295 delwrite~ G04-del 2000;
#X connect 0 0 5 0;
#X connect 1 0 9 0;
#X connect 2 0 4 0;
#X connect 2 0 10 0;
#X connect 3 0 2 1;
#X connect 5 0 2 0;
#X connect 6 0 5 1;
#X connect 7 0 6 0;
#X connect 8 0 1 0;
#X connect 9 0 3 0;
#X restore 440 404 pd filter_+_delay3;
#X obj 310 64 + 100;
#X obj 495 63 + 100;
#X connect 0 0 8 0;
#X connect 0 0 10 0;
#X connect 1 0 2 0;
#X connect 2 0 5 0;
#X connect 3 0 6 0;
#X connect 3 0 11 0;
#X connect 4 0 1 0;
#X connect 5 0 3 0;
#X connect 6 0 12 0;
#X connect 6 0 14 0;
#X connect 11 0 13 0;
#X connect 11 0 15 0;
#X connect 12 0 8 0;
#X connect 13 0 8 0;
#X connect 14 0 10 0;
#X connect 15 0 10 0;
#X connect 16 0 32 0;
#X connect 17 0 24 0;
#X connect 18 0 19 0;
#X connect 19 0 26 1;
#X connect 20 0 27 0;
#X connect 21 0 25 0;
#X connect 22 0 23 0;
#X connect 23 0 16 0;
#X connect 24 0 21 0;
#X connect 24 0 26 0;
#X connect 25 0 22 0;
#X connect 26 0 20 0;
#X connect 27 0 23 1;
#X connect 29 0 64 0;
#X connect 30 0 29 0;
#X connect 31 0 30 0;
#X connect 31 0 38 0;
#X connect 32 0 39 0;
#X connect 33 0 32 1;
#X connect 34 0 33 0;
#X connect 35 0 33 0;
#X connect 36 0 34 0;
#X connect 37 0 35 0;
#X connect 38 0 17 0;
#X connect 39 0 28 0;
#X connect 40 0 55 0;
#X connect 41 0 48 0;
#X connect 42 0 43 0;
#X connect 43 0 50 1;
#X connect 44 0 62 0;
#X connect 45 0 49 0;
#X connect 46 0 47 0;
#X connect 47 0 40 0;
#X connect 48 0 45 0;
#X connect 48 0 50 0;
#X connect 49 0 46 0;
#X connect 50 0 44 0;
#X connect 52 0 65 0;
#X connect 53 0 52 0;
#X connect 54 0 53 0;
#X connect 54 0 61 0;
#X connect 55 0 63 0;
#X connect 56 0 55 1;
#X connect 57 0 56 0;
#X connect 58 0 56 0;
#X connect 59 0 57 0;
#X connect 60 0 58 0;
#X connect 61 0 41 0;
#X connect 62 0 47 1;
#X connect 63 0 51 0;
#X connect 64 0 18 0;
#X connect 65 0 42 0;
#X restore 92 554 pd loop;
#X obj 758 299 s on;
#X obj 789 298 s off;
#X obj 291 26 unpack f;
#X floatatom 291 51 5 0 0 0 - - -;
#X obj 291 0 OSCroute /filter2;
#X obj 291 75 s filter2;
#X obj 402 26 unpack f;
#X floatatom 402 51 5 0 0 0 - - -;
#X obj 402 0 OSCroute /filter3;
#X obj 402 75 s filter3;
#X obj 515 26 unpack f;
#X floatatom 515 51 5 0 0 0 - - -;
#X obj 626 26 unpack f;
#X floatatom 626 51 5 0 0 0 - - -;
#X obj 515 0 OSCroute /delay2;
#X obj 515 75 s delay2;
#X obj 626 0 OSCroute /delay3;
#X obj 626 74 s delay3;
#X obj 822 66 delay 10000;
#N canvas 0 25 1016 657 piano 0;
#X obj 21 19 r main_counter;
#X floatatom 21 45 5 0 0 0 - - -;
#X obj 268 98 OSCroute /nxEscaleA;
#X obj 268 129 unpack f f f f f f f f;
#X floatatom 268 184 5 0 0 0 - - -;
#X floatatom 302 184 5 0 0 0 - - -;
#X floatatom 336 184 5 0 0 0 - - -;
#X floatatom 370 184 5 0 0 0 - - -;
#X floatatom 404 184 5 0 0 0 - - -;
#X floatatom 438 184 5 0 0 0 - - -;
#X floatatom 472 184 5 0 0 0 - - -;
#X floatatom 506 184 5 0 0 0 - - -;
#X obj 268 56 inlet;
#X obj 194 278 float;
#X obj 235 278 float;
#X obj 276 278 float;
#X obj 317 278 float;
#X obj 358 277 float;
#X obj 399 277 float;
#X obj 440 277 float;
#X obj 479 277 float;
#X floatatom 194 340 5 0 0 0 - - -;
#X floatatom 21 120 5 0 0 0 - - -;
#X obj 21 88 counter 2 1 4 10;
#X obj 21 186 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 136 228 select 0 1 2 3 4 5 6;
#X obj 136 201 random 6;
#X obj 692 120 unpack f f f f f f f f;
#X floatatom 692 175 5 0 0 0 - - -;
#X floatatom 726 175 5 0 0 0 - - -;
#X floatatom 760 175 5 0 0 0 - - -;
#X floatatom 794 175 5 0 0 0 - - -;
#X floatatom 828 175 5 0 0 0 - - -;
#X floatatom 862 175 5 0 0 0 - - -;
#X floatatom 896 175 5 0 0 0 - - -;
#X floatatom 930 175 5 0 0 0 - - -;
#X obj 618 269 float;
#X obj 659 269 float;
#X obj 700 269 float;
#X obj 741 269 float;
#X obj 782 268 float;
#X obj 823 268 float;
#X obj 864 268 float;
#X obj 903 268 float;
#X floatatom 618 331 5 0 0 0 - - -;
#X obj 560 219 select 0 1 2 3 4 5 6;
#X obj 560 192 random 6;
#X obj 692 89 OSCroute /nxEscaleB;
#X obj 516 148 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 351 561 makenote;
#X obj 396 367 OSCroute /init_time;
#X obj 396 398 unpack f;
#X floatatom 396 422 5 0 0 0 - - -;
#X obj 310 356 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 310 392 random 30;
#X floatatom 310 446 5 0 0 0 - - -;
#X obj 575 533 makenote;
#X obj 618 362 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 618 398 random 30;
#X floatatom 618 452 5 0 0 0 - - -;
#X obj 575 570 noteout 2;
#X obj 351 598 noteout 1;
#X obj 310 419 + 10;
#X obj 618 425 + 10;
#X obj 396 492 random;
#X obj 396 515 + 20;
#X obj 396 449 * 2;
#X obj 21 151 select 1 4 2;
#X obj 516 113 select 2 1 3;
#X obj 653 520 random;
#X obj 653 543 + 20;
#X obj 653 477 * 2;
#X connect 0 0 1 0;
#X connect 1 0 23 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 5 0;
#X connect 3 2 6 0;
#X connect 3 3 7 0;
#X connect 3 4 8 0;
#X connect 3 5 9 0;
#X connect 3 6 10 0;
#X connect 3 7 11 0;
#X connect 4 0 13 1;
#X connect 5 0 14 1;
#X connect 6 0 15 1;
#X connect 7 0 16 1;
#X connect 8 0 17 1;
#X connect 9 0 18 1;
#X connect 10 0 19 1;
#X connect 11 0 20 1;
#X connect 12 0 2 0;
#X connect 12 0 47 0;
#X connect 12 0 50 0;
#X connect 13 0 21 0;
#X connect 14 0 21 0;
#X connect 15 0 21 0;
#X connect 16 0 21 0;
#X connect 17 0 21 0;
#X connect 18 0 21 0;
#X connect 19 0 21 0;
#X connect 20 0 21 0;
#X connect 21 0 53 0;
#X connect 21 0 49 0;
#X connect 22 0 67 0;
#X connect 22 0 68 0;
#X connect 23 0 22 0;
#X connect 24 0 26 0;
#X connect 25 0 13 0;
#X connect 25 1 14 0;
#X connect 25 2 15 0;
#X connect 25 3 16 0;
#X connect 25 4 17 0;
#X connect 25 5 18 0;
#X connect 25 6 19 0;
#X connect 25 7 20 0;
#X connect 26 0 25 0;
#X connect 27 0 28 0;
#X connect 27 1 29 0;
#X connect 27 2 30 0;
#X connect 27 3 31 0;
#X connect 27 4 32 0;
#X connect 27 5 33 0;
#X connect 27 6 34 0;
#X connect 27 7 35 0;
#X connect 28 0 36 1;
#X connect 29 0 37 1;
#X connect 30 0 38 1;
#X connect 31 0 39 1;
#X connect 32 0 40 1;
#X connect 33 0 41 1;
#X connect 34 0 42 1;
#X connect 35 0 43 1;
#X connect 36 0 44 0;
#X connect 37 0 44 0;
#X connect 38 0 44 0;
#X connect 39 0 44 0;
#X connect 40 0 44 0;
#X connect 41 0 44 0;
#X connect 42 0 44 0;
#X connect 43 0 44 0;
#X connect 44 0 57 0;
#X connect 44 0 56 0;
#X connect 45 0 36 0;
#X connect 45 1 37 0;
#X connect 45 2 38 0;
#X connect 45 3 39 0;
#X connect 45 4 40 0;
#X connect 45 5 41 0;
#X connect 45 6 42 0;
#X connect 45 7 43 0;
#X connect 46 0 45 0;
#X connect 47 0 27 0;
#X connect 48 0 46 0;
#X connect 49 0 61 0;
#X connect 49 1 61 1;
#X connect 50 0 51 0;
#X connect 51 0 52 0;
#X connect 52 0 66 0;
#X connect 52 0 71 0;
#X connect 53 0 54 0;
#X connect 53 0 64 0;
#X connect 53 0 69 0;
#X connect 54 0 62 0;
#X connect 55 0 49 1;
#X connect 56 0 60 0;
#X connect 56 1 60 1;
#X connect 57 0 58 0;
#X connect 58 0 63 0;
#X connect 59 0 56 1;
#X connect 62 0 55 0;
#X connect 63 0 59 0;
#X connect 64 0 65 0;
#X connect 65 0 49 2;
#X connect 66 0 64 1;
#X connect 67 0 24 0;
#X connect 67 1 26 0;
#X connect 67 2 26 0;
#X connect 68 0 48 0;
#X connect 68 1 46 0;
#X connect 68 2 46 0;
#X connect 69 0 70 0;
#X connect 70 0 56 2;
#X connect 71 0 69 1;
#X restore 561 284 pd piano;
#X connect 0 0 3 0;
#X connect 1 0 5 0;
#X connect 1 0 6 0;
#X connect 1 0 17 0;
#X connect 1 0 21 0;
#X connect 1 0 39 1;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 3 0 8 0;
#X connect 3 0 25 0;
#X connect 3 0 26 0;
#X connect 3 0 41 0;
#X connect 3 0 47 0;
#X connect 3 0 55 0;
#X connect 3 0 59 0;
#X connect 3 0 69 0;
#X connect 3 0 73 0;
#X connect 3 0 79 0;
#X connect 3 0 81 0;
#X connect 3 0 84 0;
#X connect 4 0 2 0;
#X connect 4 0 38 0;
#X connect 5 0 9 0;
#X connect 6 0 7 0;
#X connect 7 0 50 0;
#X connect 8 0 35 0;
#X connect 8 0 40 0;
#X connect 9 0 32 0;
#X connect 9 0 64 0;
#X connect 10 0 9 1;
#X connect 11 0 10 0;
#X connect 12 0 11 0;
#X connect 13 0 12 0;
#X connect 14 0 6 1;
#X connect 15 0 10 1;
#X connect 16 0 15 0;
#X connect 17 0 18 0;
#X connect 18 0 51 0;
#X connect 19 0 12 1;
#X connect 20 0 17 1;
#X connect 21 0 22 0;
#X connect 22 0 52 0;
#X connect 23 0 11 1;
#X connect 24 0 21 1;
#X connect 25 0 36 0;
#X connect 26 0 37 0;
#X connect 32 0 45 0;
#X connect 33 0 32 1;
#X connect 34 0 28 0;
#X connect 35 0 14 0;
#X connect 36 0 20 0;
#X connect 37 0 24 0;
#X connect 38 0 43 0;
#X connect 38 0 65 0;
#X connect 39 0 6 0;
#X connect 39 0 17 0;
#X connect 39 0 21 0;
#X connect 40 0 39 0;
#X connect 40 0 61 0;
#X connect 41 0 42 0;
#X connect 42 0 44 0;
#X connect 42 0 66 0;
#X connect 43 0 33 0;
#X connect 44 0 33 0;
#X connect 45 0 27 0;
#X connect 45 0 27 1;
#X connect 47 0 48 0;
#X connect 48 0 49 0;
#X connect 49 0 46 0;
#X connect 50 0 13 0;
#X connect 51 0 19 0;
#X connect 52 0 23 0;
#X connect 53 0 54 0;
#X connect 54 0 56 0;
#X connect 55 0 53 0;
#X connect 57 0 58 0;
#X connect 58 0 60 0;
#X connect 58 0 61 4;
#X connect 59 0 57 0;
#X connect 61 0 62 0;
#X connect 62 0 63 0;
#X connect 64 0 27 0;
#X connect 64 1 27 1;
#X connect 67 0 68 0;
#X connect 68 0 70 0;
#X connect 69 0 67 0;
#X connect 71 0 72 0;
#X connect 72 0 74 0;
#X connect 73 0 71 0;
#X connect 75 0 76 0;
#X connect 76 0 80 0;
#X connect 77 0 78 0;
#X connect 78 0 82 0;
#X connect 79 0 75 0;
#X connect 81 0 77 0;
#X connect 83 0 29 0;
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License