aboutsummaryrefslogtreecommitdiff
path: root/adaptive/examples/05.tracking.pd
diff options
context:
space:
mode:
Diffstat (limited to 'adaptive/examples/05.tracking.pd')
-rwxr-xr-xadaptive/examples/05.tracking.pd791
1 files changed, 791 insertions, 0 deletions
diff --git a/adaptive/examples/05.tracking.pd b/adaptive/examples/05.tracking.pd
new file mode 100755
index 0000000..0713c26
--- /dev/null
+++ b/adaptive/examples/05.tracking.pd
@@ -0,0 +1,791 @@
+#N canvas 320 114 944 684 10;
+#N canvas 10 567 727 354 unknown_system~ 0;
+#X obj 26 26 inlet~;
+#X obj 24 323 outlet~;
+#X text 229 33 y[n] = ramp*x[0] + x[-1] + ramp*x[-2] + x[-3] + ramp*x[-4]
++ x[-5] + ramp*x[-6] + x[-7] + ramp*x[-7];
+#X text 228 74 and ramp decreases linearly from 1 to -1;
+#X obj 25 238 *~;
+#X obj 41 213 r~ ramp;
+#X obj 61 188 z~ 1;
+#X obj 106 188 z~ 2;
+#X obj 105 237 *~;
+#X obj 121 212 r~ ramp;
+#X obj 189 236 *~;
+#X obj 205 211 r~ ramp;
+#X obj 145 187 z~ 3;
+#X obj 190 187 z~ 4;
+#X obj 276 236 *~;
+#X obj 292 211 r~ ramp;
+#X obj 361 236 *~;
+#X obj 377 211 r~ ramp;
+#X obj 232 187 z~ 5;
+#X obj 277 187 z~ 6;
+#X obj 317 187 z~ 7;
+#X obj 362 187 z~ 8;
+#N canvas 0 0 411 300 ramp 0;
+#X obj 21 266 outlet~;
+#X obj 22 195 line~;
+#X obj 22 95 t b b;
+#X msg 52 118 1;
+#X floatatom 134 157 8 0 0 0 - - -;
+#X text 198 158 2000 samples in ms;
+#X obj 22 35 inlet;
+#X obj 199 223 snapshot~;
+#X floatatom 202 251 5 0 0 0 - - -;
+#X obj 206 201 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 125 55 r length;
+#X obj 125 78 f 2000;
+#X obj 175 102 samplerate~;
+#X obj 175 80 loadbang;
+#X obj 125 124 / 44.1;
+#X obj 175 123 / 1000;
+#X obj 22 164 pack -1 45;
+#X connect 1 0 0 0;
+#X connect 1 0 7 0;
+#X connect 2 0 16 0;
+#X connect 2 1 3 0;
+#X connect 3 0 1 0;
+#X connect 6 0 2 0;
+#X connect 7 0 8 0;
+#X connect 9 0 7 0;
+#X connect 10 0 11 0;
+#X connect 11 0 14 0;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 14 0 4 0;
+#X connect 14 0 16 1;
+#X connect 15 0 14 1;
+#X connect 16 0 1 0;
+#X restore 505 210 pd ramp;
+#X obj 505 231 s~ ramp;
+#X obj 505 187 r start_ramp;
+#X obj 567 279 snapshot~;
+#X msg 567 232 1;
+#X obj 568 211 loadbang;
+#X obj 567 303 s h_even;
+#X obj 643 304 s h_odd;
+#X msg 643 281 1;
+#X obj 567 256 metro 100;
+#X connect 0 0 4 0;
+#X connect 0 0 6 0;
+#X connect 0 0 7 0;
+#X connect 0 0 12 0;
+#X connect 0 0 13 0;
+#X connect 0 0 18 0;
+#X connect 0 0 19 0;
+#X connect 0 0 20 0;
+#X connect 0 0 21 0;
+#X connect 4 0 1 0;
+#X connect 5 0 4 1;
+#X connect 6 0 1 0;
+#X connect 7 0 8 0;
+#X connect 8 0 1 0;
+#X connect 9 0 8 1;
+#X connect 10 0 1 0;
+#X connect 11 0 10 1;
+#X connect 12 0 1 0;
+#X connect 13 0 10 0;
+#X connect 14 0 1 0;
+#X connect 15 0 14 1;
+#X connect 16 0 1 0;
+#X connect 17 0 16 1;
+#X connect 18 0 1 0;
+#X connect 19 0 14 0;
+#X connect 20 0 1 0;
+#X connect 21 0 16 0;
+#X connect 22 0 23 0;
+#X connect 22 0 25 0;
+#X connect 24 0 22 0;
+#X connect 25 0 28 0;
+#X connect 26 0 31 0;
+#X connect 27 0 26 0;
+#X connect 30 0 29 0;
+#X connect 31 0 25 0;
+#X connect 31 0 30 0;
+#X restore 172 197 pd unknown_system~;
+#X obj 99 355 tgl 20 0 audio_io empty empty 0 -6 0 8 -262144 -1 -1
+1 1;
+#X text 124 357 <- Audio IO;
+#N canvas 660 263 433 287 adaptive_filter~ 0;
+#X obj 37 35 inlet~;
+#X text 22 15 input signal;
+#X obj 143 35 inlet~;
+#X text 122 15 desired signal;
+#X obj 37 255 outlet~;
+#X msg 249 63 adaptation 1;
+#X obj 249 42 loadbang;
+#X obj 249 94 r mu;
+#X msg 249 135 mu \$1;
+#X obj 37 149 lms2~ 9 1e-04;
+#X obj 313 114 r read;
+#N canvas 0 0 450 300 read_coef 0;
+#X obj 18 23 inlet;
+#X msg 32 106 read coef.dat;
+#X obj 18 189 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 313 136 pd read_coef;
+#X obj 249 114 / 1000;
+#N canvas 732 262 450 300 calc_misalignment 0;
+#X obj 12 14 inlet;
+#X obj 12 45 unpack f f f f f f f f f;
+#X obj 12 76 sig~;
+#X obj 45 76 sig~;
+#X obj 78 76 sig~;
+#X obj 111 76 sig~;
+#X obj 144 76 sig~;
+#X obj 177 76 sig~;
+#X obj 209 76 sig~;
+#X obj 242 76 sig~;
+#X obj 275 76 sig~;
+#X obj 13 104 r~ ramp;
+#X obj 13 129 -~;
+#X obj 44 129 -~ 1;
+#X obj 79 105 r~ ramp;
+#X obj 79 130 -~;
+#X obj 110 130 -~ 1;
+#X obj 145 104 r~ ramp;
+#X obj 145 129 -~;
+#X obj 176 129 -~ 1;
+#X obj 210 104 r~ ramp;
+#X obj 210 129 -~;
+#X obj 241 129 -~ 1;
+#X obj 275 105 r~ ramp;
+#X obj 275 130 -~;
+#X obj 146 205 /~ 9;
+#X obj 146 227 s~ misalignment;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 1 1 3 0;
+#X connect 1 2 4 0;
+#X connect 1 3 5 0;
+#X connect 1 4 6 0;
+#X connect 1 5 7 0;
+#X connect 1 6 8 0;
+#X connect 1 7 9 0;
+#X connect 1 8 10 0;
+#X connect 2 0 12 0;
+#X connect 3 0 13 0;
+#X connect 4 0 15 0;
+#X connect 5 0 16 0;
+#X connect 6 0 18 0;
+#X connect 7 0 19 0;
+#X connect 8 0 21 0;
+#X connect 9 0 22 0;
+#X connect 10 0 24 0;
+#X connect 11 0 12 1;
+#X connect 12 0 25 0;
+#X connect 13 0 25 0;
+#X connect 14 0 15 1;
+#X connect 15 0 25 0;
+#X connect 16 0 25 0;
+#X connect 17 0 18 1;
+#X connect 18 0 25 0;
+#X connect 19 0 25 0;
+#X connect 20 0 21 1;
+#X connect 21 0 25 0;
+#X connect 22 0 25 0;
+#X connect 23 0 24 1;
+#X connect 24 0 25 0;
+#X connect 25 0 26 0;
+#X restore 249 185 pd calc_misalignment;
+#N canvas 0 0 450 300 send_coef 0;
+#X obj 25 68 unpack f f f f f f f f f;
+#X obj 25 261 s _0;
+#X obj 57 261 s _1;
+#X obj 89 261 s _2;
+#X obj 121 261 s _3;
+#X obj 153 261 s _4;
+#X obj 185 261 s _5;
+#X obj 217 261 s _6;
+#X obj 249 261 s _7;
+#X obj 281 261 s _8;
+#X obj 25 42 inlet;
+#X obj 25 102 speedlim 100;
+#X obj 45 130 speedlim 100;
+#X obj 65 154 speedlim 100;
+#X obj 86 180 speedlim 100;
+#X obj 116 103 speedlim 100;
+#X obj 136 131 speedlim 100;
+#X obj 156 155 speedlim 100;
+#X obj 177 181 speedlim 100;
+#X obj 270 181 speedlim 100;
+#X connect 0 0 11 0;
+#X connect 0 1 12 0;
+#X connect 0 2 13 0;
+#X connect 0 3 14 0;
+#X connect 0 4 15 0;
+#X connect 0 5 16 0;
+#X connect 0 6 17 0;
+#X connect 0 7 18 0;
+#X connect 0 8 19 0;
+#X connect 10 0 0 0;
+#X connect 11 0 1 0;
+#X connect 12 0 2 0;
+#X connect 13 0 3 0;
+#X connect 14 0 4 0;
+#X connect 15 0 5 0;
+#X connect 16 0 6 0;
+#X connect 17 0 7 0;
+#X connect 18 0 8 0;
+#X connect 19 0 9 0;
+#X restore 123 231 pd send_coef;
+#X connect 0 0 9 0;
+#X connect 2 0 9 1;
+#X connect 5 0 9 0;
+#X connect 6 0 5 0;
+#X connect 7 0 12 0;
+#X connect 8 0 9 0;
+#X connect 9 0 4 0;
+#X connect 9 2 13 0;
+#X connect 9 2 14 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 0;
+#X connect 12 0 8 0;
+#X restore 43 297 pd adaptive_filter~;
+#X text 51 201 x[n];
+#X text 183 219 d[n];
+#X text 33 316 y[n];
+#X floatatom 406 89 5 0 0 0 mu: mur mu;
+#N canvas 215 124 811 210 init 0;
+#X obj 321 45 loadbang;
+#X obj 330 124 s mur;
+#X msg 625 114 \; pd dsp \$1;
+#X obj 625 89 r audio_io;
+#X obj 395 127 s noiser;
+#X obj 463 130 s amp_in_r;
+#X msg 463 108 100;
+#X obj 175 146 s lengthr;
+#X msg 176 125 2000;
+#X msg 394 104 100;
+#X msg 329 100 1;
+#X connect 0 0 10 0;
+#X connect 0 0 9 0;
+#X connect 0 0 6 0;
+#X connect 0 0 8 0;
+#X connect 3 0 2 0;
+#X connect 6 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 4 0;
+#X connect 10 0 1 0;
+#X restore 845 651 pd init;
+#N canvas 0 145 485 394 PROBLEM_DESCRIPTION 0;
+#X text 29 288 unknown system:;
+#X text 201 29 TRACKING;
+#X text 30 118 The number of coefficients N=9 for the unknown and the
+adaptive system.;
+#X text 30 156 For an observation interval of 2000 samples \, the coefficients
+ot the unknown system do not remain constant: all even-indexed coefficients
+(h[0] \, h[2] \, ...) decrease linearly from the initial 1 to a final
+-1 \, all odd-indexed coefficients are constant 1;
+#X text 30 232 At the beginning the adaptive system has already found
+the unknown system (so all coefficients are 1).;
+#X text 55 308 h(n)= 1 for n=0..8;
+#X text 60 352 N = 9;
+#X text 29 333 number of coefficients for filter and unknown system:
+;
+#X text 32 66 In this example we want to examine the tracking behaviour
+of the LMS-algorithm in a time varying noisy sytem idebtification problem.
+;
+#X restore 34 94 pd PROBLEM_DESCRIPTION;
+#X text 33 73 ReadMe:;
+#N canvas 0 0 320 300 input_signal~ 0;
+#X obj 89 69 noise~;
+#X obj 89 196 *~;
+#X obj 89 255 outlet~;
+#X text 65 43 white signal:;
+#X obj 105 151 r amp_in;
+#X obj 105 174 dbtorms;
+#X obj 219 212 env~;
+#X obj 219 232 dbtorms;
+#X obj 219 254 s in_power;
+#X obj 107 223 s~ in_sig;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 1 0 6 0;
+#X connect 1 0 9 0;
+#X connect 4 0 5 0;
+#X connect 5 0 1 1;
+#X connect 6 0 7 0;
+#X connect 7 0 8 0;
+#X restore 43 170 pd input_signal~;
+#X obj 172 260 +~;
+#N canvas 0 0 450 300 add_noise~ 0;
+#X obj 142 69 noise~;
+#X obj 142 173 *~;
+#X obj 158 111 r noise;
+#X obj 142 251 outlet~;
+#X obj 158 143 dbtorms;
+#X obj 266 191 s~ add-noise;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 1 0 5 0;
+#X connect 2 0 4 0;
+#X connect 4 0 1 1;
+#X restore 224 244 pd add_noise~;
+#X floatatom 769 87 5 0 0 1 dB noiser noise;
+#X floatatom 581 88 5 0 0 1 dB amp_in_r amp_in;
+#N canvas 0 0 450 300 graph3 0;
+#X array MSE 20000 float 0;
+#X coords 0 100 19999 90 400 140 1;
+#X restore 405 254 graph;
+#N canvas 391 507 889 385 visualisation 0;
+#X obj 29 34 r start;
+#X obj 29 295 tabwrite~ MSE;
+#X obj 505 84 t b f;
+#X text 462 23 MSE:;
+#X obj 444 116 +;
+#X obj 617 65 r~ add-noise;
+#X obj 617 109 dbtorms;
+#X obj 617 133 s noise_power;
+#X obj 168 194 r~ add-noise;
+#X obj 56 221 +~;
+#X obj 429 268 loadbang;
+#X obj 444 64 r excess;
+#X obj 505 64 r noise_power;
+#X obj 459 144 s mse;
+#X obj 458 194 s mse_db;
+#X obj 444 169 rmstodb;
+#X obj 617 87 env~ 64;
+#X obj 56 249 env~ 64;
+#X msg 429 302 \; MSE xticks 0 500 5;
+#X obj 29 60 t b b b;
+#X obj 51 121 s start_ramp;
+#X obj 57 162 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 294 24 Excess Error:;
+#X obj 294 192 dbtorms;
+#X obj 309 157 s excess_db;
+#X obj 314 221 s excess;
+#X obj 294 133 env~ 64;
+#X floatatom 365 193 5 0 0 0 - - -;
+#X obj 293 64 r~ misalignment;
+#X obj 311 90 r~ in_sig;
+#X obj 294 111 *~;
+#X msg 552 337 \; MSE ylabel 20600 90 95 100;
+#X msg 563 302 \; MSE xlabel 89 0 5000 10000 15000 20000;
+#X connect 0 0 19 0;
+#X connect 2 0 4 0;
+#X connect 2 1 4 1;
+#X connect 4 0 13 0;
+#X connect 4 0 15 0;
+#X connect 5 0 16 0;
+#X connect 6 0 7 0;
+#X connect 8 0 9 1;
+#X connect 9 0 17 0;
+#X connect 10 0 31 0;
+#X connect 10 0 18 0;
+#X connect 10 0 32 0;
+#X connect 11 0 4 0;
+#X connect 12 0 2 0;
+#X connect 15 0 14 0;
+#X connect 16 0 6 0;
+#X connect 17 0 1 0;
+#X connect 19 0 1 0;
+#X connect 19 0 21 0;
+#X connect 19 1 20 0;
+#X connect 23 0 25 0;
+#X connect 26 0 23 0;
+#X connect 26 0 24 0;
+#X connect 26 0 27 0;
+#X connect 28 0 30 0;
+#X connect 29 0 30 1;
+#X connect 30 0 26 0;
+#X connect 30 0 9 0;
+#X restore 727 651 pd visualisation;
+#X text 385 105 (step-size);
+#X text 502 88 in-signal:;
+#X floatatom 581 105 6 0 0 1 rms in_power -;
+#X floatatom 769 104 6 0 0 1 rms noise_power -;
+#X text 693 87 add-noise:;
+#X text 468 216 MSE:;
+#X floatatom 508 215 5 0 0 1 dB mse_db -;
+#X floatatom 585 215 7 0 0 1 rms mse -;
+#X text 566 214 ->;
+#X text 787 228 MSE [dB];
+#X text 827 399 [samples];
+#X text 30 23 TRACKING - TIME VARYING NOISY SYSTEM IDENTIFICATION;
+#N canvas 0 0 450 110 NEEDED_EXTERNALS 0;
+#X text 17 31 For this patch you will need the zexy external by IOhannes
+Zmoelnig and the iemlib by Thomas Musil.;
+#X text 18 70 You can download them here: http://pd.iem.at;
+#X restore 793 7 pd NEEDED_EXTERNALS;
+#X text 444 90 e-03;
+#X text 536 104 power:;
+#X text 724 104 power:;
+#X floatatom 508 155 8 0 0 0 - lengthr length;
+#X text 421 154 ramp-length:;
+#X text 568 155 samples;
+#X text 407 198 Excess Error:;
+#X floatatom 508 198 5 0 0 1 dB excess_db -;
+#X floatatom 585 198 7 0 0 1 rms excess -;
+#X text 566 197 ->;
+#X obj 99 399 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -262144 -1
+-1 2;
+#X text 116 398 too small mu;
+#X text 117 414 too big mu;
+#X text 117 428 proper step size;
+#N canvas 500 68 462 300 OBSERVATIONS 0;
+#X text 20 19 OBSERVATIONS;
+#X text 20 94 1.study:;
+#X text 42 124 too big mu: unstable;
+#X text 20 63 See the effect of different step sizes mu.;
+#X text 43 135 proper mu: adaptation works;
+#X text 19 182 Now we try to find the optimal step size mu.;
+#X text 19 207 2.study: candidate step sizes;
+#X text 42 112 too small mu: adaptation not possible;
+#X text 43 229 the optimal mu is something about mu=0.004;
+#X text 43 244 for mu < 0.004 the adaptation needs more time;
+#X text 43 258 for mu > 0.004 the coefficients are very unprecise;
+#X restore 34 116 pd OBSERVATIONS;
+#N canvas 0 0 450 300 graph1 0;
+#X array unknown 10 float 2;
+#X coords 0 1.2 9 -1.2 200 140 1;
+#X restore 400 474 graph;
+#N canvas 0 0 450 300 graph1 0;
+#X array adaptive 10 float 2;
+#X coords 0 1.2 9 -1.2 200 140 1;
+#X restore 691 472 graph;
+#X text 351 451 impulse response unknown system:;
+#X text 635 450 impulse response adaptive system:;
+#N canvas 37 0 1161 468 draw_tables 0;
+#X obj 37 20 r _0;
+#X obj 37 85 tabwrite adaptive;
+#X msg 151 61 1;
+#X obj 37 44 t f b;
+#X obj 188 86 tabwrite adaptive;
+#X obj 188 45 t f b;
+#X obj 341 86 tabwrite adaptive;
+#X obj 341 45 t f b;
+#X obj 490 87 tabwrite adaptive;
+#X obj 490 46 t f b;
+#X obj 643 89 tabwrite adaptive;
+#X obj 643 48 t f b;
+#X msg 302 62 2;
+#X msg 455 62 3;
+#X msg 604 63 4;
+#X msg 757 65 5;
+#X obj 188 21 r _1;
+#X obj 341 21 r _2;
+#X obj 490 22 r _3;
+#X obj 643 24 r _4;
+#X obj 37 179 tabwrite adaptive;
+#X obj 37 138 t f b;
+#X obj 190 179 tabwrite adaptive;
+#X obj 190 138 t f b;
+#X obj 339 180 tabwrite adaptive;
+#X obj 339 139 t f b;
+#X obj 492 182 tabwrite adaptive;
+#X obj 492 141 t f b;
+#X msg 151 155 6;
+#X msg 304 155 7;
+#X msg 453 156 8;
+#X msg 606 158 9;
+#X obj 37 114 r _5;
+#X obj 190 114 r _6;
+#X obj 339 115 r _7;
+#X obj 492 117 r _8;
+#X obj 36 252 r h_even;
+#X obj 187 252 r h_odd;
+#X msg 150 290 1;
+#X obj 36 273 t f b;
+#X obj 187 274 t f b;
+#X obj 340 274 t f b;
+#X obj 489 275 t f b;
+#X obj 642 277 t f b;
+#X msg 301 291 2;
+#X msg 454 291 3;
+#X msg 603 292 4;
+#X msg 756 294 5;
+#X obj 36 367 t f b;
+#X obj 189 367 t f b;
+#X obj 338 368 t f b;
+#X obj 491 370 t f b;
+#X msg 150 384 6;
+#X msg 303 384 7;
+#X msg 452 385 8;
+#X msg 605 387 9;
+#X obj 36 314 tabwrite unknown;
+#X obj 187 315 tabwrite unknown;
+#X obj 340 315 tabwrite unknown;
+#X obj 489 316 tabwrite unknown;
+#X obj 642 318 tabwrite unknown;
+#X obj 36 408 tabwrite unknown;
+#X obj 189 408 tabwrite unknown;
+#X obj 338 409 tabwrite unknown;
+#X obj 491 411 tabwrite unknown;
+#X obj 340 253 r h_even;
+#X obj 642 255 r h_even;
+#X obj 189 346 r h_even;
+#X obj 491 349 r h_even;
+#X obj 489 254 r h_odd;
+#X obj 36 345 r h_odd;
+#X obj 338 347 r h_odd;
+#X obj 861 114 loadbang;
+#X msg 861 142 \; adaptive yticks 0 0.1 5;
+#X msg 861 181 \; adaptive ylabel 9.7 -1 -0.5 0 0.5 1;
+#X msg 860 217 \; unknown yticks 0 0.1 5;
+#X msg 860 256 \; unknown ylabel 9.7 -1 -0.5 0 0.5 1;
+#X connect 0 0 3 0;
+#X connect 2 0 1 1;
+#X connect 3 0 1 0;
+#X connect 3 1 2 0;
+#X connect 5 0 4 0;
+#X connect 5 1 12 0;
+#X connect 7 0 6 0;
+#X connect 7 1 13 0;
+#X connect 9 0 8 0;
+#X connect 9 1 14 0;
+#X connect 11 0 10 0;
+#X connect 11 1 15 0;
+#X connect 12 0 4 1;
+#X connect 13 0 6 1;
+#X connect 14 0 8 1;
+#X connect 15 0 10 1;
+#X connect 16 0 5 0;
+#X connect 17 0 7 0;
+#X connect 18 0 9 0;
+#X connect 19 0 11 0;
+#X connect 21 0 20 0;
+#X connect 21 1 28 0;
+#X connect 23 0 22 0;
+#X connect 23 1 29 0;
+#X connect 25 0 24 0;
+#X connect 25 1 30 0;
+#X connect 27 0 26 0;
+#X connect 27 1 31 0;
+#X connect 28 0 20 1;
+#X connect 29 0 22 1;
+#X connect 30 0 24 1;
+#X connect 31 0 26 1;
+#X connect 32 0 21 0;
+#X connect 33 0 23 0;
+#X connect 34 0 25 0;
+#X connect 35 0 27 0;
+#X connect 36 0 39 0;
+#X connect 37 0 40 0;
+#X connect 38 0 56 1;
+#X connect 39 0 56 0;
+#X connect 39 1 38 0;
+#X connect 40 0 57 0;
+#X connect 40 1 44 0;
+#X connect 41 0 58 0;
+#X connect 41 1 45 0;
+#X connect 42 0 59 0;
+#X connect 42 1 46 0;
+#X connect 43 0 60 0;
+#X connect 43 1 47 0;
+#X connect 44 0 57 1;
+#X connect 45 0 58 1;
+#X connect 46 0 59 1;
+#X connect 47 0 60 1;
+#X connect 48 0 61 0;
+#X connect 48 1 52 0;
+#X connect 49 0 62 0;
+#X connect 49 1 53 0;
+#X connect 50 0 63 0;
+#X connect 50 1 54 0;
+#X connect 51 0 64 0;
+#X connect 51 1 55 0;
+#X connect 52 0 61 1;
+#X connect 53 0 62 1;
+#X connect 54 0 63 1;
+#X connect 55 0 64 1;
+#X connect 65 0 41 0;
+#X connect 66 0 43 0;
+#X connect 67 0 49 0;
+#X connect 68 0 51 0;
+#X connect 69 0 42 0;
+#X connect 70 0 48 0;
+#X connect 71 0 50 0;
+#X connect 72 0 73 0;
+#X connect 72 0 74 0;
+#X connect 72 0 75 0;
+#X connect 72 0 76 0;
+#X restore 623 651 pd draw_tables;
+#N canvas 40 12 435 335 mu-study-1 0;
+#X obj 24 21 inlet;
+#X obj 79 128 s mur;
+#X obj 138 128 s noiser;
+#X obj 200 128 s amp_in_r;
+#X obj 24 126 s start;
+#X msg 24 103 bang;
+#X msg 200 105 100;
+#X obj 78 202 s mur;
+#X obj 120 203 s noiser;
+#X obj 181 203 s amp_in_r;
+#X obj 23 201 s start;
+#X msg 23 178 bang;
+#X obj 77 279 s mur;
+#X obj 119 280 s noiser;
+#X obj 180 280 s amp_in_r;
+#X obj 22 278 s start;
+#X msg 22 255 bang;
+#X obj 24 50 sel 0 1 2;
+#X msg 137 105 100;
+#X msg 119 180 100;
+#X msg 181 180 100;
+#X msg 180 257 100;
+#X msg 120 257 100;
+#X msg 78 179 1000;
+#X msg 77 256 1;
+#X obj 275 128 s read;
+#X obj 257 203 s read;
+#X obj 256 280 s read;
+#X obj 24 78 t b b b;
+#X obj 23 153 t b b b;
+#X obj 22 230 t b b b;
+#X msg 79 105 1e-05;
+#X connect 0 0 17 0;
+#X connect 5 0 4 0;
+#X connect 6 0 3 0;
+#X connect 11 0 10 0;
+#X connect 16 0 15 0;
+#X connect 17 0 28 0;
+#X connect 17 1 29 0;
+#X connect 17 2 30 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 0;
+#X connect 20 0 9 0;
+#X connect 21 0 14 0;
+#X connect 22 0 13 0;
+#X connect 23 0 7 0;
+#X connect 24 0 12 0;
+#X connect 28 0 5 0;
+#X connect 28 1 31 0;
+#X connect 28 1 18 0;
+#X connect 28 1 6 0;
+#X connect 28 2 25 0;
+#X connect 29 0 11 0;
+#X connect 29 1 23 0;
+#X connect 29 1 19 0;
+#X connect 29 1 20 0;
+#X connect 29 2 26 0;
+#X connect 30 0 16 0;
+#X connect 30 1 24 0;
+#X connect 30 1 22 0;
+#X connect 30 1 21 0;
+#X connect 30 2 27 0;
+#X connect 31 0 1 0;
+#X restore 99 446 pd mu-study-1;
+#N canvas 56 35 192 821 mu-study-2 0;
+#X obj 24 21 inlet;
+#X obj 79 127 s mur;
+#X obj 24 126 s start;
+#X msg 24 103 bang;
+#X obj 78 202 s mur;
+#X obj 23 201 s start;
+#X msg 23 178 bang;
+#X obj 77 279 s mur;
+#X obj 22 278 s start;
+#X msg 22 255 bang;
+#X obj 24 50 sel 0 1 2 3 4 5 6 7;
+#X obj 77 352 s mur;
+#X obj 22 351 s start;
+#X msg 22 328 bang;
+#X obj 76 427 s mur;
+#X obj 21 426 s start;
+#X msg 21 403 bang;
+#X obj 75 504 s mur;
+#X obj 20 503 s start;
+#X msg 20 480 bang;
+#X obj 75 580 s mur;
+#X obj 20 579 s start;
+#X msg 20 556 bang;
+#X obj 74 657 s mur;
+#X obj 19 656 s start;
+#X msg 19 633 bang;
+#X msg 75 557 1;
+#X obj 24 78 t b b b;
+#X obj 23 153 t b b b;
+#X obj 22 230 t b b b;
+#X obj 22 303 t b b b;
+#X obj 21 378 t b b b;
+#X obj 20 455 t b b b;
+#X obj 20 531 t b b b;
+#X obj 19 608 t b b b;
+#X obj 119 127 s read;
+#X obj 118 202 s read;
+#X obj 117 279 s read;
+#X obj 117 352 s read;
+#X obj 116 427 s read;
+#X obj 115 504 s read;
+#X obj 115 580 s read;
+#X obj 114 657 s read;
+#X msg 79 104 100;
+#X msg 78 179 10;
+#X msg 74 634 0.1;
+#X msg 75 481 2;
+#X msg 76 405 4;
+#X msg 77 329 6;
+#X msg 77 256 8;
+#X connect 0 0 10 0;
+#X connect 3 0 2 0;
+#X connect 6 0 5 0;
+#X connect 9 0 8 0;
+#X connect 10 0 27 0;
+#X connect 10 1 28 0;
+#X connect 10 2 29 0;
+#X connect 10 3 30 0;
+#X connect 10 4 31 0;
+#X connect 10 5 32 0;
+#X connect 10 6 33 0;
+#X connect 10 7 34 0;
+#X connect 13 0 12 0;
+#X connect 16 0 15 0;
+#X connect 19 0 18 0;
+#X connect 22 0 21 0;
+#X connect 25 0 24 0;
+#X connect 26 0 20 0;
+#X connect 27 0 3 0;
+#X connect 27 1 43 0;
+#X connect 27 2 35 0;
+#X connect 28 0 6 0;
+#X connect 28 1 44 0;
+#X connect 28 2 36 0;
+#X connect 29 0 9 0;
+#X connect 29 1 49 0;
+#X connect 29 2 37 0;
+#X connect 30 0 13 0;
+#X connect 30 1 48 0;
+#X connect 30 2 38 0;
+#X connect 31 0 16 0;
+#X connect 31 1 47 0;
+#X connect 31 2 39 0;
+#X connect 32 0 19 0;
+#X connect 32 1 46 0;
+#X connect 32 2 40 0;
+#X connect 33 0 22 0;
+#X connect 33 1 26 0;
+#X connect 33 2 41 0;
+#X connect 34 0 25 0;
+#X connect 34 1 45 0;
+#X connect 34 2 42 0;
+#X connect 43 0 1 0;
+#X connect 44 0 4 0;
+#X connect 45 0 23 0;
+#X connect 46 0 17 0;
+#X connect 47 0 14 0;
+#X connect 48 0 11 0;
+#X connect 49 0 7 0;
+#X restore 99 632 pd mu-study-2;
+#X obj 99 509 vradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1
+-1 7;
+#X text 97 488 candidate step sizes:;
+#X text 117 508 mu=0.1;
+#X text 117 523 mu=0.01;
+#X text 117 538 mu=0.008;
+#X text 117 553 mu=0.006;
+#X text 117 568 mu=0.004;
+#X text 117 583 mu=0.002;
+#X text 117 598 mu=0.001;
+#X text 117 614 mu=0.0001;
+#X connect 0 0 12 0;
+#X connect 11 0 0 0;
+#X connect 11 0 3 0;
+#X connect 12 0 3 1;
+#X connect 13 0 12 1;
+#X connect 41 0 51 0;
+#X connect 53 0 52 0;