From fad177f1528a333d0c8a9865f3f76604127ba67d Mon Sep 17 00:00:00 2001 From: Ognjen Sobajic Date: Sat, 8 Feb 2020 18:27:47 -0800 Subject: [PATCH] Progress on #85: - Sanitized all Bach inventions - Midi load routine with checks for weird small durations based on common divisor --- Midi files/Bach_Air_on_G_String_BWV1068.mid | Bin 14822 -> 19316 bytes Midi files/Bach_invention_10_Gmajor.mid | Bin 4774 -> 4776 bytes Midi files/Bach_invention_4_Dminor.mid | Bin 4434 -> 4436 bytes MusicCore.Tests/ChomskyAnalysisTest.cs | 12 ++++---- MusicCore/Fraction.cs | 10 +++++++ MusicCore/MidiFileReader.cs | 29 +++++++++++++++----- 6 files changed, 38 insertions(+), 13 deletions(-) diff --git a/Midi files/Bach_Air_on_G_String_BWV1068.mid b/Midi files/Bach_Air_on_G_String_BWV1068.mid index e81a505d242057b43be3a89d31402b80c9e75517..472b5656a2b4503238977a42d0fdaa58c1a48911 100644 GIT binary patch literal 19316 zcmeI2OLLpodB@*SjG=HyV=_u-EL7!)O)RSx0bWFq03pyQKoADRh*YJidKoX|OKg|5 zlu_-eGF?QFVA@MjhDa{D%%V%*?Nz4t_7n62bnkD_8TI!(@AUKl<~xZ~pDuH%_-t5B(SY z^KA5S=9kgOV}B5R{K`ww$AA6H=>Da`y*KV$ik9wQDNNqqC`5OzM3ZzzcQ&Hz{dMpX z*a6q+Z-X7s+U;nP-w}Op^81JPTg-3L--Y#P?kf<=>3<$m%$d; z0@uNH@FI8-ybN9jH^2=?6l|bCf|}Swpou^S?0{{sJv31UFBQ5|SUz!o6M;~JHmZAndC|2 zb-4jCkYiw!c9C{whux&h&1Y!5$auGcp#8|~uuF8gDxo@u=Fz0hUfAVowZn$i<;s-w zv%6pr1&QfZBvz5&tYgGnh&8W*t5}F<7;Z5>v7`PP`$e}Fo%|h%YC4X#HXWjBPIqq+ z@2Q>EbSTO6CM6k5+D-Z`Uk$JU)~CBu-FkFl=OU^uT4|>5b*Rn4P6r9AO&jDknrK*~ z&0(Lk+e~aTu?1RfTls^yMthC^dLAF^WWJW)q5>0iY|)C0yRomGnc?Rc(}x( z-@%e5oM_F2m_esyXtzO&pfj^YL=!t|OJ41Z$Z>JsSx0UiIkgXu$Lzf{vk6^+aHq*@zQFfz{xGQv5C{7K*n&l8STgn=?0voJA z(VkmH2HV+WMM;&Grq+Wd$Yi5%97Q9za2#HYpgC@<2n{SZ+;XTMmyp0PoQxNJU|47? zxCU)!m<8bsLzOeEAclo7)4p<@j2RX*Doye|jcX`&hS}P7hLI*`*mPhR)O3bHU1u2R z3N&l7zU*+B2l@+xHD`<3`5WvhM+TSMhu$` zTlTCNHXrtd^C3pid}*GyJ(~3o+CI=cADe8P4-5mHVWC}To)w{iyff^)S8wR7`riX* z)%Br&`P^#>nLcRE@q>R7JSfj?-7QBG4{9Ks z0PjA_kI4rw(eaXZ6lrH3)aQzK>zpx2#2pm`DnkNsKLRUr-Ko1Q%S1Asnqi!{sYsO!x4;Q97w5c+9DF9DIWjt|IG!)P(x>*o0V}3eAa+Q4s@SX2uZjrMat-7l zW#aE(oI)BfL5v+Xf3`3X8d!B}zN zCvDTK5M)QGsG~PdX5eSgQ>EYe8OEO^H%Ng}Bt7CM3Tz8%fffJGxc7AP@M;QZu5>T9_cG*&?8 zXJ|J-v)BU7gC^+w4E=S`a~3R0@xY_N&oHi3l+7?iP5xE(gYo2~Yuvo??%OxsyE%N= zMgNwMKI5eOZ0z;uvsa?%GfujX=4U7G%}0|TtrRBjt$X%>nLY6#b@jFW%v-puEui200!Fg~2TmYBA zC2$d39O{?eqxvU*6sPj6yvzTm^@;hF&)=p#w?E2H$9yh>#_uK2_fH}j_k_MC*?Oi zp7u|Aq*r-Z#{M$)6{qqiKaQGz=~q3{^_s=bEOst{7an6TpAUQjolopT&L`0M1b*AT zr~OOoKfQmcU+Y@yerYDQQwDvX25p}{Gjp3d!Sm48xa7~#?|y;q7w9|(o#&wQ9CV(8 z&U4Ut4m!_4=Q-#+2c74j^Bi=ZgU)l%c@EnA0_Z#s?K#lo)BW;$fpN392oC#Eq3!1t zIGhLVd)fze?&uuSzO8*+c~(8r=ZVH8uYEVE$9L3S_0v9`_D_1Gw}3v&&obyd2R(nF z=O6U^gPwoT^ACFdLC-&E`Imm3`#NV7*DP|*bI^GX4%?Go(vyxyc~zd3C*@grmAxbL z96xM5$*%l3Q!t+Y?8tYbf1iy$=T7wb82|IH|IfJ-^|=%E$W@b zgMD(=gVTL-)}y9OLIqu~#SY$Zz>0 z`J=|K_+&4wNB#1PI}v%x;&+xjX7M9SUbB7fMEIE{-YoHE$zPWIWywR9JPi7OQ~%_T z;#8iMclrOcJ~6+z6H%Yrea=?rGiRamn={$@%$e={=57%46m*_~&Qs8N3OY|g<0*Fv zm*Y(K^~0I$@|?*%_NqQ-tgkoj4$fEZIKJLEgMIyRru%x+e9rtHdtqN~$*23}x9p|; zkY2^9xVdxqdgV^!>sRv>H+LeBQ+nk$ccOTmfxgZ_+cz{WdD)R&`T3;$rpMF%Nssg@ z58R1*oE3e=seH+gqvl`wRgZMNxD)j_EBf4tdYl!9>~SZG`2^a2sr9Gz_+9&+_Ajk} z?Z;Zz>X%-vd+rL(TkbsZJ`LJF&7Fuk!Sm48xa7GL#XJXnKL(xWpz|Dbo`cSF(0LA; z+ze>v1b38}=b-Z(v~y)1v~z|#PRw)A&Kd45G0#Dp&)p~Hd1y;M-7mjok2}!;KcrW2 zDsJt2+6Q&+s2@f(YWMQpQIj~KXxuYsqU(u#?$^ukMwdU^89coig^y& zxvX-w}Op^81GmTg-3L z&lAY^d6oC@a;bakeV#y~EQgZOhcAPCX+?!x5#&1;6LQFp;zSPPhA7|( zWFn}EO$7MU8eZh^U=$B>crchKgO^I(DJ-9OxQPHyAQKCnQjv)n6pVw%FffiM$MCd> zd?qm{57UO^NQ-$qfy9Av95{x)P4tZ=4oR+A>R!X+lf%i*k?3KU$FV%{ByDlf-onyE zlEWqzpC;R@e<<1QQa8hhu{SQW%9Jjf_yl98VBiUuT7;3y$YkYgl(x`6afqJ-Rvgr?1);#j zZ}GlmeB^s421yZ5AQMYz#$U0N@B}gmT}vq)s#4P=W&EL?&^EDPOF>IRsfa^WDw>4G z-`CBPDLgrG$dh#&;0a{1Ehy>9>XzxDed8MGI>~NCbUcAf)}x{uNX9#j`cau-8D_CH zj)r4IJq{skVW;vWn^&nMPat7P$dgj65=ga5C`u_$8dp9yN@ubB{l}DA`HS-@J+d>f zdmJi_;PG+NIYQ`a$9pA_Tw~xQ1BCQ+bsX4p<5S`3>d^W7`?@*?AKRYk>k>7(@#@Vt zqW@ftzT^h=CC^B{TwwAuT%xk~M_fo*d|O8VJNFo=T0 z^ePg3x}_t>h`A7JUIlrjM8C~2+yWupr0v$1@R0{;yS1e)DlkFE7VU}M3Z>%f{BDg>@-2I}4)P_L zlBG*5`W-B3!iiQn#0)wuL%R)H1fB905l!r>EqS#sBF9C2cO5w%r0uGGcsyqBrSc|h z9ZTfanQyF?-deevA)@SVl}LCXkwhrcwu#(QCz5j5#g2lO`V~&yZQfQfv4|pa2%9Zs z4O@Xcc}!@}Eh2;MY_g)HN=sAgLF+^&8>QnY8o`C*@L~kbaa%=bV3`L6SPs?W(h(Sj zlkuVt3=3@q*P!hTvml&dsB(st#IO)%+E=cRF~fpJrAfZ0aSg@JF!@*`P0p~zz%Z!k z41>DPFwhwW`X&PUCW5?gaG-A*%=67;F>H8)RTUVkFwi1wf)-J`92f?rEh165!?-i7EQTTI3`5Wv zRu;pS!BbTEDoFkW`Em6*)LeMss9zSaCdGdZkb8fdf`dt3d3K^i;9OGqOS7=8JS2jU$GML%yF-^oFnz4dkxS^RRgVt&E+_P z2I#2(J*A+nmzCw%AWLqFP*0#B7Hl%W{(?Zrl{8k+%rmmYf-K5|CgVmD_19?|S!%(e z6w6Q@Ll%<8%g9+O%4V2njtpq6qsjRRIzQRKmg*Zh&U71)2v<(D@nq>!9Z>Sd`*{M}ePVT&XCV;o)bF$Nx{K+vwHz zUcDau_j2?#C)?LNYy6s%?Q2f9{rNMKAM&UD{gt0ge#oEt_p2bER`%yW{?xxe1M+EQ zzXI~7`~5P=C#n5B$fu$Gb0DAa_m@Eaq`qGQ`Gmhe4e|*;k<&cMY2J&-@yTd^5#&?Q z{sPD+qy4iWpN#fj0QqFJe;(wM(II~%r+M?pSv+SzKH={_5Ata-iAR3RAITpze#Iwy zX+7$fU-_S8$x{};v*a<0A6fF6-Jb{fgipL#;?0u3Ecwflhb(y*^#7**$sfh3JS*?= z|7m?ScAlJnG70}k(JZOBK18u!kL0f+n(AJyg7ijYdKWR%o-7mjoFYSl)Do({cjec9N zCD7Kd<|*#8^jncl$>24l;T{6Q0{F{8{13 ZYj6Gi%~zT7^ILycVI)F^V2ub?2rDz;jiDiwZqN+Xq}ta-$Zlo0h+gF(cHg_=D}q&pM3l^GqdvF z3o!blucG<878+TiGW;KWo8Lz>ag&>wPd-L-|1O$)576w7e)w%!{+cY0)O7~KgPFrzK$mMK9A*pZ}H%hzll^ndG#OhZS@e% z?It&uB(ay?_zu4P>?hn@{^p}-{^QxB3G?-dzx@t9^hqdFdW;@kdBiZ~+}D2R_QCJp z-k4OQ8oNx8hGDqA$UsVbW^ zxvMI>#RA*rhHbhemkUdk?05xUt?-474%N|>Azj>2m7T)UK&=d@G*A}?g{wogGNh6i zmCwRqHYdyU)P)|M>#GZW4sB;ZQxaO?#LQhmH zMN@^H(Kb!n$e+Z#An!3#ggZSGT90N1CbR*S#h%TZJrm9zT@>eqdbYzdo~f0LgWc&d zm4sFj2s>QRYLwBmS?9`tF52sCnV~JZ_;Z+UXUy!D8{0HvkSJwTmT1IJxlul4#B7w( zkjmTY!Zw}TRTp-d=2m=S_qwWFr^!4%NyfNYPO1PX@fF6oE^Mp$ZF+P(Nsrb&+ zJiYVmYkVr+9jHIOG@xreHR{oHroQ`FMvi^5NsW`;RE(Q?cN7c%?J`pA9X`kGt%{v> z6z9g*RAr6NQ?8?8V@<8BQAze+rnrL0NNV;?%4O@z=%LF#r!G9q+@r&cF7;e~QrK{J zHcUN4KXWj55Ijp z&Y<7-*`t9!8ql=#WsdYWeSXZ@@<&@VE&cIveiRz|J42c(X7Y$wNd2QyO65dV5}FiG zg$jMe!3z9EQRU>c&B@WGi>X>kP0WhJ>>8GK$tehURNCV6`uORsIE&=G;=GC3t~%eP ziAFPk1nXtOH9tDv0Cq zxvqevteq-g=>kg^Sh~Q{1(q&04k*=gfu##9LB-6))-5;)EOQnCOBYyLOzWe+=>kg^ zSfW2Z4lG?@na>24ux!{5EPY_5XG+=zv;Jc5dC6`*hh%vZ@w5-?xdL8X0c0?@&N+$+|K1voF#m%EZ+B{3To`I1lj zYBvA{;6pKfbfZl(l5BBE99;{rr2=NxTClT5Q?h(&@Jdb5vG9_98tkMrRe15)I3%(t zSc%BsJ8BmZ3vZHOl$c5#FzqEbu}NJ_tkY?5%2QYs6UA!mo{UEg4kR+BBQ`Cp zZvc6C*)iLdk%vJsE@oF7KpuO#*8uVj-V;d!8EXLf+ys!fT(Z;9$wTLqv~gF`0P+|= zd9?^ZLX*1$`37&Z9vqSqwdMnPAISSa-p6gGL^1ODaf8&OpDG})*mpU-+UUy}mUtXl z&8TgIH!bw)kL+54QMVix0M7zVg8q^aISXN5qq5 z*bJ>zVpy=FkcuZ&MJk(Axzp4x$&yqayN-Qc&9ukub?w@s6vx$4U<)d?RBu@&Rmcx2 zyp5Vvd$A*ZsiHEcp}-aewpcb#*O16HByx=xa~dxc^FAbUjhA#961f(MTtgz) zcn^uoTbkb-ZfZ#68Zs#s*fuw?M2^e7+!Fs>9ayVv=e|H9*CLT?NaV0I(2&SAgip9S z)R4$wR7~6EWSO3ZM6RJ_YDnY=t#Cpl^0Soi-xTDyh(xYMB1gLWNS~d`Of!1B1|^or zH6(J)F9G*7BytP;Ay~4lA(4*}4LYlZ#=3?s0yp{^5;^Fxr6G~$b|8^k$e+Z#pOg2P zDZ-te7Kz-1#u7Q~*}T~^;jlyw=XXH8q2;iQXPRH$^fV;$oK_MDB=S6m{MKe*%&|mn zt+Qo@SRy~kbTKX$%x-~1Zv1449MOoM#dY4aGBPxiSR&Vu$TcK#J3g^{T|*+5_#_$Q zW+9OSK#8v~4vAbtA|Fe+L=1@>cNHmzM6Mx`Ye?jIpKFTA2PAUi9{=&h8MFA$l2FLb zm}PV!l<{#^a6vgevyOk}J!*dPUBMrYO>W;hc!7SrMjx6}@Ixd0d?-Kb{%W8_aMsY+ zv`FICNhUQ-fZ52$jXOpX2j2^Cnb*Z$fh3NdEhE@TMiLj}YZ@=3Q8&fLnua8fdXj0b z7&4NYeZrFXm(s%!l6WYRcqlSz$WI0vA!Jnavk$f!+`#G8;&oBTdI))3eYSXmsnslrYeuMG_>^RoEH2bOSI9GA~^4J>8tR0GQpScbqd z1ePJN46$)Qsa^;yLtqIiW}!&pIR}Ad&LUtL0!xc&ee^d&U>O2S^vB16We6frh7hX*g+I@o`K{w<>WrWW3xTBrL`3;#N6iS`_e z3?4%Uk0FD{A_&Hi!DILz8^OxR;P?{95WvvKh>^i#3HEq$sU1TGkAW=gcGyTM&PUj6 zViso^+%znMe+gVki`XHC#vo)YVra~pA&VLFPR!|FjUk4{C{{7VP-G^FA%?~fLvs^= z3l`+wF8XPH6>1>*ZQPZ_5JQnK$(qcRtKAr|!-ryA#89NR2ZzMbwHVtdW=5^W5JU6Z zL=3g?5^U2LVrcHgXXB8_q8MUm3^6q40`n$`A%@0Gb;(U^QpYlQi+SB`K@4qS>$KRT zZVQ355PpjZ(QZKoZ;2R+%UO%JK-;jD#ZcTGw;+b1FIHuRtc9wDbvi9hc?zpyqF9aH zlkunp8Qhp=8N4N|ZvlDO?wBpgGB^y1aWT8v0`l0$y%vyfK?ZLjV=W+`n*j2bOLiJM zdFY&yHttGVKpx{KuNEOlXmXbz-+~Mdhcc97WK56A;6E-Z z=j8QQZ{4JSZ_!7lYJOy7?~kNv{>|bXWbYbe?;2$98f5PpWbYbe?;3=w8f5PpWbYbe z?;2$98f0%=jWDx`s|%QUwFW7x1}UosDXRu4s|G2n2HD$MYaUmZF>|p7*}Ddzu?C?L zzIoPKGN=88{%iOtHpN4^OGacxuLjw>2HCp?*}DeWy9U|22HCp?*&8FLSy$E)ZzUU& z8S%&c^~l>(kiDyrPOFektB}2`5HhPkzY6rLK)(v~t3baBArn{qDuhhTNvja*st_`( z5HhO}GOG|Ws}M3VUsWMwq90(6J<^0H%di<*tHiJn!CMcWyH&{ERmk3$c@>_|!&|Yi z2v6p!U}F_*#ELR5bHtihmem(d?Ful+sa|13L&!! zA=9$yJq7HZ0(Pg^xpUZ$!vDb9k1`?*&+9-PvUeTTqYl}-4%r+12;)u6S*U|8b+Dxl zw$#CvI@nSNTk2p7uKIPb1#{9m*ir{u>R?M9Y^j4Sb+85VRUK?WKfoM&L_ArB&CpsU zh6VA~gXgkyWfzC2Y*OV;Q@iZSW7o0ItC{w=y{=tbR1LCs4QxTh_EAx#zNIzf2Nlvr zEkU&xJJOdbDsvh&u%!mJST;}Nvt3tz3ATWHc3g9{G1;4*E>5$`K<%l{&F5a6^=5zT z_TlWo{%mh{@0G*b`_}(=NA+U*6Fcg+)!uV2{^7wbbHmGre~_Ag>bZlL_+88Y0eBLq AwEzGB diff --git a/Midi files/Bach_invention_10_Gmajor.mid b/Midi files/Bach_invention_10_Gmajor.mid index 7e73dadd8c81c5e0c5dd9509a478b723682af5eb..c12e78111104e90dcd62d96be9277e652f45258d 100644 GIT binary patch literal 4776 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 0) - list.Add(new NoteWithDuration(new Fraction(noteonevent.DeltaTime, 120))); + AddNote(list, new NoteWithDuration(new Fraction(noteonevent.DeltaTime, quarterNoteInTicks)), prec, noteonevent.AbsoluteTime); - list.Add( + AddNote( + list, new NoteWithDuration( noteonevent.NoteNumber, Alteration.Natural, - new Fraction(noteonevent.NoteLength, 120))); - + new Fraction(noteonevent.NoteLength, quarterNoteInTicks)), + prec, + noteonevent.AbsoluteTime); } } else