#N canvas 871 74 498 738 10; #X obj 28 237 gemwin; #X msg 28 211 create \, 1; #N canvas 463 0 765 790 pix2sig_stuff~ 0; #X obj 120 35 gemhead; #X obj 120 132 pix_texture; #X obj 119 274 outlet~; #X obj 139 185 square 4; #X obj 139 163 separator; #X obj 61 165 separator; #X obj 120 101 pix_video; #X msg 186 64 dimen 640 480; #X obj 26 36 block~ 2048; #X msg 186 38 dimen 320 240; #X msg 76 535 getprecision; #X msg 93 696 getlearnrate; #X msg 65 671 learnrate 0.2; #X msg 424 459 getneurons; #X msg 404 206 train; #X obj 31 227 inlet~; #X msg 65 647 learnrate 0.05; #X text 296 49 <- input dimension; #X msg 76 498 precision \$1; #X floatatom 76 481 5 0 0 0 - - -; #X text 42 335 precision:; #X text 53 358 1: means every pixel is used in calculation; #X text 53 372 2: only every second pixel; #X text 53 386 ...; #X obj 62 411 loadbang; #X msg 407 401 neurons 2048; #X msg 407 422 neurons 64; #X text 403 336 neurons:; #X text 416 357 nr. of neurons used in the calculation; #X text 415 370 (_MUST_ be the same as the buffersize !!!); #X text 43 615 learnrate:; #X msg 62 456 precision 1; #X msg 62 436 precision 4; #X text 397 126 train:; #X text 417 152 trains the neural net; #X text 418 166 (the current video frame to; #X text 425 178 the current audio block); #X obj 61 252 pix_linNN; #X text 346 592 save/load; #X text 359 614 saves/load the actual trained net to/from a file; #X msg 440 684 load net.dat; #X msg 440 664 save net.dat; #X obj 78 226 r \$0-linNN; #X obj 404 233 s \$0-linNN; #X obj 62 564 s \$0-linNN; #X obj 407 492 s \$0-linNN; #X obj 65 725 s \$0-linNN; #X obj 440 723 s \$0-linNN; #X connect 0 0 6 0; #X connect 1 0 4 0; #X connect 1 0 5 0; #X connect 4 0 3 0; #X connect 5 0 37 0; #X connect 6 0 1 0; #X connect 7 0 6 0; #X connect 9 0 6 0; #X connect 10 0 44 0; #X connect 11 0 46 0; #X connect 12 0 46 0; #X connect 13 0 45 0; #X connect 14 0 43 0; #X connect 15 0 37 0; #X connect 16 0 46 0; #X connect 18 0 44 0; #X connect 19 0 18 0; #X connect 24 0 32 0; #X connect 25 0 45 0; #X connect 26 0 45 0; #X connect 31 0 44 0; #X connect 32 0 44 0; #X connect 37 1 2 0; #X connect 40 0 47 0; #X connect 41 0 47 0; #X connect 42 0 37 0; #X restore 87 492 pd pix2sig_stuff~; #X msg 102 212 0 \, destroy; #X obj 114 537 unsig~; #X obj 204 382 osc~ 440; #X obj 203 406 *~; #X obj 235 406 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 205 446 sig~ 0; #X floatatom 115 558 8 0 0 0 - - -; #X text 199 230 <- create gemwin; #X obj 39 392 readsf~; #X obj 39 351 openpanel; #X msg 39 371 open \$1; #X obj 39 330 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X text 65 329 <- load sample for training; #X obj 120 367 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0 1; #X floatatom 204 364 5 0 0 0 - - -; #X text 270 381 <- simple osc for training; #X text 260 447 <- to train silence; #X obj 83 413 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X text 214 491 <- audio/video work; #X obj 88 634 dac~; #X obj 88 609 *~; #X obj 116 609 dbtorms; #X floatatom 116 591 5 0 0 0 - - -; #X text 166 588 <- outvol in dB; #X text 110 703 Georg Holzmann \, 2004; #X text 24 23 pix_linNN:; #X text 22 58 (see also pix_recNN !!!); #X text 24 90 pix_linNN~ calculates an audio signal out of a video frame with a linear neural network \, which can be trained.; #X text 24 124 The network has one neuron per audio sample: this neuron has three inputs (a RGB-signal) \, a weight vector for each of the inputs \, a bias value and a linear output function.; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 2 0 23 0; #X connect 3 0 0 0; #X connect 4 0 9 0; #X connect 5 0 6 0; #X connect 6 0 2 0; #X connect 7 0 6 1; #X connect 8 0 2 0; #X connect 11 0 2 0; #X connect 11 1 20 0; #X connect 12 0 13 0; #X connect 13 0 11 0; #X connect 14 0 12 0; #X connect 16 0 11 0; #X connect 17 0 5 0; #X connect 23 0 22 0; #X connect 23 0 22 1; #X connect 24 0 23 1; #X connect 25 0 24 0;