aboutsummaryrefslogtreecommitdiff
path: root/test-harmonizer.pd
blob: 1818262ff464680f8842b9baa32ecad01c5a722b (plain)
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
#N canvas 328 37 714 655 12;
#X symbolatom 179 191 20 0 0 0 - - -;
#N canvas 39 349 531 328 readme 0;
#X text 59 31 howto populate the graph: play the chord \, when the
output of [chord] is ok bang the "add" message. bang it each time you
change chord \, it will store the transitions;
#X text 56 120 howto ask for the next chord: play the chord \, bang
the "set" message \, this will set the current chord without adding
it to the graph's memory \, now bang the next 1 message. this chord_graph
will respond with the chord you played most of the times after the
current chord. you can send "next x" where x is from 0 to 1 \, 0 =
max novelty \, 1= min novelty;
#X text 56 259 you can save graph state sending the write message;
#X restore 496 48 pd readme;
#X obj 121 316 harmonizer;
#X msg 52 273 current \$1;
#X msg 158 270 target \$1;
#X obj 52 249 symbol;
#X obj 52 229 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 157 248 symbol;
#X obj 289 248 int 36;
#X obj 355 249 int 60;
#X obj 426 247 int 67;
#X obj 494 246 int 76;
#X obj 566 249 int 84;
#X obj 335 276 pack f f f f f;
#X obj 358 220 t b b b b b;
#X obj 246 356 unpack f f f f f;
#X obj 135 105 symbol;
#X obj 98 43 bng 15 250 50 0 empty empty change_chord 0 -6 0 8 -262144
-1 -1;
#X msg 135 133 set \$1;
#N canvas 0 0 706 416 midi 0;
#X obj 141 253 outlet;
#X obj 271 31 notein;
#X obj 271 66 chord 59;
#X msg 175 149 add \$1;
#X obj 175 121 symbol;
#X obj 176 94 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 248 163 symbol;
#X obj 249 136 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 248 191 set \$1;
#X symbolatom 311 101 25 0 0 0 - - -;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 2 4 1;
#X connect 2 2 6 1;
#X connect 2 2 9 0;
#X connect 3 0 0 0;
#X connect 4 0 3 0;
#X connect 5 0 4 0;
#X connect 6 0 8 0;
#X connect 7 0 6 0;
#X connect 8 0 0 0;
#X restore 326 134 pd midi;
#N canvas 0 0 454 304 fileIO 0;
#X obj 143 225 outlet;
#X msg 115 77 write test.graph;
#X msg 145 105 read test.graph;
#X msg 175 135 init 1;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X restore 243 133 pd fileIO;
#X obj 100 81 t b b;
#X obj 157 215 t b a;
#X obj 28 391 bang;
#X symbolatom 256 35 20 0 0 0 - - -;
#X obj 256 11 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 203 407 mtof;
#X obj 203 431 sig~;
#X obj 204 457 osc~ 440;
#X obj 280 405 mtof;
#X obj 280 429 sig~;
#X obj 281 455 osc~ 440;
#X obj 338 509 mtof;
#X obj 338 533 sig~;
#X obj 339 559 osc~ 440;
#X obj 375 403 mtof;
#X obj 375 427 sig~;
#X obj 376 453 osc~ 440;
#X obj 425 509 mtof;
#X obj 424 532 sig~;
#X obj 425 558 osc~ 440;
#X obj 186 491 throw~ audio;
#X obj 284 482 throw~ audio;
#X obj 391 483 throw~ audio;
#X obj 337 586 throw~ audio;
#X obj 439 588 throw~ audio;
#X obj 99 533 catch~ audio;
#X obj 99 585 dac~;
#X obj 99 558 *~ 0.2;
#X obj 109 418 print;
#X obj 74 111 f 1;
#X msg 59 135 next \$1;
#X obj 63 70 vsl 15 30 0 1 0 0 empty empty empty 0 -8 0 8 -262144 -1
-1 0 1;
#X floatatom 32 112 5 0 0 0 - - -;
#X obj 83 169 chords_memory test.graph;
#X obj 471 355 voicing_analyzer;
#X floatatom 470 390 5 0 0 0 - - -;
#X floatatom 506 411 5 0 0 0 - - -;
#X floatatom 539 393 5 0 0 0 - - -;
#X floatatom 587 412 5 0 0 0 - - -;
#X msg 461 152 i_like_parallelism \$1;
#X obj 463 132 hsl 128 15 -1 1 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 6500 1;
#X obj 436 85 hsl 128 15 0 8 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 11700 1;
#X msg 434 106 wideness \$1;
#X obj 270 76 hsl 128 15 -1 1 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X msg 268 96 small_intervals \$1;
#X connect 2 0 15 0;
#X connect 2 0 49 0;
#X connect 2 0 55 0;
#X connect 3 0 2 0;
#X connect 4 0 2 0;
#X connect 5 0 3 0;
#X connect 6 0 5 0;
#X connect 7 0 4 0;
#X connect 8 0 13 0;
#X connect 9 0 13 1;
#X connect 10 0 13 2;
#X connect 11 0 13 3;
#X connect 12 0 13 4;
#X connect 13 0 2 0;
#X connect 14 0 8 0;
#X connect 14 1 9 0;
#X connect 14 2 10 0;
#X connect 14 3 11 0;
#X connect 14 4 12 0;
#X connect 15 0 8 1;
#X connect 15 0 23 0;
#X connect 15 0 26 0;
#X connect 15 1 9 1;
#X connect 15 1 29 0;
#X connect 15 2 10 1;
#X connect 15 2 32 0;
#X connect 15 3 11 1;
#X connect 15 3 35 0;
#X connect 15 4 12 1;
#X connect 15 4 38 0;
#X connect 16 0 18 0;
#X connect 17 0 21 0;
#X connect 18 0 54 0;
#X connect 19 0 54 0;
#X connect 20 0 54 0;
#X connect 21 0 50 0;
#X connect 21 1 16 0;
#X connect 22 0 14 0;
#X connect 22 1 7 0;
#X connect 23 0 5 0;
#X connect 24 0 5 1;
#X connect 24 0 16 0;
#X connect 24 0 7 0;
#X connect 25 0 24 0;
#X connect 26 0 27 0;
#X connect 27 0 28 0;
#X connect 28 0 41 0;
#X connect 29 0 30 0;
#X connect 30 0 31 0;
#X connect 31 0 42 0;
#X connect 32 0 33 0;
#X connect 33 0 34 0;
#X connect 34 0 44 0;
#X connect 35 0 36 0;
#X connect 36 0 37 0;
#X connect 37 0 43 0;
#X connect 38 0 39 0;
#X connect 39 0 40 0;
#X connect 40 0 45 0;
#X connect 46 0 48 0;
#X connect 48 0 47 0;
#X connect 48 0 47 1;
#X connect 50 0 51 0;
#X connect 51 0 54 0;
#X connect 52 0 50 1;
#X connect 52 0 53 0;
#X connect 54 0 0 0;
#X connect 54 0 5 1;
#X connect 54 0 16 1;
#X connect 54 0 22 0;
#X connect 55 0 56 0;
#X connect 55 1 57 0;
#X connect 55 2 58 0;
#X connect 55 3 59 0;
#X connect 60 0 2 0;
#X connect 61 0 60 0;
#X connect 62 0 63 0;
#X connect 63 0 2 0;
#X connect 64 0 65 0;
#X connect 65 0 2 0;