i kinda figured that<div><br><br><div class="gmail_quote">2011/12/17 Mike Moser-Booth <span dir="ltr">&lt;<a href="mailto:mmoserbooth@gmail.com">mmoserbooth@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Oops, the right inlet was connected to a [sel] when it should have<br>
been connected to [&gt; 1000]. I&#39;ll upload the fix here and on GitHub.<br>
<br>
.mmb<br>
<br>
On Sat, Dec 17, 2011 at 7:57 PM, Alexandre Torres Porres<br>
<div class="HOEnZb"><div class="h5">&lt;<a href="mailto:porres@gmail.com">porres@gmail.com</a>&gt; wrote:<br>
&gt; when I &quot;change the maximum denominator value&quot; results are weird and Pd<br>
&gt; freezes.<br>
&gt;<br>
&gt; cheers<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; 2011/12/17 Mike Moser-Booth &lt;<a href="mailto:mmoserbooth@gmail.com">mmoserbooth@gmail.com</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; I just added it to my library on GitHub:<br>
&gt;&gt;<br>
&gt;&gt; <a href="https://github.com/dotmmb/mmb" target="_blank">https://github.com/dotmmb/mmb</a><br>
&gt;&gt;<br>
&gt;&gt; But, yeah, feel free to use it however you want.<br>
&gt;&gt;<br>
&gt;&gt; .mmb<br>
&gt;&gt;<br>
&gt;&gt; On Sat, Dec 17, 2011 at 2:07 PM, Alexandre Torres Porres<br>
&gt;&gt; &lt;<a href="mailto:porres@gmail.com">porres@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt; this looks great huh?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I have this pd examples that deal with tuning theory, are you releasing<br>
&gt;&gt; &gt; this<br>
&gt;&gt; &gt; somewhere so i can use it?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; thanks<br>
&gt;&gt; &gt; alex<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 2011/12/17 Mike Moser-Booth &lt;<a href="mailto:mmoserbooth@gmail.com">mmoserbooth@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; They&#39;re not working? Huh... Well, here&#39;s the text versions:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; dec2frac.mmb.pd:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; #N canvas 60 <a href="tel:22%20908%20750%2010" value="+552290875010">22 908 750 10</a>;<br>
&gt;&gt; &gt;&gt; #X obj 298 36 inlet;<br>
&gt;&gt; &gt;&gt; #X obj 573 359 t l;<br>
&gt;&gt; &gt;&gt; #X obj 240 574 list;<br>
&gt;&gt; &gt;&gt; #X obj 198 415 sel 0;<br>
&gt;&gt; &gt;&gt; #X obj 207 168 expr 1/$f1;<br>
&gt;&gt; &gt;&gt; #X obj 478 359 list append;<br>
&gt;&gt; &gt;&gt; #N canvas 203 22 687 744 simplify 0;<br>
&gt;&gt; &gt;&gt; #X obj 144 28 inlet;<br>
&gt;&gt; &gt;&gt; #X obj 198 155 list length;<br>
&gt;&gt; &gt;&gt; #X obj 145 132 t l l;<br>
&gt;&gt; &gt;&gt; #X obj 165 214 spigot;<br>
&gt;&gt; &gt;&gt; #X obj 51 239 spigot;<br>
&gt;&gt; &gt;&gt; #X obj 84 213 == 1;<br>
&gt;&gt; &gt;&gt; #X obj 205 275 list split 2;<br>
&gt;&gt; &gt;&gt; #X obj 98 423 pack f f;<br>
&gt;&gt; &gt;&gt; #X obj 272 371 list split 1;<br>
&gt;&gt; &gt;&gt; #X obj 237 340 list;<br>
&gt;&gt; &gt;&gt; #X obj 198 188 &gt; 1;<br>
&gt;&gt; &gt;&gt; #X obj 98 377 expr $f2*$f1+1 \; $f1;<br>
&gt;&gt; &gt;&gt; #X obj 305 513 list append;<br>
&gt;&gt; &gt;&gt; #X obj 305 541 expr $f1*$f2+$f3 \; $f2;<br>
&gt;&gt; &gt;&gt; #X obj 307 589 pack f f;<br>
&gt;&gt; &gt;&gt; #X obj 229 423 t b l;<br>
&gt;&gt; &gt;&gt; #X obj 226 631 list;<br>
&gt;&gt; &gt;&gt; #X obj 97 448 t l l;<br>
&gt;&gt; &gt;&gt; #X obj 102 687 outlet;<br>
&gt;&gt; &gt;&gt; #X text 206 80 converts the continued fraction form into a simple<br>
&gt;&gt; &gt;&gt; fraction<br>
&gt;&gt; &gt;&gt; ;<br>
&gt;&gt; &gt;&gt; #X connect 0 0 2 0;<br>
&gt;&gt; &gt;&gt; #X connect 1 0 5 0;<br>
&gt;&gt; &gt;&gt; #X connect 1 0 10 0;<br>
&gt;&gt; &gt;&gt; #X connect 2 0 3 0;<br>
&gt;&gt; &gt;&gt; #X connect 2 0 4 0;<br>
&gt;&gt; &gt;&gt; #X connect 2 1 1 0;<br>
&gt;&gt; &gt;&gt; #X connect 3 0 6 0;<br>
&gt;&gt; &gt;&gt; #X connect 4 0 18 0;<br>
&gt;&gt; &gt;&gt; #X connect 5 0 4 1;<br>
&gt;&gt; &gt;&gt; #X connect 6 0 11 0;<br>
&gt;&gt; &gt;&gt; #X connect 6 1 9 1;<br>
&gt;&gt; &gt;&gt; #X connect 7 0 17 0;<br>
&gt;&gt; &gt;&gt; #X connect 8 0 12 0;<br>
&gt;&gt; &gt;&gt; #X connect 8 1 9 1;<br>
&gt;&gt; &gt;&gt; #X connect 8 2 16 0;<br>
&gt;&gt; &gt;&gt; #X connect 9 0 8 0;<br>
&gt;&gt; &gt;&gt; #X connect 10 0 3 1;<br>
&gt;&gt; &gt;&gt; #X connect 11 0 7 0;<br>
&gt;&gt; &gt;&gt; #X connect 11 1 7 1;<br>
&gt;&gt; &gt;&gt; #X connect 12 0 13 0;<br>
&gt;&gt; &gt;&gt; #X connect 13 0 14 0;<br>
&gt;&gt; &gt;&gt; #X connect 13 1 14 1;<br>
&gt;&gt; &gt;&gt; #X connect 14 0 15 0;<br>
&gt;&gt; &gt;&gt; #X connect 15 0 9 0;<br>
&gt;&gt; &gt;&gt; #X connect 15 1 16 1;<br>
&gt;&gt; &gt;&gt; #X connect 15 1 12 1;<br>
&gt;&gt; &gt;&gt; #X connect 16 0 18 0;<br>
&gt;&gt; &gt;&gt; #X connect 17 0 15 0;<br>
&gt;&gt; &gt;&gt; #X connect 17 1 12 1;<br>
&gt;&gt; &gt;&gt; #X restore 478 385 pd simplify;<br>
&gt;&gt; &gt;&gt; #X obj 325 713 outlet;<br>
&gt;&gt; &gt;&gt; #X obj 368 630 list;<br>
&gt;&gt; &gt;&gt; #X obj 479 411 t l l;<br>
&gt;&gt; &gt;&gt; #X obj 596 577 sel 1;<br>
&gt;&gt; &gt;&gt; #X obj 281 348 spigot;<br>
&gt;&gt; &gt;&gt; #X msg 336 349 0;<br>
&gt;&gt; &gt;&gt; #X obj 281 372 t f b;<br>
&gt;&gt; &gt;&gt; #X obj 505 438 list split 1;<br>
&gt;&gt; &gt;&gt; #X obj 535 469 route bang;<br>
&gt;&gt; &gt;&gt; #X msg 333 382 1;<br>
&gt;&gt; &gt;&gt; #X text 41 573 This is just here for debugging;<br>
&gt;&gt; &gt;&gt; #X obj 634 406 loadbang;<br>
&gt;&gt; &gt;&gt; #X obj 634 427 f \$1;<br>
&gt;&gt; &gt;&gt; #X text 612 683 .mmb;<br>
&gt;&gt; &gt;&gt; #X text 638 625 TODO: implement decrementing rules;<br>
&gt;&gt; &gt;&gt; #X obj 102 674 prepend set;<br>
&gt;&gt; &gt;&gt; #X obj 300 210 expr if($f1&lt;0 \, int($f1-1) \, int($f1)) \; $f1;<br>
&gt;&gt; &gt;&gt; #X obj 310 268 expr $f2-$f1 \; $f1;<br>
&gt;&gt; &gt;&gt; #X text 533 211 floor;<br>
&gt;&gt; &gt;&gt; #X obj 628 36 inlet;<br>
&gt;&gt; &gt;&gt; #X obj 628 123 max 1;<br>
&gt;&gt; &gt;&gt; #X obj 596 556 &gt; 1000;<br>
&gt;&gt; &gt;&gt; #X obj 298 100 t b b f b;<br>
&gt;&gt; &gt;&gt; #N canvas 0 22 450 300 test.if.integer 0;<br>
&gt;&gt; &gt;&gt; #X obj 206 117 expr int($f1)==$f1;<br>
&gt;&gt; &gt;&gt; #X obj 151 28 inlet;<br>
&gt;&gt; &gt;&gt; #X obj 151 64 t f f;<br>
&gt;&gt; &gt;&gt; #X obj 129 186 spigot;<br>
&gt;&gt; &gt;&gt; #X obj 179 186 spigot;<br>
&gt;&gt; &gt;&gt; #X obj 164 160 != 1;<br>
&gt;&gt; &gt;&gt; #X obj 129 242 outlet;<br>
&gt;&gt; &gt;&gt; #X obj 179 242 outlet;<br>
&gt;&gt; &gt;&gt; #X msg 179 214 \$1 1;<br>
&gt;&gt; &gt;&gt; #X connect 0 0 4 1;<br>
&gt;&gt; &gt;&gt; #X connect 0 0 5 0;<br>
&gt;&gt; &gt;&gt; #X connect 1 0 2 0;<br>
&gt;&gt; &gt;&gt; #X connect 2 0 3 0;<br>
&gt;&gt; &gt;&gt; #X connect 2 0 4 0;<br>
&gt;&gt; &gt;&gt; #X connect 2 1 0 0;<br>
&gt;&gt; &gt;&gt; #X connect 3 0 6 0;<br>
&gt;&gt; &gt;&gt; #X connect 4 0 8 0;<br>
&gt;&gt; &gt;&gt; #X connect 5 0 3 1;<br>
&gt;&gt; &gt;&gt; #X connect 8 0 7 0;<br>
&gt;&gt; &gt;&gt; #X restore 298 76 pd test.if.integer;<br>
&gt;&gt; &gt;&gt; #X obj 403 111 s \$0-to.outlet;<br>
&gt;&gt; &gt;&gt; #X obj 395 671 r \$0-to.outlet;<br>
&gt;&gt; &gt;&gt; #X msg 101 698;<br>
&gt;&gt; &gt;&gt; #X obj 634 452 max 1;<br>
&gt;&gt; &gt;&gt; #X obj 306 157 until;<br>
&gt;&gt; &gt;&gt; #X obj 335 134 r \$0-stop.until;<br>
&gt;&gt; &gt;&gt; #X obj 306 183 f;<br>
&gt;&gt; &gt;&gt; #X obj 127 483 s \$0-stop.until;<br>
&gt;&gt; &gt;&gt; #X obj 595 604 s \$0-stop.until;<br>
&gt;&gt; &gt;&gt; #X connect 0 0 30 0;<br>
&gt;&gt; &gt;&gt; #X connect 1 0 5 1;<br>
&gt;&gt; &gt;&gt; #X connect 2 0 22 0;<br>
&gt;&gt; &gt;&gt; #X connect 3 0 8 0;<br>
&gt;&gt; &gt;&gt; #X connect 3 0 38 0;<br>
&gt;&gt; &gt;&gt; #X connect 3 1 4 0;<br>
&gt;&gt; &gt;&gt; #X connect 4 0 23 0;<br>
&gt;&gt; &gt;&gt; #X connect 5 0 1 0;<br>
&gt;&gt; &gt;&gt; #X connect 5 0 2 1;<br>
&gt;&gt; &gt;&gt; #X connect 5 0 6 0;<br>
&gt;&gt; &gt;&gt; #X connect 6 0 9 0;<br>
&gt;&gt; &gt;&gt; #X connect 8 0 7 0;<br>
&gt;&gt; &gt;&gt; #X connect 9 0 8 1;<br>
&gt;&gt; &gt;&gt; #X connect 9 1 14 0;<br>
&gt;&gt; &gt;&gt; #X connect 10 0 8 0;<br>
&gt;&gt; &gt;&gt; #X connect 10 0 39 0;<br>
&gt;&gt; &gt;&gt; #X connect 10 1 16 0;<br>
&gt;&gt; &gt;&gt; #X connect 11 0 13 0;<br>
&gt;&gt; &gt;&gt; #X connect 12 0 11 1;<br>
&gt;&gt; &gt;&gt; #X connect 13 0 3 0;<br>
&gt;&gt; &gt;&gt; #X connect 13 1 12 0;<br>
&gt;&gt; &gt;&gt; #X connect 14 1 15 0;<br>
&gt;&gt; &gt;&gt; #X connect 15 0 16 0;<br>
&gt;&gt; &gt;&gt; #X connect 15 1 28 0;<br>
&gt;&gt; &gt;&gt; #X connect 16 0 11 1;<br>
&gt;&gt; &gt;&gt; #X connect 18 0 19 0;<br>
&gt;&gt; &gt;&gt; #X connect 19 0 34 0;<br>
&gt;&gt; &gt;&gt; #X connect 22 0 33 0;<br>
&gt;&gt; &gt;&gt; #X connect 23 0 24 0;<br>
&gt;&gt; &gt;&gt; #X connect 23 1 24 1;<br>
&gt;&gt; &gt;&gt; #X connect 24 0 11 0;<br>
&gt;&gt; &gt;&gt; #X connect 24 1 5 0;<br>
&gt;&gt; &gt;&gt; #X connect 26 0 27 0;<br>
&gt;&gt; &gt;&gt; #X connect 27 0 10 1;<br>
&gt;&gt; &gt;&gt; #X connect 28 0 10 0;<br>
&gt;&gt; &gt;&gt; #X connect 29 0 2 0;<br>
&gt;&gt; &gt;&gt; #X connect 29 1 35 0;<br>
&gt;&gt; &gt;&gt; #X connect 29 2 37 1;<br>
&gt;&gt; &gt;&gt; #X connect 29 3 5 1;<br>
&gt;&gt; &gt;&gt; #X connect 29 3 8 1;<br>
&gt;&gt; &gt;&gt; #X connect 30 0 29 0;<br>
&gt;&gt; &gt;&gt; #X connect 30 1 31 0;<br>
&gt;&gt; &gt;&gt; #X connect 32 0 7 0;<br>
&gt;&gt; &gt;&gt; #X connect 34 0 28 1;<br>
&gt;&gt; &gt;&gt; #X connect 35 0 37 0;<br>
&gt;&gt; &gt;&gt; #X connect 36 0 35 1;<br>
&gt;&gt; &gt;&gt; #X connect 37 0 23 0;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; dec2frac.mmb-help.pd:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; #N canvas 431 22 944 500 10;<br>
&gt;&gt; &gt;&gt; #X obj 25 12 cnv 15 400 35 empty empty dec2frac.mmb 20 12 0 14 -4160<br>
&gt;&gt; &gt;&gt; -203904 0;<br>
&gt;&gt; &gt;&gt; #X obj 25 48 cnv 15 400 70 empty empty empty 20 12 0 14 -203904 -66577<br>
&gt;&gt; &gt;&gt; 0;<br>
&gt;&gt; &gt;&gt; #X text 812 417 .mmb;<br>
&gt;&gt; &gt;&gt; #X text 45 48 Converts a decimal number into its fractional form. The<br>
&gt;&gt; &gt;&gt; accuracy is determined by the argument. Irrational numbers \, such<br>
&gt;&gt; &gt;&gt; as pi \, don&#39;t have fractional representations. So you should make<br>
&gt;&gt; &gt;&gt; the argument high enough for as accurate an approximation that suits<br>
&gt;&gt; &gt;&gt; you.;<br>
&gt;&gt; &gt;&gt; #X text 468 49 [dec2frac.mmb max_denominator];<br>
&gt;&gt; &gt;&gt; #X msg 71 172 3.14159;<br>
&gt;&gt; &gt;&gt; #X msg 136 199 3.75;<br>
&gt;&gt; &gt;&gt; #X msg 149 245 -0.625;<br>
&gt;&gt; &gt;&gt; #X obj 113 338 unpack f f;<br>
&gt;&gt; &gt;&gt; #X floatatom 113 364 0 0 0 0 - - -;<br>
&gt;&gt; &gt;&gt; #X floatatom 170 384 0 0 0 0 - - -;<br>
&gt;&gt; &gt;&gt; #X obj 131 423 /;<br>
&gt;&gt; &gt;&gt; #X floatatom 131 450 0 0 0 0 - - -;<br>
&gt;&gt; &gt;&gt; #X floatatom 223 252 5 0 0 0 - - -;<br>
&gt;&gt; &gt;&gt; #X text 263 252 change the maximum denominator value;<br>
&gt;&gt; &gt;&gt; #X text 194 333 outputs a list of &lt;numerator&gt; &lt;denominator&gt;;<br>
&gt;&gt; &gt;&gt; #X text 487 69 arg1 &lt;optional&gt;: the maximum size of the denominator.<br>
&gt;&gt; &gt;&gt; Higher values result in more accurate estimations \, but more<br>
&gt;&gt; &gt;&gt; computation.<br>
&gt;&gt; &gt;&gt; Default is 1000;<br>
&gt;&gt; &gt;&gt; #X floatatom 48 255 0 0 0 0 - - -;<br>
&gt;&gt; &gt;&gt; #X obj 113 296 dec2frac.mmb 1000;<br>
&gt;&gt; &gt;&gt; #X text 526 305 This algorithm is based on best rational approximation<br>
&gt;&gt; &gt;&gt; using continued fractions. It currently does not implement rules for<br>
&gt;&gt; &gt;&gt; decrementing the last value of the continued fraction form \, so it<br>
&gt;&gt; &gt;&gt; is not as accurate as it could be.;<br>
&gt;&gt; &gt;&gt; #X connect 5 0 18 0;<br>
&gt;&gt; &gt;&gt; #X connect 6 0 18 0;<br>
&gt;&gt; &gt;&gt; #X connect 7 0 18 0;<br>
&gt;&gt; &gt;&gt; #X connect 8 0 9 0;<br>
&gt;&gt; &gt;&gt; #X connect 8 1 10 0;<br>
&gt;&gt; &gt;&gt; #X connect 9 0 11 0;<br>
&gt;&gt; &gt;&gt; #X connect 10 0 11 1;<br>
&gt;&gt; &gt;&gt; #X connect 11 0 12 0;<br>
&gt;&gt; &gt;&gt; #X connect 13 0 18 1;<br>
&gt;&gt; &gt;&gt; #X connect 17 0 18 0;<br>
&gt;&gt; &gt;&gt; #X connect 18 0 8 0;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On Sat, Dec 17, 2011 at 1:34 PM, Alexandre Torres Porres<br>
&gt;&gt; &gt;&gt; &lt;<a href="mailto:porres@gmail.com">porres@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt; hi there, how do i get the attachments you&#39;re sending to the list?<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; thanks<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; --<br>
&gt;&gt; &gt;&gt; Mike Moser-Booth<br>
&gt;&gt; &gt;&gt; <a href="mailto:mmoserbooth@gmail.com">mmoserbooth@gmail.com</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Mike Moser-Booth<br>
&gt;&gt; <a href="mailto:mmoserbooth@gmail.com">mmoserbooth@gmail.com</a><br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
Mike Moser-Booth<br>
<a href="mailto:mmoserbooth@gmail.com">mmoserbooth@gmail.com</a><br>
</font></span></blockquote></div><br></div>