-
Notifications
You must be signed in to change notification settings - Fork 13
/
dec2frac.mmb.pd
159 lines (159 loc) · 3.7 KB
/
dec2frac.mmb.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
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
#N canvas 140 22 908 750 10;
#X obj 298 36 inlet;
#X obj 573 359 t l;
#X obj 240 574 list;
#X obj 198 415 sel 0;
#X obj 207 168 expr 1/$f1;
#X obj 478 359 list append;
#N canvas 203 22 687 744 simplify 0;
#X obj 144 28 inlet;
#X obj 198 155 list length;
#X obj 145 132 t l l;
#X obj 165 214 spigot;
#X obj 51 239 spigot;
#X obj 84 213 == 1;
#X obj 205 275 list split 2;
#X obj 98 423 pack f f;
#X obj 272 371 list split 1;
#X obj 237 340 list;
#X obj 198 188 > 1;
#X obj 98 377 expr $f2*$f1+1 \; $f1;
#X obj 305 513 list append;
#X obj 305 541 expr $f1*$f2+$f3 \; $f2;
#X obj 307 589 pack f f;
#X obj 229 423 t b l;
#X obj 226 631 list;
#X obj 97 448 t l l;
#X obj 102 687 outlet;
#X text 206 80 converts the continued fraction form into a simple fraction
;
#X connect 0 0 2 0;
#X connect 1 0 5 0;
#X connect 1 0 10 0;
#X connect 2 0 3 0;
#X connect 2 0 4 0;
#X connect 2 1 1 0;
#X connect 3 0 6 0;
#X connect 4 0 18 0;
#X connect 5 0 4 1;
#X connect 6 0 11 0;
#X connect 6 1 9 1;
#X connect 7 0 17 0;
#X connect 8 0 12 0;
#X connect 8 1 9 1;
#X connect 8 2 16 0;
#X connect 9 0 8 0;
#X connect 10 0 3 1;
#X connect 11 0 7 0;
#X connect 11 1 7 1;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 13 1 14 1;
#X connect 14 0 15 0;
#X connect 15 0 9 0;
#X connect 15 1 16 1;
#X connect 15 1 12 1;
#X connect 16 0 18 0;
#X connect 17 0 15 0;
#X connect 17 1 12 1;
#X restore 478 385 pd simplify;
#X obj 325 713 outlet;
#X obj 368 630 list;
#X obj 479 411 t l l;
#X obj 596 577 sel 1;
#X obj 281 348 spigot;
#X msg 336 349 0;
#X obj 281 372 t f b;
#X obj 505 438 list split 1;
#X obj 535 469 route bang;
#X msg 333 382 1;
#X text 41 573 This is just here for debugging;
#X obj 660 406 loadbang;
#X obj 660 427 f \$1;
#X text 612 683 .mmb;
#X text 638 625 TODO: implement decrementing rules;
#X obj 102 674 prepend set;
#X obj 300 210 expr if($f1<0 \, int($f1-1) \, int($f1)) \; $f1;
#X obj 310 268 expr $f2-$f1 \; $f1;
#X text 533 211 floor;
#X obj 628 36 inlet;
#X obj 628 123 max 1;
#X obj 596 556 > 1000;
#X obj 298 100 t b b f b;
#N canvas 0 22 450 300 test.if.integer 0;
#X obj 206 117 expr int($f1)==$f1;
#X obj 151 28 inlet;
#X obj 151 64 t f f;
#X obj 129 186 spigot;
#X obj 179 186 spigot;
#X obj 164 160 != 1;
#X obj 129 242 outlet;
#X obj 179 242 outlet;
#X msg 179 214 \$1 1;
#X connect 0 0 4 1;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 0 4 0;
#X connect 2 1 0 0;
#X connect 3 0 6 0;
#X connect 4 0 8 0;
#X connect 5 0 3 1;
#X connect 8 0 7 0;
#X restore 298 76 pd test.if.integer;
#X obj 403 111 s \$0-to.outlet;
#X obj 395 671 r \$0-to.outlet;
#X msg 101 698 45 27 1 15 7 3;
#X obj 660 452 max 1;
#X obj 306 157 until;
#X obj 335 134 r \$0-stop.until;
#X obj 306 183 f;
#X obj 127 483 s \$0-stop.until;
#X obj 595 604 s \$0-stop.until;
#X connect 0 0 30 0;
#X connect 1 0 5 1;
#X connect 2 0 22 0;
#X connect 3 0 8 0;
#X connect 3 0 38 0;
#X connect 3 1 4 0;
#X connect 4 0 23 0;
#X connect 5 0 1 0;
#X connect 5 0 2 1;
#X connect 5 0 6 0;
#X connect 6 0 9 0;
#X connect 8 0 7 0;
#X connect 9 0 8 1;
#X connect 9 1 14 0;
#X connect 10 0 8 0;
#X connect 10 0 39 0;
#X connect 10 1 16 0;
#X connect 11 0 13 0;
#X connect 12 0 11 1;
#X connect 13 0 3 0;
#X connect 13 1 12 0;
#X connect 14 1 15 0;
#X connect 15 0 16 0;
#X connect 15 1 28 0;
#X connect 16 0 11 1;
#X connect 18 0 19 0;
#X connect 19 0 34 0;
#X connect 22 0 33 0;
#X connect 23 0 24 0;
#X connect 23 1 24 1;
#X connect 24 0 11 0;
#X connect 24 1 5 0;
#X connect 26 0 27 0;
#X connect 27 0 28 1;
#X connect 28 0 10 0;
#X connect 29 0 2 0;
#X connect 29 1 35 0;
#X connect 29 2 37 1;
#X connect 29 3 5 1;
#X connect 29 3 8 1;
#X connect 30 0 29 0;
#X connect 30 1 31 0;
#X connect 32 0 7 0;
#X connect 34 0 28 1;
#X connect 35 0 37 0;
#X connect 36 0 35 1;
#X connect 37 0 23 0;