-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathline-bezier~.pd
103 lines (103 loc) · 2.65 KB
/
line-bezier~.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 937 294 778 511 12;
#X obj 60 368 dried/cubic-bezier~;
#X obj 389 361 dried/quadratic-bezier~, f 25;
#X msg 60 242 0 \, 1 \$1;
#X obj 227 403 snapshot~;
#X obj 156 329 r \$0-p2;
#X obj 446 331 r \$0-p2;
#X obj 226 374 r \$0-get-now;
#X obj 227 432 s \$0-now;
#X obj 92 329 r \$0-now;
#X obj 60 215 r \$0-start;
#N canvas 1255 419 560 346 get-p2 0;
#X obj 12 167 inlet~;
#X obj 12 194 snapshot~;
#X obj 12 221 s \$0-p2;
#X obj 80 31 r \$0-now;
#X obj 80 140 ==;
#X obj 154 35 r \$0-target;
#X obj 154 93 f;
#X text 154 9 previous target;
#X obj 154 64 t f b;
#X obj 157 196 b;
#X obj 157 225 f;
#X obj 157 254 s \$0-p2;
#X obj 190 196 r \$0-now;
#X text 281 62 if we're at the previous target \, we are not being
interrupted \, so use now as p2else \, use quadratic bezier snapshot
;
#X obj 80 169 select 0;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 3 0 4 0;
#X connect 4 0 14 0;
#X connect 5 0 8 0;
#X connect 6 0 4 1;
#X connect 8 0 6 1;
#X connect 8 1 6 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 12 0 10 1;
#X connect 14 0 1 0;
#X connect 14 1 9 0;
#X restore 389 390 pd get-p2;
#X obj 177 134 s \$0-get-now;
#X obj 55 134 s \$0-start;
#X obj 60 437 outlet~;
#X obj 60 269 line~;
#X obj 55 8 inlet;
#N canvas 504 180 450 323 \$0-parse-list 0;
#X obj 40 10 inlet;
#X obj 40 89 t list list;
#X obj 40 32 list split 2;
#X msg 40 111 \$2;
#X obj 40 133 s \$0-duration;
#X msg 173 112 \$1;
#X obj 190 15 inlet;
#X text 219 56 add argument duration if needed;
#X text 227 16 inlet duration;
#X obj 109 58 list append \$1;
#X obj 173 134 s \$0-target;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 1 1 5 0;
#X connect 2 0 1 0;
#X connect 2 2 9 0;
#X connect 3 0 4 0;
#X connect 5 0 10 0;
#X connect 6 0 9 1;
#X connect 9 0 1 0;
#X restore 55 31 pd \$0-parse-list;
#X obj 164 8 inlet;
#X obj 55 74 r \$0-duration;
#X obj 177 74 r \$0-target;
#X obj 271 134 s \$0-p-target;
#X obj 213 329 r \$0-p-target;
#X obj 503 331 r \$0-p-target;
#X text 400 34 cubic bezier interruptable linecubic bezier has 4 control
pointsin our case:1 - start value2 - quadratic bezier if interrupted
\; else start value3 & 4 - target valuelike line-eased~ \, only
takes one target-duration pair at a time;
#X obj 177 104 t b f;
#X connect 0 0 3 0;
#X connect 0 0 13 0;
#X connect 1 0 10 0;
#X connect 2 0 14 0;
#X connect 3 0 7 0;
#X connect 4 0 0 2;
#X connect 5 0 1 1;
#X connect 6 0 3 0;
#X connect 8 0 0 1;
#X connect 9 0 2 0;
#X connect 14 0 0 0;
#X connect 14 0 1 0;
#X connect 15 0 16 0;
#X connect 17 0 16 1;
#X connect 18 0 12 0;
#X connect 19 0 24 0;
#X connect 21 0 0 3;
#X connect 21 0 0 4;
#X connect 22 0 1 2;
#X connect 22 0 1 3;
#X connect 24 0 11 0;
#X connect 24 1 20 0;