-
Notifications
You must be signed in to change notification settings - Fork 0
/
specIrregularity~-help.pd
103 lines (103 loc) · 3.58 KB
/
specIrregularity~-help.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
#N canvas 233 118 903 736 10;
#X floatatom 55 657 10 0 0 0 - - -;
#X text 412 324 See timbreID helpfile:;
#X obj 414 344 timbreID;
#X obj 116 376 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 116 396 algorithm \$1;
#X text 127 417 Choose either Jensen (default) or Krimphoff algorithm.
;
#X obj 56 53 phasor~ 440;
#X obj 116 101 noise~;
#X obj 56 161 *~;
#X obj 86 161 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 116 161 *~;
#X obj 146 161 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#N canvas 0 22 450 300 (subpatch) 0;
#X array magspec-graph 256 float 0;
#X coords 0 0.09 255 0 200 140 1 0 0;
#X restore 612 336 graph;
#X obj 116 122 lop~ 1000;
#X text 412 27 Spectral Irregularity has two common definitions: one
by Jensen \, the other by Krimphoff. The calculation differs \, but
the general idea of both is to inspect a spectrum from low to high
and see how much each frequency bin compares to its immediate neighbors.
For jagged spectra \, irregularity will be high \, and and for smooth
contoured spectra \, it will be low. McAdams et. al identified this
measure as important to timbre perception in 2005 At left \, the irregularity
of a sawtooth wave (with a spiky spectrum) is much more than low-pass
filtered noise.;
#X text 412 177 This feature can be sent to the timbreID external in
order to identify percussive timbres in real time.;
#N canvas 531 223 653 503 other-settings 0;
#X obj 54 86 hradio 15 1 0 5 empty empty empty 0 -8 0 10 -262144 -1
-1 1;
#X msg 54 106 window_function \$1;
#X msg 148 265 power_spectrum \$1;
#X obj 148 247 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 54 415 outlet;
#X text 52 49 Change windowing function. Rectangular (0) \, Blackman
(1) \, Cosine (2) \, Hamming (3) \, or Hann (4). (default: Hann);
#X text 289 265 Use power spectrum. (default: magnitude);
#X obj 204 324 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 204 344 normalize \$1;
#X text 232 308 Turn spectrum normalization on/off. This only matters
when using the Krimphoff algorithm.;
#X text 104 165 Change window size.;
#X msg 106 183 window 2048;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X connect 3 0 2 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 11 0 4 0;
#X restore 168 461 pd other-settings;
#X obj 612 586 magSpec~ 1024;
#X obj 612 607 list prepend 0;
#X obj 612 628 s magspec-graph;
#X obj 612 526 r~ irr-sig;
#X obj 56 213 s~ irr-sig;
#X obj 636 553 r analysis;
#X obj 175 270 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 172 252 Bang to output irregularity.;
#X obj 175 290 s analysis;
#X obj 56 323 r~ irr-sig;
#X obj 224 555 r analysis;
#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 obj 56 75 *~ 2;
#X obj 56 97 -~ 1;
#X text 412 218 Audio buffering and windowing are taken care of by
the external \, so there is no need for tabreceive~ or block~. You
can set the window size with a creation argument \, or change it with
the "window" message. The second creation argument sets the algorithm
to either Jensen (0) or Krimphoff (1).;
#X obj 55 614 specIrregularity~ 1024 0;
#X connect 3 0 4 0;
#X connect 4 0 33 0;
#X connect 6 0 30 0;
#X connect 7 0 13 0;
#X connect 8 0 21 0;
#X connect 9 0 8 1;
#X connect 10 0 21 0;
#X connect 11 0 10 1;
#X connect 13 0 10 0;
#X connect 16 0 33 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 20 0 17 0;
#X connect 22 0 17 0;
#X connect 23 0 25 0;
#X connect 26 0 33 0;
#X connect 27 0 33 0;
#X connect 30 0 31 0;
#X connect 31 0 8 0;
#X connect 33 0 0 0;