aboutsummaryrefslogtreecommitdiff
path: root/pd/extra/help-choice.pd
blob: df46ddc08267a0eda7950ac1af112e34eeb926fe (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
#N canvas 16 5 488 531 12;
#X obj 8 186 choice;
#X msg 41 86 print;
#X msg 29 63 clear;
#X msg 8 34 add 1 0 0 \, add 0 1 0 \, add 0 0 1 \, add 1 1 1 \, add 1 1 0;
#X obj 77 162 pack 0 0 0;
#X floatatom 182 120;
#X floatatom 148 120;
#X floatatom 115 120;
#X obj 77 142 f;
#X msg 77 120 bang;
#X floatatom 8 207;
#X obj 53 187 choice 1;
#X floatatom 53 208;
#X obj 76 4 choice;
#X text 122 5 - search for a best match to an incoming list;
#X text 19 234 The choice object holds a list of vectors \, each having up to ten elements. When sent a list of numbers \, it outputs the index of the known vector that matches most closely. The quality of the match is the dot product of the two vectors after normalizing them \, i.e. \, the vector whose direction is closest to that of the input wins.;
#X text 19 316 If given a nonzero creation argument \, choice tries to avoid repetitious outputs by weighting less recently output vectors preferentially.;
#X text 18 354 You can use this to choose interactively between a number of behaviors depending on their attributes. For example \, you might have stored a number of melodies \, of which some are syncopated \, some chromatic \, some are more than 100 years old \, some are bugle calls \, and some are Christmas carols. You could then ask to find a syncopated bugle call (1 \, 0 \, 0 \, 1 \, 0) and you'll get the thing most closely matching the request.;
#X text 17 461 You can use numbers other than 0 and 1 to indicate relative strengths of the attributes \, or even use negative numbers to indicate opposites \, either in the incoming lists or in the stored ones.;
#X text 273 513 updated for Pd version-0.30;
#X text 72 63 delete all stored vectors;
#X text 394 36 add vectors;
#X text 81 85 debugging printout;
#X text 69 104 tweak the numbers and hit "bang" to input a list;
#X text 115 187 creation argument to avoid repeated outout;
#X text 85 208 output is the index of best match \, counting from zero;
#X connect 0 0 10 0;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 2 0 11 0;
#X connect 3 0 0 0;
#X connect 3 0 11 0;
#X connect 4 0 0 0;
#X connect 4 0 11 0;
#X connect 5 0 4 2;
#X connect 6 0 4 1;
#X connect 7 0 8 1;
#X connect 8 0 4 0;
#X connect 9 0 8 0;
#X connect 11 0 12 0;