aboutsummaryrefslogtreecommitdiff
path: root/examples/spiral-joystick.pd
blob: c222225d4b78f7db6b873ff89972b3b565c1e8c6 (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
#N canvas 249 22 633 598 10;
#X declare -lib mapping;
#X obj 482 32 import mapping;
#X obj 100 100 tgl 25 0 empty empty start 1 12 1 9 -225271 -1 -1 0
1;
#X obj 184 486 osc~;
#X obj 97 517 *~;
#X obj 127 561 dac~;
#X obj 17 486 line~;
#X msg 17 464 \$1 5;
#X text 22 32 This patch uses the angle of the joystick to control
pitch and the distance from the centerpoint to control amplitude. The
joystick Z/twist is mapped to pan.;
#X obj 97 538 pan/equal_power_pan~;
#X text 11 9 spiral_joystick;
#X obj 29 103 pddp/dsp;
#X obj 123 161 hidio;
#X obj 192 297 route x y rz z;
#X text 289 297 some joysticks call twist 'z' \, others 'rz';
#X obj 23 214 route absolute;
#X obj 23 297 route x y rz z;
#X obj 192 213 route absolute;
#X obj 192 192 route range;
#X obj 63 342 /;
#X obj 192 233 unpack symbol float float;
#X obj 192 254 pack symbol float;
#X obj 192 275 list trim;
#X obj 23 233 unpack symbol float float;
#X obj 23 254 pack symbol float;
#X obj 23 275 list trim;
#X obj 93 342 /;
#X obj 133 342 /;
#X obj 173 342 /;
#X text 313 253 we don't need the instance number \, so ignore it;
#X text 209 343 scale things to max 1 using the values querying using
[info(;
#X obj 217 520 hsl 128 15 0 1 0 1 empty empty empty -2 -8 0 10 -262144
-1 -1 6350 0;
#X msg 143 101 open joystick;
#X text 153 79 1;
#X text 102 79 2;
#X text 34 79 3;
#X text 247 88 <-- click these in the order specified;
#X obj 184 465 mtof;
#X obj 184 443 notescale 60 72;
#X obj 17 443 exponential_sigmoid 0.3;
#X obj 93 363 reverse;
#X obj 63 410 spiral;
#X text 153 386 <-- reset position in spiral to middle C octave;
#X text 219 462 set middle C as start note \, with one octave per revolution
;
#X msg 124 386 bang;
#N canvas 0 22 450 300 get 0;
#X obj 60 9 inlet;
#X obj 60 261 outlet;
#X msg 60 197 info;
#X text 103 199 the [info( message outputs the range info;
#X obj 60 99 route open;
#X obj 60 173 purepd/once;
#X obj 60 121 select 1 0;
#X connect 0 0 4 0;
#X connect 2 0 1 0;
#X connect 4 0 6 0;
#X connect 5 0 2 0;
#X connect 6 0 5 0;
#X connect 6 1 5 1;
#X restore 176 136 pd get range info;
#X connect 1 0 11 0;
#X connect 2 0 3 1;
#X connect 3 0 8 0;
#X connect 5 0 3 0;
#X connect 6 0 5 0;
#X connect 8 0 4 0;
#X connect 8 1 4 1;
#X connect 11 0 14 0;
#X connect 11 1 17 0;
#X connect 11 1 44 0;
#X connect 12 0 18 1;
#X connect 12 1 25 1;
#X connect 12 2 26 1;
#X connect 12 3 27 0;
#X connect 14 0 22 0;
#X connect 15 0 18 0;
#X connect 15 1 25 0;
#X connect 15 2 26 0;
#X connect 15 3 27 0;
#X connect 16 0 19 0;
#X connect 17 0 16 0;
#X connect 18 0 40 0;
#X connect 19 0 20 0;
#X connect 19 2 20 1;
#X connect 20 0 21 0;
#X connect 21 0 12 0;
#X connect 22 0 23 0;
#X connect 22 2 23 1;
#X connect 23 0 24 0;
#X connect 24 0 15 0;
#X connect 25 0 39 0;
#X connect 30 0 8 1;
#X connect 31 0 11 0;
#X connect 36 0 2 0;
#X connect 37 0 36 0;
#X connect 38 0 6 0;
#X connect 39 0 40 1;
#X connect 40 0 38 0;
#X connect 40 1 37 0;
#X connect 43 0 40 2;
#X connect 44 0 11 0;