This repository has been archived by the owner on Jun 17, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
audio-features.pd
801 lines (801 loc) · 22.2 KB
/
audio-features.pd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
#N canvas 227 22 964 772 12;
#X obj 558 448 hsl 128 15 40 100 0 1 master-volume empty Master-volume
-2 -8 0 12 -262144 -1 -1 9900 1;
#X obj 80 545 hsl 768 30 0 -1 0 0 location-set-set location-set-set-properties
Scrub-bar -2 -8 0 12 -262144 -1 -1 0 1;
#N canvas 0 22 450 300 (subpatch) 0;
#X array mag-spec-graph 1024 float 0;
#X coords 0 0.25 1023 0 200 140 1;
#X restore 39 42 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X array barkspec-graph 95 float 0;
#X coords 0 1 94 0 200 140 1;
#X restore 269 42 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X array bfcc-graph 95 float 0;
#X coords 0 1 94 -1 200 140 1;
#X restore 499 42 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X array cepstrum-graph 60 float 0;
#X coords 0 1 59 -0.6 200 140 1;
#X restore 729 42 graph;
#X obj 39 255 nbx 5 32 -1e+37 1e+37 0 0 empty brightness-graph empty
0 -8 0 32 -262144 -1 -1 0 256;
#X text 37 235 Brightness;
#X obj 269 255 nbx 5 32 -1e+37 1e+37 0 0 empty centroid-graph empty
0 -8 0 32 -262144 -1 -1 0 256;
#X obj 499 255 nbx 5 32 -1e+37 1e+37 0 0 empty flatness-graph empty
0 -8 0 32 -262144 -1 -1 1 256;
#X obj 729 255 nbx 5 32 -1e+37 1e+37 0 0 empty flux-graph empty 0 -8
0 32 -262144 -1 -1 0 256;
#X text 267 235 Centroid;
#X text 497 235 Flatness;
#X text 727 235 Flux;
#X obj 39 345 nbx 5 32 -1e+37 1e+37 0 0 empty kurtosis-graph empty
0 -8 0 32 -262144 -1 -1 0 256;
#X obj 269 345 nbx 5 32 -1e+37 1e+37 0 0 empty rolloff-graph empty
0 -8 0 32 -262144 -1 -1 22050 256;
#X obj 499 345 nbx 5 32 -1e+37 1e+37 0 0 empty skewness-graph empty
0 -8 0 32 -262144 -1 -1 0 256;
#X obj 729 345 nbx 5 32 -1e+37 1e+37 0 0 empty spread-graph empty 0
-8 0 32 -262144 -1 -1 0 256;
#X text 37 325 Kurtosis;
#X text 267 325 Rolloff;
#X text 497 325 Skewness;
#X text 727 325 Spread;
#X obj 39 435 nbx 5 32 -1e+37 1e+37 0 0 empty zero-crossing-graph empty
0 -8 0 32 -262144 -1 -1 0 256;
#X text 37 415 Zero-crossing;
#X obj 555 497 nbx 10 32 0 1e+37 0 0 location-set location-set-set
empty 0 -8 0 32 -262144 -1 -1 0 256;
#X text 552 476 Position (milliseconds);
#N canvas 0 22 450 300 (subpatch) 0;
#X array waveform 2048 float 0;
#X coords 0 1 2048 -1 400 100 1;
#X restore 364 619 graph;
#N canvas 318 185 343 380 dsp 0;
#N canvas 199 40 821 693 fft-analysis 0;
#X obj 51 477 *~;
#X obj 18 477 *~;
#X obj 18 499 -~;
#X obj 167 475 *~;
#X obj 136 475 *~;
#X obj 136 497 +~;
#X obj 109 193 *~;
#X obj 78 193 *~;
#X obj 50 193 *~;
#X obj 19 193 *~;
#X obj 19 218 +~;
#X obj 127 379 *~;
#X obj 20 622 *~;
#X obj 238 430 rfft~;
#X obj 108 161 rfft~;
#X obj 19 564 rifft~;
#X obj 21 646 outlet~;
#X obj 97 379 *~;
#X obj 97 401 +~;
#X obj 124 218 -~;
#X obj 18 431 *~;
#X obj 51 432 *~;
#X obj 127 622 r window-size;
#X obj 426 595 r window-size;
#X obj 426 644 block~;
#X obj 19 349 +~ 1e-15;
#X obj 19 598 *~;
#X obj 52 598 tabreceive~ \$0-hann;
#X obj 127 643 expr 2/(3*$f1);
#X obj 591 563 loadbang;
#X msg 426 619 set \$1 4;
#X obj 97 425 q8_rsqrt~;
#N canvas 148 22 1006 799 read-windows 0;
#X obj 18 693 *~;
#X obj 364 448 r window-size;
#X obj 156 300 f;
#X obj 102 91 r window-size;
#X obj 102 139 /;
#X obj 195 695 *~;
#X obj 156 255 bang~;
#X obj 17 551 line~;
#X obj 102 164 * 1000;
#X obj 288 224 r speed;
#X obj 178 276 r location;
#X obj 198 302 +;
#X obj 288 272 *;
#X obj 183 470 +;
#X obj 143 446 t f f;
#X msg 17 523 \$1 \, \$2 \$3;
#X obj 17 496 pack 0 0 0;
#X obj 178 371 / 1000;
#X obj 156 394 *;
#X text 188 394 reading location (samples);
#X obj 51 597 / 4;
#X obj 288 245 * 0.01;
#X floatatom 364 498 7 0 0 0 - - -;
#X obj 364 474 *;
#X obj 502 347 r transpo;
#X obj 502 369 * 0.01;
#X obj 504 390 + 69;
#X obj 505 411 mtof;
#X obj 505 433 / 440;
#X obj 399 474 t b f;
#X obj 19 719 outlet~;
#X obj 195 720 outlet~;
#X obj 218 664 tabreceive~ \$0-hann;
#X obj 803 386 r location;
#X msg 803 409 0;
#X obj 803 432 s speed;
#X obj 768 508 r speed;
#X msg 768 532 set \$1;
#X obj 768 557 s speed-set;
#X text 432 498 stretched window size (samples);
#X obj 877 507 r transpo;
#X msg 877 533 set \$1;
#X obj 877 558 s transpo-set;
#X obj 808 94 r location;
#X msg 826 278 set \$1;
#X obj 808 140 t b f;
#X obj 826 257 f;
#X obj 754 171 int;
#X obj 754 203 sel 0;
#X msg 813 174 1;
#X msg 813 197 0;
#X obj 754 228 del 300;
#X obj 17 637 tabread4~ \$0-sample;
#X obj 194 637 tabread4~ \$0-sample;
#X obj 178 347 r \$0-insamprate;
#X obj 528 586 r rewind;
#X msg 528 744 \; location \$1;
#X floatatom 111 187 5 0 0 0 - - -;
#X obj 102 115 t f b;
#X obj 142 139 samplerate~;
#X obj 102 208 / 4;
#X obj 233 306 s see-loc;
#X obj 817 116 r see-loc;
#X obj 193 420 / 2;
#X obj 156 420 -;
#X text 229 417 back up 1/2 window;
#X obj 16 597 -~;
#X text 43 6 Read two windows out of the recorded sample \, one 1/4
ahead of the other. The mid point of the front window is specified
by "location". If "speed" is nonzero \, "location" automatically precesses.
;
#X obj 528 720 * -0.5;
#X text 91 587 "back" window 1/4 cycle behind "front" one;
#X text 137 205 computation period (msec) for overlap of 4;
#X text 164 186 msec in a window;
#X obj 528 666 /;
#X obj 528 691 * 1000;
#X obj 528 642 t f b;
#X obj 568 666 samplerate~;
#X obj 528 619 f;
#X msg 845 711 \; rewind bang \; speed \$1;
#X obj 845 684 r auto;
#X obj 730 685 r no-detune;
#X msg 730 707 \; detune 0;
#X text 321 280 loop to precess the location according;
#X text 320 296 to the "speed" parameter.;
#X text 611 31 if location changes \, update number box;
#X text 610 50 in main window via "location-set" \, but;
#X text 613 69 taking care to limit frequency of updates.;
#X text 756 462 reflect control changes;
#X text 756 479 in main window.;
#X text 754 344 setting location by hand;
#X text 752 362 sets speed to zero.;
#X text 760 653 misc controls;
#X text 496 527 "rewind" control takes us;
#X text 499 545 to a location depending on;
#X text 499 564 stretched window size.;
#X obj 593 457 t b f;
#X obj 617 395 samplerate~;
#X obj 593 348 r \$0-insamprate;
#X obj 593 418 /;
#X obj 505 455 * 1;
#X text 494 312 desired transposition and sample;
#X text 494 329 rate correction for soundfile;
#X obj 593 370 t f b;
#X obj 143 525 s table-read-point;
#X obj 143 501 change;
#X obj 854 308 s location-set;
#X connect 0 0 30 0;
#X connect 1 0 23 0;
#X connect 2 0 11 0;
#X connect 2 0 18 0;
#X connect 3 0 58 0;
#X connect 4 0 8 0;
#X connect 5 0 31 0;
#X connect 6 0 2 0;
#X connect 7 0 66 0;
#X connect 7 0 53 0;
#X connect 8 0 57 0;
#X connect 8 0 60 0;
#X connect 9 0 21 0;
#X connect 10 0 2 1;
#X connect 11 0 2 1;
#X connect 11 0 61 0;
#X connect 12 0 11 1;
#X connect 13 0 16 1;
#X connect 14 0 16 0;
#X connect 14 0 103 0;
#X connect 14 1 13 0;
#X connect 15 0 7 0;
#X connect 16 0 15 0;
#X connect 17 0 18 1;
#X connect 18 0 64 0;
#X connect 20 0 66 1;
#X connect 21 0 12 0;
#X connect 22 0 20 0;
#X connect 22 0 13 1;
#X connect 22 0 63 0;
#X connect 22 0 76 1;
#X connect 23 0 22 0;
#X connect 24 0 25 0;
#X connect 25 0 26 0;
#X connect 26 0 27 0;
#X connect 27 0 28 0;
#X connect 28 0 98 0;
#X connect 29 0 23 0;
#X connect 29 1 23 1;
#X connect 32 0 5 1;
#X connect 32 0 0 1;
#X connect 33 0 34 0;
#X connect 34 0 35 0;
#X connect 36 0 37 0;
#X connect 37 0 38 0;
#X connect 40 0 41 0;
#X connect 41 0 42 0;
#X connect 43 0 45 0;
#X connect 45 0 47 0;
#X connect 45 1 46 1;
#X connect 46 0 44 0;
#X connect 47 0 48 0;
#X connect 48 0 49 0;
#X connect 48 0 51 0;
#X connect 49 0 47 1;
#X connect 50 0 47 1;
#X connect 51 0 50 0;
#X connect 51 0 46 0;
#X connect 52 0 0 0;
#X connect 53 0 5 0;
#X connect 54 0 17 0;
#X connect 55 0 76 0;
#X connect 58 0 4 0;
#X connect 58 1 59 0;
#X connect 59 0 4 1;
#X connect 60 0 16 2;
#X connect 60 0 12 1;
#X connect 62 0 45 0;
#X connect 63 0 64 1;
#X connect 64 0 14 0;
#X connect 66 0 52 0;
#X connect 68 0 56 0;
#X connect 72 0 73 0;
#X connect 73 0 68 0;
#X connect 74 0 72 0;
#X connect 74 1 75 0;
#X connect 75 0 72 1;
#X connect 76 0 74 0;
#X connect 78 0 77 0;
#X connect 79 0 80 0;
#X connect 94 0 98 0;
#X connect 94 1 98 1;
#X connect 95 0 97 1;
#X connect 96 0 101 0;
#X connect 97 0 94 0;
#X connect 98 0 29 0;
#X connect 101 0 97 0;
#X connect 101 1 95 0;
#X connect 103 0 102 0;
#X restore 109 133 pd read-windows;
#X obj 137 543 tabsend~ prev-imag;
#X obj 136 567 tabsend~ prev-real;
#X obj 20 8 tabreceive~ prev-real;
#X obj 73 29 tabreceive~ prev-imag;
#X text 272 5 recall previous output amplitude. Its phase will be added
to the phase difference we measure from two windows in the the recorded
sound.;
#X obj 121 69 *~;
#X obj 89 69 *~;
#X obj 89 91 +~;
#X obj 159 94 q8_rsqrt~;
#X obj 159 71 +~ 1e-20;
#X obj 73 119 *~;
#X obj 19 118 *~;
#X obj 181 290 r lock;
#X obj 29 245 lrshift~ 1;
#X obj 24 269 lrshift~ -1;
#X obj 141 245 lrshift~ 1;
#X obj 133 269 lrshift~ -1;
#X obj 35 300 *~;
#X obj 159 312 *~;
#X obj 19 325 +~;
#X obj 125 331 +~;
#X text 247 66 divide by the magnitude to make a unit-magnitude complex
amplitude (phase only). The 1e-20 is to prevent overflows. q8_rsqrt~
is reciprocal square root.;
#X text 247 165 Take FT of the window in back. Multiply its conjugate
by the normalized previous output. The result has the magnitude of
the input sound and phase (previous output phase) minus (back window
phase).;
#X text 249 370 Normalize again \, this time taking care to salt each
channel with 1e-15 so that we get a unit complex number even if everything
was zero heretofore.;
#X text 288 427 Now take the FT of the forward window and multiply
it by the unit complex number from above. The magnitude will be that
of the forward window and the phase will be the previous output phase
plus the phase difference between the two analysis windows -- except
that if "lock" is on \, they will be modified to agree progressively
better with the inter-channel phase relationships of the input.;
#X text 249 242 If "lock" is on \, encourage neighboring channels to
stay in phase by adding the two neighboring complex amplitudes. The
result will tend toward the channel with the strongest amplitude. If
the phase relationships between channels in the output and those in
the input are in parallel \, then neighboring channels of the quotient
will all have the same phase and this will not change any phases. (lrshift
shifts the signal to the left or right depending on its argument.)
;
#X text 387 560 'set' message to block;
#X text 390 577 allows variable size;
#X text 259 126 Read two windows \, one 1/4 length behind the other
\, of the input sound \, with Hann window function (see inside).;
#X msg 591 589 \; pd dsp 1 \; window-size 2048 \; transpo 0 \; rewind
bang;
#X connect 0 0 2 1;
#X connect 1 0 2 0;
#X connect 2 0 34 0;
#X connect 2 0 15 0;
#X connect 3 0 5 1;
#X connect 4 0 5 0;
#X connect 5 0 33 0;
#X connect 5 0 15 1;
#X connect 6 0 19 1;
#X connect 7 0 19 0;
#X connect 8 0 10 1;
#X connect 9 0 10 0;
#X connect 10 0 47 0;
#X connect 10 0 46 0;
#X connect 10 0 52 0;
#X connect 11 0 18 1;
#X connect 12 0 16 0;
#X connect 13 0 1 1;
#X connect 13 0 3 1;
#X connect 13 1 0 1;
#X connect 13 1 4 1;
#X connect 14 0 9 1;
#X connect 14 0 7 1;
#X connect 14 1 6 1;
#X connect 14 1 8 1;
#X connect 15 0 26 0;
#X connect 17 0 18 0;
#X connect 18 0 31 0;
#X connect 19 0 48 0;
#X connect 19 0 49 0;
#X connect 19 0 53 0;
#X connect 20 0 1 0;
#X connect 20 0 4 0;
#X connect 21 0 0 0;
#X connect 21 0 3 0;
#X connect 22 0 28 0;
#X connect 23 0 30 0;
#X connect 25 0 17 1;
#X connect 25 0 17 0;
#X connect 25 0 20 0;
#X connect 26 0 12 0;
#X connect 27 0 26 1;
#X connect 28 0 12 1;
#X connect 29 0 62 0;
#X connect 30 0 24 0;
#X connect 31 0 20 1;
#X connect 31 0 21 1;
#X connect 32 0 14 0;
#X connect 32 1 13 0;
#X connect 35 0 39 1;
#X connect 35 0 39 0;
#X connect 35 0 44 0;
#X connect 36 0 38 1;
#X connect 36 0 38 0;
#X connect 36 0 43 0;
#X connect 38 0 40 1;
#X connect 39 0 40 0;
#X connect 40 0 42 0;
#X connect 41 0 43 1;
#X connect 41 0 44 1;
#X connect 42 0 41 0;
#X connect 43 0 8 0;
#X connect 43 0 7 0;
#X connect 44 0 9 0;
#X connect 44 0 6 0;
#X connect 45 0 50 1;
#X connect 45 0 51 1;
#X connect 46 0 50 0;
#X connect 47 0 50 0;
#X connect 48 0 51 0;
#X connect 49 0 51 0;
#X connect 50 0 52 1;
#X connect 51 0 53 1;
#X connect 52 0 25 0;
#X connect 53 0 11 0;
#X connect 53 0 11 1;
#X connect 53 0 21 0;
#X restore 57 21 pd fft-analysis;
#X obj 57 274 *~;
#X obj 57 297 dac~;
#X obj 78 97 r master-volume;
#X obj 78 200 dbtorms;
#X obj 87 56 s~ main-sig;
#X obj 78 223 pack f 40;
#X obj 78 246 line~;
#X obj 78 121 moses 41;
#X obj 78 145 t b;
#X msg 78 169 0;
#X connect 0 0 1 0;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 1 0 2 1;
#X connect 3 0 8 0;
#X connect 4 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 1 1;
#X connect 8 0 9 0;
#X connect 8 1 4 0;
#X connect 9 0 10 0;
#X connect 10 0 4 0;
#X restore 27 690 pd dsp;
#N canvas 498 224 786 413 pvoc-controls 0;
#X floatatom 154 166 3 0 0 0 - speed-set -;
#X floatatom 42 168 7 0 0 0 - location-set -;
#N canvas 260 23 647 768 phase-tables 0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array prev-imag 4096 float 0;
#X coords 0 1000 4096 -1000 400 300 1;
#X restore 169 326 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X array prev-real 4096 float 0;
#X coords 0 500 4096 -500 400 300 1;
#X restore 170 17 graph;
#X restore 427 287 pd phase-tables;
#X text 151 147 hundredths;
#X text 376 142 normal;
#N canvas 0 110 565 454 hann-window 0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-hann 2048 float 0;
#X coords 0 1 2047 0 300 100 1;
#X restore 82 311 graph;
#X obj 378 165 osc~;
#X obj 378 190 *~ -0.5;
#X obj 378 214 +~ 0.5;
#X obj 331 247 tabwrite~ \$0-hann;
#X obj 37 88 r window-size;
#X obj 38 173 /;
#X obj 127 142 samplerate~;
#X obj 38 251 s window-sec;
#X obj 177 204 swap;
#X obj 177 228 /;
#X obj 177 252 s window-hz;
#X obj 49 201 * 1000;
#X obj 49 228 s window-msec;
#X obj 38 115 t f b f;
#X msg 173 92 resize \$1;
#X obj 173 116 s \$0-hann;
#X obj 330 105 r window-hz;
#X msg 382 130 0;
#X obj 330 131 t f b;
#X text 15 8 calculate Hann window table (variable window size) and
constants window-hz (fundamental frequency of analysis) \, window-sec
and window-msec (analysis window size in seconds and msec).;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 5 0 14 0;
#X connect 6 0 8 0;
#X connect 6 0 12 0;
#X connect 7 0 6 1;
#X connect 7 0 9 1;
#X connect 9 0 10 0;
#X connect 9 1 10 1;
#X connect 10 0 11 0;
#X connect 12 0 13 0;
#X connect 14 0 6 0;
#X connect 14 0 9 0;
#X connect 14 1 7 0;
#X connect 14 2 15 0;
#X connect 15 0 16 0;
#X connect 17 0 19 0;
#X connect 18 0 1 1;
#X connect 19 0 1 0;
#X connect 19 1 4 0;
#X connect 19 1 18 0;
#X restore 427 311 pd hann-window;
#N canvas 242 168 777 489 insample 0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-sample 448705 float 0;
#X coords 0 1 448704 -1 400 150 1;
#X restore 282 104 graph;
#X obj 28 133 r read-sample;
#X obj 28 184 unpack s f;
#X obj 28 294 soundfiler;
#X obj 285 342 loadbang;
#X obj 28 210 t s b;
#X obj 84 209 symbol \$0-sample;
#X obj 28 245 pack s s;
#X obj 83 156 44100;
#X obj 28 157 t a b;
#X obj 38 318 s \$0-samplength;
#X obj 125 184 s \$0-insamprate;
#X obj 28 357 /;
#X obj 28 381 * 1000;
#X obj 28 404 s \$0-samp-msec;
#X obj 66 357 r \$0-insamprate;
#X obj 276 20 inlet;
#X obj 276 42 openpanel;
#X obj 276 67 s read-sample;
#X msg 191 420 \; location-set-set-properties range 0 \$1 \;;
#X obj 191 399 - 1;
#X msg 28 270 read -resize -maxsize 4.41e+07 \$1 \$2;
#X msg 284 366 \; read-sample sound/deutsch.wav \;;
#X connect 1 0 9 0;
#X connect 2 0 5 0;
#X connect 2 1 11 0;
#X connect 3 0 10 0;
#X connect 3 0 12 0;
#X connect 4 0 22 0;
#X connect 5 0 7 0;
#X connect 5 1 6 0;
#X connect 6 0 7 1;
#X connect 7 0 21 0;
#X connect 8 0 11 0;
#X connect 9 0 2 0;
#X connect 9 1 8 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 13 0 20 0;
#X connect 15 0 12 1;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 20 0 19 0;
#X connect 21 0 3 0;
#X restore 428 263 pd insample;
#X floatatom 539 263 10 0 0 0 - #0-samp-msec -;
#X obj 42 190 s location;
#X obj 154 190 s speed;
#X obj 249 169 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 249 191 s rewind;
#X msg 332 119 200;
#X msg 332 141 100;
#X text 373 118 contract;
#X text 377 163 expand;
#X text 42 113 location;
#X text 39 129 (stops;
#X text 44 144 motion);
#X text 152 131 motion in;
#X text 631 262 length \, msec;
#X floatatom 594 202 5 0 0 0 - window-size -;
#X msg 594 90 512;
#X msg 594 112 1024;
#X msg 594 134 2048;
#X msg 594 156 4096;
#X obj 594 178 s window-size;
#X text 594 57 window size \,;
#X text 594 72 samples;
#X text 635 89 <- set;
#X text 647 202 (check);
#X obj 332 190 s auto;
#X obj 428 243 bng 15 250 50 0 empty open-file Open-file 24 6 0 12
-262144 -1 -1;
#X msg 332 163 20;
#X obj 92 275 r location-set;
#X msg 92 298 set \$1;
#X obj 92 321 s location-set-set-properties;
#X connect 0 0 9 0;
#X connect 1 0 8 0;
#X connect 10 0 11 0;
#X connect 12 0 31 0;
#X connect 13 0 31 0;
#X connect 22 0 26 0;
#X connect 23 0 26 0;
#X connect 24 0 26 0;
#X connect 25 0 26 0;
#X connect 32 0 6 0;
#X connect 33 0 31 0;
#X connect 34 0 35 0;
#X connect 35 0 36 0;
#X restore 27 667 pd pvoc-controls;
#X obj 27 647 bng 15 250 50 0 open-file empty Open-file 17 7 0 12 -262144
-1 -1;
#N canvas 64 28 1219 820 analyses 1;
#X obj 47 164 list prepend 0;
#X obj 47 187 s mag-spec-graph;
#X obj 297 164 list prepend 0;
#X obj 547 164 list prepend 0;
#X obj 547 187 s bfcc-graph;
#X obj 297 187 s barkspec-graph;
#X obj 797 164 list prepend 0;
#X msg 47 113 analyze \$1 \$2;
#X obj 47 91 pack f f;
#X obj 108 62 r analysis-window-size;
#X obj 47 39 r table-read-point;
#X obj 685 712 s analysis-window-size;
#X msg 685 689 2048;
#X obj 685 666 loadbang;
#X msg 297 113 analyze \$1 \$2;
#X obj 297 91 pack f f;
#X obj 358 62 r analysis-window-size;
#X obj 297 39 r table-read-point;
#X msg 547 113 analyze \$1 \$2;
#X obj 547 91 pack f f;
#X obj 608 62 r analysis-window-size;
#X obj 547 39 r table-read-point;
#X msg 797 93 analyze \$1 \$2;
#X obj 797 71 pack f f;
#X obj 858 42 r analysis-window-size;
#X msg 47 303 analyze \$1 \$2;
#X obj 47 281 pack f f;
#X obj 108 252 r analysis-window-size;
#X obj 47 229 r table-read-point;
#X msg 297 303 analyze \$1 \$2;
#X obj 297 281 pack f f;
#X obj 358 252 r analysis-window-size;
#X obj 297 229 r table-read-point;
#X msg 547 303 analyze \$1 \$2;
#X obj 547 281 pack f f;
#X obj 547 229 r table-read-point;
#X msg 787 303 analyze \$1 \$2;
#X obj 787 281 pack f f;
#X obj 787 229 r table-read-point;
#X msg 47 493 analyze \$1 \$2;
#X obj 47 471 pack f f;
#X obj 108 442 r analysis-window-size;
#X obj 47 419 r table-read-point;
#X msg 307 493 analyze \$1 \$2;
#X obj 307 471 pack f f;
#X obj 368 442 r analysis-window-size;
#X obj 307 419 r table-read-point;
#X msg 557 493 analyze \$1 \$2;
#X obj 557 471 pack f f;
#X obj 557 419 r table-read-point;
#X msg 767 493 analyze \$1 \$2;
#X obj 767 471 pack f f;
#X obj 767 419 r table-read-point;
#X msg 47 693 analyze \$1 \$2;
#X obj 47 671 pack f f;
#X obj 108 642 r analysis-window-size;
#X obj 47 619 r table-read-point;
#X msg 317 693 analyze \$1 \$2;
#X obj 317 671 pack f f;
#X obj 378 642 r analysis-window-size;
#X obj 317 619 r table-read-point;
#X obj 949 531 i;
#X obj 1015 555 r analysis-window-size;
#X obj 994 592 +;
#X msg 949 649 copy_range 0 \$3 \$1 \$2;
#X obj 949 619 pack f f s;
#X obj 1031 592 symbol \$0-sample;
#X obj 949 555 t f f b;
#X obj 797 141 list split 1;
#X obj 797 19 r table-read-point;
#X obj 949 477 r table-read-point;
#X obj 578 442 r analysis-window-size;
#X obj 848 442 r analysis-window-size;
#X obj 578 252 r analysis-window-size;
#X obj 878 252 r analysis-window-size;
#X obj 47 747 s zero-crossing-graph;
#X obj 317 747 s irreg-graph;
#X obj 47 550 s kurtosis-graph;
#X obj 307 550 s rolloff-graph;
#X obj 557 550 s skewness-graph;
#X obj 767 550 s spread-graph;
#X obj 797 187 s cepstrum-graph;
#X obj 787 357 s flux-graph;
#X obj 547 357 s flatness-graph;
#X obj 297 357 s centroid-graph;
#X obj 47 357 s brightness-graph;
#X obj 47 141 tID/magSpec \$0-sample;
#X obj 297 141 tID/barkSpec \$0-sample 0.25;
#X obj 547 141 tID/bfcc \$0-sample 0.25;
#X obj 797 119 tID/cepstrum \$0-sample;
#X obj 787 331 tID/specFlux \$0-sample;
#X obj 547 331 tID/specFlatness \$0-sample;
#X obj 297 331 tID/specCentroid \$0-sample;
#X obj 47 331 tID/specBrightness \$0-sample;
#X obj 47 521 tID/specKurtosis \$0-sample;
#X obj 307 521 tID/specRolloff \$0-sample 0.85;
#X obj 557 521 tID/specSkewness \$0-sample;
#X obj 767 521 tID/specSpread \$0-sample;
#X obj 317 721 tID/specIrregularity \$0-sample;
#X obj 47 721 tID/zeroCrossing \$0-sample;
#X obj 949 681 tID/tabletool waveform;
#X connect 0 0 1 0;
#X connect 2 0 5 0;
#X connect 3 0 4 0;
#X connect 6 0 81 0;
#X connect 7 0 86 0;
#X connect 8 0 7 0;
#X connect 9 0 8 1;
#X connect 10 0 8 0;
#X connect 12 0 11 0;
#X connect 13 0 12 0;
#X connect 14 0 87 0;
#X connect 15 0 14 0;
#X connect 16 0 15 1;
#X connect 17 0 15 0;
#X connect 18 0 88 0;
#X connect 19 0 18 0;
#X connect 20 0 19 1;
#X connect 21 0 19 0;
#X connect 22 0 89 0;
#X connect 23 0 22 0;
#X connect 24 0 23 1;
#X connect 25 0 93 0;
#X connect 26 0 25 0;
#X connect 27 0 26 1;
#X connect 28 0 26 0;
#X connect 29 0 92 0;
#X connect 30 0 29 0;
#X connect 31 0 30 1;
#X connect 32 0 30 0;
#X connect 33 0 91 0;
#X connect 34 0 33 0;
#X connect 35 0 34 0;
#X connect 36 0 90 0;
#X connect 37 0 36 0;
#X connect 38 0 37 0;
#X connect 39 0 94 0;
#X connect 40 0 39 0;
#X connect 41 0 40 1;
#X connect 42 0 40 0;
#X connect 43 0 95 0;
#X connect 44 0 43 0;
#X connect 45 0 44 1;
#X connect 46 0 44 0;
#X connect 47 0 96 0;
#X connect 48 0 47 0;
#X connect 49 0 48 0;
#X connect 50 0 97 0;
#X connect 51 0 50 0;
#X connect 52 0 51 0;
#X connect 53 0 99 0;
#X connect 54 0 53 0;
#X connect 55 0 54 1;
#X connect 56 0 54 0;
#X connect 57 0 98 0;
#X connect 58 0 57 0;
#X connect 59 0 58 1;
#X connect 60 0 58 0;
#X connect 61 0 67 0;
#X connect 62 0 63 1;
#X connect 63 0 65 1;
#X connect 64 0 100 0;
#X connect 65 0 64 0;
#X connect 66 0 65 2;
#X connect 67 0 65 0;
#X connect 67 1 63 0;
#X connect 67 2 66 0;
#X connect 68 1 6 0;
#X connect 69 0 23 0;
#X connect 70 0 61 0;
#X connect 71 0 48 1;
#X connect 72 0 51 1;
#X connect 73 0 34 1;
#X connect 74 0 37 1;
#X connect 86 0 0 0;
#X connect 87 0 2 0;
#X connect 88 0 3 0;
#X connect 89 0 68 0;
#X connect 90 0 82 0;
#X connect 91 0 83 0;
#X connect 92 0 84 0;
#X connect 93 0 85 0;
#X connect 94 0 77 0;
#X connect 95 0 78 0;
#X connect 96 0 79 0;
#X connect 97 0 80 0;
#X connect 98 0 76 0;
#X connect 99 0 75 0;
#X restore 84 690 pd analyses;
#X obj 1 -13 cnv 10 400 10 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 1 -13 cnv 10 10 400 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 267 415 Irregularity;
#X obj 269 435 nbx 5 32 -1e+37 1e+37 0 0 empty irreg-graph empty 0
-8 0 32 -262144 -1 -1 nan 256;