From 5d0a64b8511eb94701691001ae65c98b68810b38 Mon Sep 17 00:00:00 2001 From: Hendrik Langer Date: Thu, 27 Feb 2020 15:31:56 +0100 Subject: [PATCH] loopstepper --- Bizet Carmen Prelude.mid | Bin 0 -> 60147 bytes MapleLeafRag.mid | Bin 0 -> 12302 bytes OMFG-Hello by Bagio.mid | Bin 0 -> 18389 bytes lestoreadorscl.mid | Bin 0 -> 72213 bytes platformio.ini | 1 + send2.py | 57 +++++++++++++++ shakira-medley.mid | Bin 0 -> 65285 bytes src/main.cpp | 75 +++++--------------- src/stepper.h | 142 ++++++++++++++++++++++++++++++++++++++ starwarsmedley.mid | Bin 0 -> 16000 bytes wannabe05.mid | Bin 0 -> 32944 bytes william_tell_overture.mid | Bin 0 -> 28766 bytes 12 files changed, 216 insertions(+), 59 deletions(-) create mode 100644 Bizet Carmen Prelude.mid create mode 100644 MapleLeafRag.mid create mode 100644 OMFG-Hello by Bagio.mid create mode 100755 lestoreadorscl.mid create mode 100644 send2.py create mode 100644 shakira-medley.mid create mode 100644 src/stepper.h create mode 100755 starwarsmedley.mid create mode 100755 wannabe05.mid create mode 100755 william_tell_overture.mid diff --git a/Bizet Carmen Prelude.mid b/Bizet Carmen Prelude.mid new file mode 100644 index 0000000000000000000000000000000000000000..5e315e60a0828b8c1b86b3b5d10ef5fc266a57a5 GIT binary patch literal 60147 zcmeHw>vLSkm0v^BxV<;F$BOSpo?X>7v?IGlCLoa`kO0UF5O07WKnxxv!3$Cp$c6-v zAOL}seI=Qm0wj5}<;pHefRG&+U{xylu-_<>l9x*Z$~&n%t5TK9ACSKwACk(Kl=3_0 z+&j~Q0Vqf!MQQ~VbC>nCcAr-5Z9vlFk6U#k4;%02bx$H>WL?Q_-*y+i6@>^ z>eK!w_5b;MbDxGtI90pCPlum+GI|TzpT4A`QeIG>K34(2lh0Pte=QSlk6o&)u52Bh zy)ZUaU74F5n|#xZSs4c64DFnua&YX8H^-*Vj+uy^*)cO++56`Intr>wcXV>}_0dXU zwz?Y3PF8XSE>_NtT^yVJ88TUvUy3RJnNY55zc4y6xxaFB@--rQ;X)Jsj9t8R=Ebp# z#cbbiiL-sXV{-J(OQV&0)IUF@Zt9E5`7?FuSv9izaz*9EEBz+hubh69>Q@Q-*<(^Y zD$#9H-6|pJtuO~oYEUJPn$%I1kaRg_45w0ZCY6iJ8Z?QU6~DY#QR!b9RBFI@14<1V z59wpZKSs~gF_o~N!egIF^~E%fnd~v;*f^3NHmPBi2uvza2}#?SF~8YCow zGvUpOANf~uN*yuY5v6j*L%O_P!p&FGR>Ik!xeU%~H@4QW$qp+=Y8gMh;kf;VOll}@ z#bM(E9^+684V$eniKf);h)ErxFPF{5khuLqe5-!?ij}oj`j!7kn+V-+r#o#N&Q|BP zhu&k|oqY79oBD7;QmHFPjek_B!1#euM@{x94O$wy{RX(v@QjBlb<#s7dq_D)O!kO! zq}xi*l)NX5e?qC_#yhUm3F9FxaLM&B$~tB|h_kpX)CKjMuhp<;N=KhBG;%^uCiMkZPq}(pT?tIZ zN%e!9dd9heE_Kp4H}xAyJ)5|4Qk5u4b>)=tPmzq<(U9B*I~vl`rC&fp+7{TVvdpo6 z^nFX>`7q2}NVWmv!X%P(ugUh(n5S_*WU@o*-E&>0q_cWgx|HfRUbj*`#_Lh4*Lb~3 z^%<{^hVmP8Lr41p+kgC0@yAxJpD5pxD8d4)aQCIrR+zjf% z#3CDU$oSxYz@QL33;aYlq9EjL#LvwlxgHaumHJJHmXT-91hDkP1_c}H$}nsS-JN7{ z<>2x^j$& zje)*%1)uJwevOC$^tz*uCj@JPB(Zl=p$fw($UHD~A`*Bm1YJON3ljPq!^H$ zl0;iAK|)aoJp@k=0|eJ@IH_?Ffxn%%QFfnv4x_ zQ0omCJGSmO&2`$olO-+{iPTc(>w&;U1rM9K^KiQ^(+Ch#HZ~cFO_AFy{pPFej(jUe zk~JC_OHCzx{+NLVs3yPBiiLcy5PqHv z!qrDNDx421E+?-d!T>k$!-`){Rd}!f{i}~bV8I1v32>&sR^lq63m;beC;>PADpXDE zwLIDYL-NClyi?$C&`f|smpI(edXFy9aFN=K*g>@6Lqr?E>?4de?DVxb*cS(aCOgxHE zz>d86yDV=u(`|OoyHA|pYP)gUmFh5VhfzUK~ zjnjJ8u?*#ED?Pu@`eFN=ISa0Ktm0^T(4KDlW?IFMix0_antVtY)0eN_$A@e;e!H5l zvPFpakdayxA2QaFg(>v!e-KYV|54wW>9LEInd}SdU$&`RG%il7Q)x9)HC6GWBz(qe z<#yv&HL>d6f=6~ud`2X}5c!PPHh4WU8C`1UkVV#RQtc|yYErFndNUiXIE5}&Q#@T< zwC2Qy>@?ZVVnhX;<%u)J9Olf$TNRb?8U1UIkIx7WodSo0CKL{9H?|(fsu8iKN$B`V zA!nJym)4N9gmPmX!QUKHqIZ&a>&fY-3`@beJm@!?yD|0Uy`#j0vEUYk-a#%obXlfTwrvJJ{yVL2c!hcU zHiIdBILV6r*CM>zU;+WtUkasc1HXegjWyG?@-n{=r@tDo$%drP3Pn6R2XRNZ{9P6< zn<+9jq@td89|!STuW@+}*u}i5q}eHS226H<7SLq-;UKmfg}G##q<0N2B72t6j57R7 zpvb&3dymoVGEX)~bId&D3~fs@&0J`-rVmAP3FLNyCdP4x@jwuHzYNVGgR*D=(2)A7 zebif}KC0Suy82oxrmI_(YBfHd?CGMuJ{qCJ_^5t|NwU{ojW!V+(F*dm9o}#|#BJ=0 zs%uRqY@(J7fiKTC6F`4-8m|+EBBrbH?^=&>p@J|)jX89OJ!Xf}ROIiKzTWZ zN}O=69WgEk<&ZZZC^RV;IENQRV}xj=Z-EIAKxh)LPNnpDN57H)g40PYaoW4qsgV8E z1avWePda+ky#_7Qod=XAtUY}pp-ozkrS)qmFb6Q^tY0VH?Lv2V6HDU>;#vUhRL%s? zS)WT>gKh?sxAb`rMI!5DVHTPi(7UBCD2@5)sWfJ*^^DSQV6NIhd!}yb*)+5Vrmd|| zL3RAKVOjGEko(VBTb*N&lxC&?aHz2`XI%iO9XE@k_d9OZ=W)oy{i5|lrHJZ5=ulQBt;}xTSXJu_nFnkAcPjG9zYGOS?yCO+)fob?S#|BoobSFNhs3KEM5JGN~q&Xf&xt zm5}sSn4KmCQ51XolrF~<9HHN4Qf-8jybVu#0ilLYlekS$3Pb`b{RPN;QKKUNMZc6< zxeqH!5p(I@#>_T2Q(!Bx&}PEh6+cplQY=_r4S6`_^^_WZC2jXhYCGYu(_9t~Yd5wY z+aXzWkuHjwOK(RyQI@84bfI?-gZFvJm^V44WkfF?yGI2c3a_8J)FJ{X7fdzh4#heA1K6B+A( z1D^*i;oD^aE=rE$Mo}F%)C)YY9aG@pGwQ|l#k3&d+hrZ3HX;5GD#xxn+JprK+N7jj z(4}q0N29UAjsjPx7sE-=0}eX!U7G2OO;}&7F_xLolx1mzj#MMfTcUNLP~jV5#lwa) zwK`%y;7(*Omw(Qwyp?VW(qN#C(B2oB50->1};6V(3&SqGTal! zqR<-0*?f+?c`*r&xiuRf%B#`%jVj9RBN*qa%xzwZQV>_0hy4~FMA+|k90*biTZjEp z;D-%-{8bA*a1_e|e~#`;mInS39QaFe%rCLPiX4LVn7aTyew%iu9FIs1C+Y2NeL^kt z!hx{Deh!EI9NP1OjVf4PGnAl>DhT@>RkFxt0pAit6(WBN2%z0Y*lz)<>^8!FLhQJM zu%BR!lQsei!!86nP){Tw`6=voTL-MDSlmx2K=F1YLCOF-n{H!2AP6A(2Hs9N*fgSF zAw>ZJ2(;5_a(r%UY*IPzEWjhWtw&P}Ftu*$Ghiu?--raB#ZDCj{&-{HYaTcRsn-)g zm%ty8#~tB&N<~oerSwD^F-W*mC>&*-SBUKqS46Y;-4M&TtuLgYzT)U#QorFsg`ruY zd@1^ejVgt3VKMXv)0Rdz!k29NQkpH!Xi*p2CLLA>fo0KSG6jG`pRHTj7_iU8qQMHz z9WA+|B_Cx31AS41EqW*F)vhEBw!YRh{wcl-g_jy(&uA z;6)7(YC)k^Is1&iPpOxU|FTk&&YCc*RE-I1C}W6>pfv;SUTebI__-HU_A0*_L|`g3 z86VnQ7?8ARK4?GS!2md5`~xuql1A}0wP0gEDC}2Gz41|kFd%6uTFR_5A!-3yGoZEK zgs81N>p-QB97Z%<)HrJ40Hm5eoYp;Q-J8}&(hDg1HWb%F9lgl83!qg?61YE&eUl5Q zQyt0NK~En|(7OYqC5F-j7)Vj({iJ7robz-a5!AgN=EfHGE8rdWNQpLVED~RZi`*X- z36ATFMY5?xMW#Unh(i&DK`@kt##}&lpLoipbzg={M0FfkS%9HtDDmLN5)o$L5`B|K zz7$zx2O_=)l2i+ye78X|)u4)o60irs{?W8Pme$A9dN_@Vvjtdz2dUg3y}j05B8Ha?unQ!-#{~G$rj`uNFE?HH^T*V!`j-jid2S%jm_6(^I@!@LzYRI~0dM zqfWJ}k%MzHi`B-jR({6#8ReI!tBhZz{GS^Cr!me?jQ^7uvpg;MKQ{i4WBhWOc3I{0 zpEv&V%HL)DUCOu9oC|$13PIGVL|K|b5OvBagJTu}aKR5bjqVmpgt#s?S9ZFb!}3~7 z9R>b%Y=Juz1dO_bS`<06$M}0l=4AI#i)PWTB6%?WFI!4A8CPuPxSdJlda9+qkm`En36l)>gfX#WfdmuRuQh(H@?sKX==yBh`dQ;=7U738Tsg-9Vy}bQPQ0;w{1v6(MgU-tH7k&qcAC>rIF@lxLj@#H55u0ZX*j zYO#rg!C{1f_(YH%Y*4}hA&x%6XMy1C4~o4cDE!iobyp6pm%{NLgB&;+!eJrKB8=@j z2%0P&Gzt85Xo1wR#3C%VI|##oJVq`SNDX5RRzh%3sKsWJyrWMfbbw`82|eNrqf3!3MhMV9?eV?K3< zcUfgo7(5;qdV(34N>J$n5KY`dHJ{E98SA4o8FU8Pk(EJXWbe?@sV#SAIg2t}4;U98 zOwu(b3mw>Kpp;NN)D(0MMt|&YEM{oXWo($ch;asM(}t<9jUCE1DU>bjVzr$#%l`Rs zc;ehr2<$qLRx(gvcw6cDD!WDA&!HpjxUmp^ksC|$q1dh9#zIOI-PlEzAbn~PZtNYn zv5Sx^aAWU?8@mW81~>K&d96bUdUwF2@k>0)BxT-DugRl?51S#^xW`%CuKUWnM-v5d;Mvt`hbGvOLa=(6(%=<2rvC;CiY-cWVXOZ zg_uiY-6v6NB>qP-BBf4}z(oF2^a}1P5b0F z^hNb=eDx8@nv^<~!J@MHs_XSR)tTA<)&8gO07A8rn>exowY09adoR6R)RiE0y<8~-d`vM1kO^z%q z{It`YHx!)u9PFBKD{j9G+^*@Dp|kU)tS{w%M7Cix#MJeM+`G>=D1YOhxfzmaxe!vR zA&00da>3P(a$OzQvxOi2b^c6Ihq1@6vWKtpWj^3md3QRx?}rKmRk^7kY1AOeb4ThzpkX-(~wJi#A-8n9sRLhr9MKOyYPZ^ zckxAE@kK6!9UO%m1H~7E89h{daWoCCRXvq)ETfMnuS3zdQyIe}CHti_#Q})dct9 z6z51V9OgF}m4J)tgEfwH8?hl?IMLwq72tPM+PMxV1CtyteWYhElTj7Hm6QW5l|dsG zz%H03&$x*ObrH65oW;p=ZtIcG$i zb0dD4bR@HxPLzfr)1IS`4Uuns?D;BNu-}-u{#;H~=P=Qro`cJiQ_to6=O{e$-m~@# zEB)(}_TZND5DGddo2y3DrZCgt;9`R3DgbygHWb_0P^`Rbvv3EV;1Nx7f}% zE&pE76h)))uaspAzWeHRZuhww9w_MD=ybHo8GXDg9U;B9{65dce>OPW5%g!YJ{UmDnKS*pj2SBM(Iv6y*71EDtfhKDW(% z?RjfV!dzx~?aQ+{M~gG%$?AvpJ~U!hf>hCGq%AQ$SM!m^f|tmi+}dvCEK$$1)98gY z_p@8s3MIR>yVP!F8XJsOmThRK4Hm0tDZJz!FC(JJFI%|}${w)$&vx{_JqB(3uc18v z`vG%NFd^(G&m~#Cr96scE1@rAsM>jL1s0{bp()*@-hJLSRAtL+WM`Hdods)C{VujP z|5(D3V^fuFl^M1*EBg+=P>f2>{g0!O%d6Cg`s+Wne*DGm>p#hzA!U(X%vTrA$&?(asO?d`q=Ue z=c|?)1Jxdorv-zvDNaKeeqQ*&IPXEG(-x313_2|_9L8{KoQ4~}9XN101B#j=Z*!o8 zW^*Zho98c+-hzLpD^NW_ypNUAIEIJ!v2IMq`&a|j9mM-s1JxD8`&cdb!=Q<}3!l&p zO#xyAiI#x(vC@Z#Acq1vRkt(X9e@EmxA60R<*o3yXuWNH<*jR?t!($G$`g7b+EAN4`Xn*71$BhKtB2inPd^ zNQpO5pcQ!&MOvd9X`Lz3I$NY=Qn(pJ{D}fB@+VT*QBkPl`Hi$Di?l8j`aqE=ITJWZ z#fd25^E3r$D)uLqpghrFwjNPS?Sw&U6`F*_FvW!sHGBvnc}J)`&MF1NwCDw>C8%vN zFQB%+rs_1vEdwvNntA_aC(A--Tz7^ z*Op+h9m3=q42_Z?#S#=~XOJQLBeu8PCHOUMWYrX5tVY|(FfXXllD-api%RtiD%c%M zefw7R!|>C3NU+ekjbH=AuRDl$>k)ht#s0YAV`TIM(W)R$liy2Yn&5UiW5K^n+Agb@ zmQex&la(Ef1=89Q2@u(76Chj0Qgo!y@E$s^#^=B4 zK){;-xoAn(;stL41O?gz81N=QW<%0@x#(IhtuEkAfM5ffZhyd=0Qp%5D%b>AstgX0 z06Uzq7BnW8um%$T7o42*5}dGF!syT77RDt6^7zFdzxWvY@sNMg!bbtH4whFT5}1WBzso-=|#>3uBs>Rf;Sy5(E>^$h!XLFOJoX#5|JJ1o_Mv^ zYbKVkfD*-cO9zShlGT%dQ5Jw{^<)y5XmD4`OHc)v9NaouJ4t9IYbU*>7Ob5lFs+?* ziB=Ih0U{{8*`83+HqOToW0(^GU)z{@YFe^;-5Pl3Oq>eLC`E;l#xfpjA{ z*ii!OJOUp<_5)-=(Q1D*%ooFv;e>%14L0lmFvonef~SoGWf z0A1XcAYj*)r|JW{8{6sa2!!q6lnad=p=!5tdHZ}bh3fAq{1)|E1tqWc#xWM&QrWSa z#jr$Opiy^YU&A*TXMaHYvoW9*fY6`&6}1n5(mt?1H*Fut0yJ8o4QX#k0NW&jz=}cO zZ5PXn=70`~gg)P;IuOAEafyIHllu(e5EsQnV3Yy^W?m!)XrC+gtzrQl$O0%3aG2c; z2W8nfC=2|&5ZCJk=BJu@mYU+bSI0aHM0iG5LB;~kUe!_7n^1MBH)(WkExRS8wO)#8 zyu>)MaX@X%<^pjCb{Ybj2_owa`(U_afq*+{(LFH^Y&GCW4GK7@fwY$JYq!>c07nzh z_bjxQjU%lk5a6J-@L6^Tw9R-o!jN{A-+fhg`yb#nH!t~*$go?5Xj`?0UCHN@8{gffkt%D zW6{3l{k)tq7Zg!OE`c>!S&jpU-RluRM+2i0l1ro= zDg>ZF(611{#m{{)1V=TXU!hJw6C6|vb+WsF`hX4QVy_4H<@EtCY#qo-VhZM??SLj! z(Z1570g?U-$QSPQr~z0O$}(I&ppWjuvgT48Eb7IeM0`|m;LyILIx=MW(*}af zhF-6%85}lzz_!fPazzrT8cztO@Dme(bUFrCUql-@FW7}Zfz>DsjOkl}fKF$S;Gq&Z zuqDyc4-gUM66Rj|J+Ju;?bs+;VBE|ZyexRY?guCjJ)}nYHn`Ltvj=DCo9$R$+rcTf zK6b3L$HzLe+~UY-7D(hkvoj5418D+J8p=lC5+sncxYy{v_$U1V9kof#k4vX)3+N1I z?uHaqzzCK2Bt#AtE{Niaq8X&|=Bw-;xiI{}OTqj&l;v*x*{!b3Wbqdx`(^yW*<)1* z;#DD5$o)IA?Cj0Kd=M6bVH7^Y(OhXgl!?Q02zS{*vNT8JHsrP4hB+ zyWEmPv#={Fja^atWSWo0%9I|7m5Hy2k)yCOd=!>!AWrKGnRw$cj=oA$#49#w3+vpT z`loTI>)S&U7tV}Mj$Ks${w4J{6y<7Cr)X{5+{|y}bfy}E$X0a1)ppX7YpbVF*bbd? z96N7WdTvIJD3PaKd^w@}SIo{^p0*3VKb`V&?Yw2_%_{IW0d=cimAG&duc(#20O9X|G~OS5iS0spQgspe+zLBf7IG#gK< z?lykllVan0)Fa+~6%>+8;W2!^xA(4YN<nWo3mY^Mp(e7eprpyb{A)C+k}r7a}1Z{I8lNY6wyXX&`!o^clD__$xZP}F~{kW9Iuw3jTX_) zl%SoB(eC2pDVyW5Vvg5Ja=c!GHeN)VC_y_Hqus?h+!0|)#{HUL_>_~y{1-~{PsN!S zZMujyQ-bzJjAn~LAG9BH`S;mEq-cLWP<21Q&(aqeE1k2_Uz-NBn^7b(o)ELKta+S7 zC*6q3{ZgL7`h1n$ab@$+rnW%A2zcU+*a-OJPMl&?**bb|wDPUWnaR;h6O)rT(kLbf zvkgu0+jKrmtM_yKM}5YRkl)L5e*80#OK6tnj8)*Y8kttVtldoLkTsfm8DQxl~{%0)l8g`+e}xhVb5 z*w~JK{Kf8n{1byCJ>%_k#q{;>yg&zi(yA`D;0x)iRex($S+>(f)QUE{``ftHoMRKy zlep3HV&x(AA9t&J)OOJkhnFiVFE00oxbxZR4^#arVLy99y0X1Hq)Q_uy%pwQm>N`x zqhabOZr$c|Ic5x}QgUG`M`gM9a82Yg0E1xy$%_?FsESH|c~Gf=kS=!_3_YZeh5j*m zrjDtE{S;pN!cnU7)C2g0dwi6BqnM0@IN3|PUZ#c{jD@SS_KfU3&J%_^7 zP~57+p$~YBLoGHOZiNY&b8k0=9)%J4Sx;ZEvUVBkVjgLm?DVHEJ{BLZ{zNAT-y=B} zAIG|UD5R})M?xRN?@)-%dQN9Zcek{Mw1BoPqz!Z}p@-?Awvcv>HiVd=by`B4N8<>j zJ*3-CC2w!&W1qs|kgn_K4Lzg1{mthR;--jJs4 z7r4KtJ4BPD&?Iz2;>L8A;lLpw9zTgPgfE$e)-xBn5NP)EXy_hQ%6=XTT^7Z~r~Ova zHU&u^4SihJ{OIa>PdBOMlh8J$=d`=JBdI%G-R0^-E??y3YC5vn#STiGl8U9hy5Gej zV(ggIL#{sR;!-Sq+{JbD`h<(6w0xq9i>0&CUH7lLxJe#orr?%)J|!ioUvqIviXM0Q zbQG5^qK6+EeQuo4?((@OuAX-F4BZ2@d=k>!(#~r6ROn+Sz*fp%p?cX7rGHmMX+bsH zz3b2Gb@#XQc*Sy8KJ0?@$On)oU3uEu(Vh=!!FPTN!m=ap(0;Of4v^M7Z7*xj2S|71 zJ%;lIc^&x>KU(tvUdJTnW`Nb44{6CpKA=?)oZHXS)&aj29u<&V^R)E0JMVMZbe?=i z-Uq3Ue3GeGbE$;Wo+lwMZ`(lw=g!~Ln;HGHUHa!4 z9q!U^W%S!s`kjpa#V&n0qkoyv`Mt{|eDf|z;k=98B9cCoCnY5{lG??bU%sdFDg8@# z88y47FFVW3(l78gD*hdZif8EC3~kOQ@9DQ(9lHAGiDfioHvxX;>Nj0|DY1-_@5SOo z;WL8mi>{u9C}DvDv4VZjI9h2kxs033(HyQm$FgX=cDXt4f?jK$u8NejpQqFD;|8V< z(3($j!zVdS-?lkVTNqIfwd{w*!o6kWYz%4NqF95?A?;Oc4Y|97blGu7NZq9?r0&%n z(x#!Fkha^1=IskTy2vr~pp(S(9}4{;Rg01m%WVI9L!mcBC>&qo=Rn?pkIC znLr+Iy@5RW4*lpOn2H$4`vc1F%lm!G8_F{YdC{AP`uF)eMY+51qKnGxF5JPVuwi7m z4_y`9F%5MrPtM3t9^5IWjc1aJs|N3a(@$(fZzDFW@6?kIQSbgd2juyg%LmZBgL!gx zP`X+k&Szlx6b}erhFyLSA>-xadG9z(bn2@)m!K!8LlkGQacFjG`2>u60v}5*gVht% zEsi?`J(*A4!^HtmGu}Pi;WGKfyebNCMvYkpT2MX|4)be0H zeGeB2z|nAy66&j&Wta)~^r*9Zj8M;{<9ifw%r-tBp^+hRERR0;Ix{5z8o$f^L~SAo zPsRy|8f_&>a9PE!Jxq0&%vifhlBhgjG`C*3VX=5&B3xRsZU#daEh_1r5Qm_^H6#b| zXqY{!I;>C983H#`0J!8sbwa)rIoR=O#JAt^k+<(7i|_1_xG3?m9|&CB{^4-$JlyWf zBnpm)EE_n~Ax?jLsKkJTu4Er+Uf-)Y_+whLQ1Cf$Els=mbtNP;gm>dv)p_>)9F!1# z;HqA{>^Ae`5Z3e?;(tuFkE!l42GMUw^ikC@IzLXb9ly`0_A{#M%=|bR5&XWB?opo~ z2gwNBeU@`WV&XG-NJZ(J@(t zA|d|e*1rtj`iK2~SippReptZdQK$$xD4)SZ0JZTDW!hxBA5Lw- zaogKN>~2rk&!#YigQ6NkTu7FX^j4UiVX6~b9{iqqwof+O_XLY(Y_vJeM^1%hHb zIYK#6@q|MWO6n|Z&~%0#(%m81ud#bwbhU+6YnW<{`R)$M`7Xzlcp>}oQLNR*jQQq^ zY9sEG;Eat#j!?FR;k}9qMG;CX2tomo@_Gta55Mh7IqYN(5ksxr*m_+d4i<4lM#fJv z)FiSiEhA|*3L|NHe@s^Q6rrRJB2Ozq`RLkYr$5n9`eI}8vFlHT2xTOz)Ure(C3YyC zOyZ6$Ass|2UeUqO!yfGB5PJ}!2<5>Lr*Jz0k!WQc-Si<`+Sz{+L1V`?A8c7|AuR!p zqo*V|4u<~0C~8-zpNQJ{iQNK@J;Iv8EKcuh3F+Lv_(`$X7@x#+V@SCUg><31{cH>A z`Y`)xzm;@%NY1wXEXT1aNSeQfL?0h`Jvg$6Am`%|S&XW;S!5CZCC7dWEx?X6`qqw0 zrC9_LNbO;%fZ0*0@w9KOh~YtRsZ#CUCDZFsSCbj_=*O?Vvs{n35yiM8h=&>L*#%v8|rx}`^QMO~aQoJxWS!v2$!kO{NqJV{-v8v8mP)ghYk#z(OqVXeZcH)uMWW6b_ zK2iTIcJ7h|=Pold@%Gy zZ)EvS^h1{KL_d~hEe2%CPV|PC>_ll^vJ<6?HB0_HuGx2~W^_39=;Wp87u0{=t=5R_ z33gmFb2BS)3$E-kDNolKoZ95`CE~u|$hv*OEKdvm9=h5*!Y`+3msL(5E`N`S&w{3O zd=~V^baWPU8-;%;R1eDxcYq!;@Sd@2EWvO(BN{I9!=Q<>dW@WvRk|ZbD*Sn?UEY*- z6Yn&uT#NjgZ@~t;v2f~veD4Ye0=XZ zEo-hfQ}xQ(ZyZ?U^(F^Me06(3mO9@lU%0wG1X8UDaH>R1f{zm1Yv^3TtO>GlZn?T0 z*Svq}OWF5<`){q(m>;j{iCy|!W~D|!@19rCwpD99N%;H)S2(C z@pS+5D;Vqt3|?P+X5|2Bwx`$hrCmJTU!{M(ONSZ#)-L^aM!!>~f05Cbcgb}B3St{F z{&CAYRv1W{M>x`S;+)(y&&mZ2b!koKe~9UR%=E9|2*fr03*ylQD+kPzYxYxR;VN+5e3G`S(`PevRf^Yw=|N_g45bfl6_P{~201G{uXECZEygpIY(N_t)YX z{-<#A$I4#gf=;b*@qr}0+t4X&@g?{4y>Zbr-qxEWr|DD5l4EeMR(2Z?=vm|8L(100 zy~bmb9%u59NxFo5|3<@W0E~zBX*RqD!0;LX!)pKxuK_Sv=HYi6gv`Az!^=$!mUj3u z+B*y{H!)bJ=e0(8@z(3$yzNGon;5JS@mmeng%n8ei)KT20rA&}a{I{Pt1Ofoj?Q;5 z^HZ3nSZPIP#F_>s14DXO4 z6F`b}8k!;?239b4v}VuiufWD$!@T~=VMD7BdknsB&LwECNv>J*`WdV~TfuZ#H-V2O zS1`_dNpv4~2%0mgHO%X;F&G&d_?kH66qNra6+P9BY`@2O6@SO0D2r z;5E$auXGZ3r=1n7s60gFyqaEty|;#W{gv)KP-$L2+VxHhtm)UBl|zOCdEF+lhM9eW z3V=0UJJFkPRh-`Ms?zXv|1Eio`)`?nID zY=2B?J#P3-X72o2MWw=oID|DWjHf_*lc6b~HbV=7Ma1xPu6nKFU>?5fN^|Znzm19P zwj=Z77_E&*R5wznAOvo6ziRKFA4gaS2u(j;<=ApQ`IKBm!%KWMgyB9Hv$ zzS5DuVb*vBnb#nkRu1NX7tKj;a)QMQD#Y}f2+vv}w2>YdWqMrheduwykW4L~K@YPR zOs}gyy{3<5^s%%)o-UhYPOqSouq-)Dc&F1?8>C0mr7MCm`t`IPPh00@*b95)yo|&O z#9=oL=4#XgAEU4f?YmX6`~4kqzo)0pj`8NR|FT=HllOf(_P$qZ4BVKx8Tc`<5O#h% zc5Sc@jkwC;4}2#&wq~En?o&>k!QD9!?Q~%D0pr0&YA_z$OcD7a{#o!xn35}o&_USy zjK@mDLwc{t?p2QDdQfFG7&`cEz2Y5bwaSE5h+4Jl5q4^vnG{QiTIg?cUxm{ z|8*jM;>apzpGoagiTFv?j`1Zg<=SIhG>ZMKGA>H9pY~fxXN?P6&3=~S*c2okN0oL) z%$9=U&wX^*C*e7*eqB8$Q~=$x##F7d=k(kv-zjIJz1qM{K+bYT)p|;x}Ms_ z%cP$n00J57`i&|*`zNdHH{tcg@2|4o^r!3kQbxbIOaBahQ(>9(u2R2g*Xrl=o8DR1 z`6tl)*YWx{vY_1l^_s5eNyr3t#%e1DynN&j#a?#a6TnOcQ^ zwyxiNMqhe*m3^lt!T2-0I{JsS-D3I~_MM)g=)?J^R(%C*S{qk((sWP3&&d5(J56#vVINVlVdC@z&emvEvX(c;PsK+lxuiRRTWy zd~$wFlv_OZEINJBTwi?v{=2_kaGB5-=@x=|BXI|M)|r5N8OeQC5KShtZW}u2O?c6# zR%7c99V6!wwAm!rH@HlzFmDu{M?TZ{`62jMW7 zfa`FXA^_7INmGt>xJ-Z|+o{wl7B#HHWm-Kz+?{sN8Jz|y=hgHosRp=AtBrY}S}qeY zunw1LHI64H*5NV{Q~*3U>xte3^>e3%=$%WWC}gu-rd1fU>l<7qR39*QnJ`o&#NhG( zp>&NQmD6Zw;RWli4hf@eDe4|;YiW-Gdwil2Ysb(1V{T?$&%U37c#z9AC_)jbn1}M-K8*DKNGm@5~rOY}L zA|q(=6&r@)cKi8R2P$={7Go`e-kdIsHCh5oGM2|$9lgk92hSKGEHn0v}g5vH?2+(UYBsfSriw z$xcMTPDJ!%C!#FZo`Aw-RYA524h5&P0Xr8P;T@km$YMXyP3lHn;C>>LOE(}NKGCh} zMiqhDT-~139f=!oW~zhaC-ENK#0{8CxJd_%;OfIk-Q(P#F&{Xe#Cvj`8<1Ns5+Ik9 zy}37FU%eD0K8g3}CU3liAxwZ{N#3jL-oPmS1SX&p0=rUK*&VXg9BO1M;Pj0Iwx^S8wtLba$4Dn&5qP=aV-e^n(%sBGTji>a*}Pz#@TD3lK`>FWaj>WA8$U+ksprlMiFoitzjQi3moUus|v zazDUE#4LINJ~v%@<@0?$zNCeW6evv~X(1yd`CxOOZ|2!V+K5Dw4+lh3$(_j&77&5&ou=4M_d zTW-FJZK?N@f54Fa9cQuX|7=|UWJBqH7LFI=Jl#;)J8H%%C#EU~XGZaCu(0k+>Hh<+ CyV`jG literal 0 HcmV?d00001 diff --git a/MapleLeafRag.mid b/MapleLeafRag.mid new file mode 100644 index 0000000000000000000000000000000000000000..5bdf1728ef68b4cee08b17b4dbccb77b81282585 GIT binary patch literal 12302 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 literal 0 HcmV?d00001 diff --git a/lestoreadorscl.mid b/lestoreadorscl.mid new file mode 100755 index 0000000000000000000000000000000000000000..e50fe4885f2565316a9a73caf97209d8cc1c3810 GIT binary patch literal 72213 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 literal 0 HcmV?d00001 diff --git a/platformio.ini b/platformio.ini index b9a30fd..7c87531 100644 --- a/platformio.ini +++ b/platformio.ini @@ -20,6 +20,7 @@ lib_deps = [env] framework = arduino +build_flags = -O2 #build_flags = ${common.build_flags} lib_deps = ${common.lib_deps} monitor_speed = 115200 diff --git a/send2.py b/send2.py new file mode 100644 index 0000000..dfb57bf --- /dev/null +++ b/send2.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 + +import sys, argparse +import time +import threading + +import mido +import serial + +drum_channels = [9] + +def serialreceive(ser): + print("Serial running") + while ser: + try: + line = ser.readline().decode() + print(line) + except Exception: + pass + + +def main(argv): + inputfile = '' + outputport = '' + parser = argparse.ArgumentParser() + parser.add_argument('-P', '--serialport', help="serial port to open", default="/dev/ttyUSB0") + parser.add_argument('--with-drums', action="store_true", help="send percussion track 10") + args = parser.parse_args() + with serial.Serial(args.serialport, 115200, timeout=12) as ser: + receivethread = threading.Thread(target=serialreceive, args=(ser,)) + receivethread.daemon = True + receivethread.start() + time.sleep(1) +# portmidi = mido.Backend('mido.backends.portmidi') + with mido.open_input() as mid: + for msg in mid: + time.sleep(msg.time) + if not msg.is_meta: + if msg.type == 'note_on' or msg.type == 'note_off' or msg.type == 'pitchwheel': + if (not (msg.channel in drum_channels)) or args.with_drums: + print(msg) + ser.write(msg.bin()) + else: + print("skipped percussion: " + str(msg)) + else: + print("not sent: " + str(msg)) + if msg.type == 'program_change' and msg.program in [50,]: + drum_channels.append(msg.channel) + + else: + print("meta message: " + str(msg)) + print("EOF") + print("done") + print("serial closed") + +if __name__ == "__main__": + main(sys.argv[1:]) diff --git a/shakira-medley.mid b/shakira-medley.mid new file mode 100644 index 0000000000000000000000000000000000000000..7e2e8d9fc2c267323337beb7c4f16cfd6e50e741 GIT binary patch literal 65285 zcmeFaS#Xruw&%Aqkw671ilQir;&33Tl!Qv45s^YlW$II=<{>pAfj~m@073#ufF!2K zWU4yncH2^d1aa+txsP^4$DL0{*b(lwdvG`$?(mb}Je+I$^o!jOcHBq&TkHG293<*G z9C03f9?sUczrEM~um2kM+B-9;?!ozKW6VM0F<+VgqI+=Vt}#b~=98zTb!KU1Wnyh+ z+Bdo3YmIfcH?{k!$|`)*GxwH#k7ia@7nYZN(+^h`mgam{eA5#ftG?NlnHk^O%<7u- z-JhRWojGj&eO~lfmod-H-wllF=j3=#<(W@?2aX*2Z+>~$FHQgd z`<2dLpm+S=A8tGrIc|9__tyWt&wZ#Ktl{B%`;GAxPyOgq3lH?fS_gb%fB#QTe9Apq zeq;IJg_RlKgl~0uY3^0or`$8;k5?Af)@GK(Dc0s^eDf1a)2qJaSzqh&^xLXWx!;sG zEiYYI^Ucky`R>j59^`Uz!n#M_XNoDLnN;H z=9Yac3)2fr7k;|+Dfj#GeqD!EW>!Sdif?Lh8PKb*FMi7Xwj3a~ly=|j!qT*;bML46 zPr0Ycuf>|0`(w?GgKfSWJ=gku(XO7sw&sD?BcF0lmNRT+=E5pq?@cTTHEYW&8?Wc& z)nL}EcHh+e^6Jc+Z)GuemY|(kfkP&}8v2y`>v9NGJs2VEEX}R@+6l7NnUzN~Z+xF} ze^uVHyyBajK`YM_eoLgR=_RTGI zzk4IydH?O7{`RS~fA;O}`ls9z84zc+Dr#y9(LNj!OaVRda{X=>)>p-;KT9r5aZ?Y_n3 zM>9h7H{}z)+2xg)g}Ei)q8N~emn)xgzY-VlEh?hfiK(?XV~>|3Q@w9y9mz8y`AZQI znIMMRF^xc(T3om{nIKRI21GRCv#VfUoLSs>`CJXRETEUx#7!m9PTgIcSxppv%KfsO zJgo93m!~%p3&Kfkh6L>>xo~e{ZeeLAaraa1G20Cx0HT(c7B^lUmjwq2=X(o_i;~cx zYE@8cOp3aIxHlt`U!GSwW_&Bl@ZeiSPx=2h-+#9Ib&tr1PDn10&|aOHDJv@zXZX6j z{lYyTrcunZGc#*%X2qWW`0j>C8lGq05%e0H{PB7~9Bg<-64AYx31MKFaNz&RF$CNz z=sAi^Qi1eJ2);a^Cc-YP;k;OynOJ!_{weoJIovXAV(r3e{Gloeq0=)Hnn`F^UVSGN z4vHZ3U-8KwnnT_+2-}WG1)2ClY(75$O@Mm5EScuz(NDRj%f-heJuC{LlDIY`V

{ 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

bM~hR7XrH#HnNl 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 T{bOPEhkJilurK~i6~z8G62}H4 literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index fa2ce20..3896ad3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -10,8 +10,10 @@ #include #include -#include "midi/noteList.h" -#include "midi/pitches.h" +//#include "midi/noteList.h" +//#include "midi/pitches.h" + +#include "stepper.h" struct MySettings : public midi::DefaultSettings { @@ -22,7 +24,7 @@ MIDI_CREATE_CUSTOM_INSTANCE(HardwareSerial, Serial, MIDI, MySettings); const int NUM_STEPPER = 5; -Tone freq[NUM_STEPPER]; +TimerStepper stepper[NUM_STEPPER]; unsigned long previousMillis[NUM_STEPPER] = {0}; // will store last time LED was updated const long interval = 1000; // interval at which to blink (milliseconds) @@ -34,7 +36,6 @@ struct playing_t { }; volatile playing_t playing[NUM_STEPPER] = {0,255}; - int findSameNotes(byte noteNumber) { int candidate = -1; bool alreadyPlayingHarmonic = false; @@ -66,15 +67,10 @@ void handleNoteOn(byte inChannel, byte inNumber, byte inVelocity) //if (inChannel == 0 || inChannel >= 32) return; //if (inChannel == 8) return; - long f = sNotePitches[inNumber]; - f *= 4; - while (f > 12000) f/=2; - //digitalWrite(LED_PIN, HIGH); bool sent = false; for (int i=0; i= 0) { - digitalWrite(enable_pin[i], LOW); - freq[i].play(f); + stepper[i].playNote(inNumber); playing[i].noteNumber = inNumber; playing[i].channel = inChannel; previousMillis[i] = millis(); @@ -109,7 +104,7 @@ void handleNoteOff(byte inChannel, byte inNumber, byte inVelocity) digitalWrite(LED_PIN, LOW); for (int i=0; i> 7; for (int i=0; i= interval || previousMillis[i] == 0) { - digitalWrite(enable_pin[i], HIGH); + stepper[i].disable(); playing[i].noteNumber = 0; playing[i].channel = 255; } @@ -193,18 +161,7 @@ void loop() //Serial.println("test"); MIDI.read(); - //readMIDI(); - // turn the LED on (HIGH is the voltage level) - //digitalWrite(LED_PIN, HIGH); - //tone(X_STEP_PIN, 16*440U); - // wait for a second - //delay(100); - // turn the LED off by making the voltage LOW - //digitalWrite(LED_PIN, LOW); - //tone(X_STEP_PIN, 120U); - // wait for a second - //delay(100); - + for (int i=0; i +#include + +class FrequencyLUT { + public: + FrequencyLUT(); + uint16_t* frequencies; + uint16_t& operator[](int); +}; + +FrequencyLUT::FrequencyLUT() { + int pitch = 24; + frequencies = malloc(128*sizeof(uint16_t)); + for (int d=0; d<128; d++) { + frequencies[d] = pow(2.0, (d-69.0+pitch)/12.0) * 440.0; + } +} + +uint16_t& FrequencyLUT::operator[](int index) { + return frequencies[index]; +} + +FrequencyLUT frequencies; + +class Stepper { + public: + virtual void begin(int dir_pin, int step_pin, int enable_pin); + virtual void playTone(uint16_t freq) = 0; + virtual void playNote(int8_t midi_note); + virtual void bend(int value); + virtual void loop(); + virtual void stopTone() = 0; + void enable(); + void disable(); + protected: + int8_t currentNote; + int dir_pin; + int step_pin; + int enable_pin; + uint8_t multiplicator = 4; +}; + +class TimerStepper : public Stepper { + public: + void begin(int dir_pin, int step_pin, int enable_pin) override; + void playTone(uint16_t freq) override; + void stopTone() override; + void loop() {}; + private: + Tone tone; +}; + +class LoopStepper : public Stepper { + public: + void begin(int dir_pin, int step_pin, int enable_pin) override; + void playTone(uint16_t freq) override; + void stopTone() override; + void loop() override; + private: + unsigned long currentStepMicros; + unsigned long prevStepMicros; +}; + +void Stepper::begin(int dir_pin, int step_pin, int enable_pin) { + this->dir_pin = dir_pin; + this->step_pin = step_pin; + this->enable_pin = enable_pin; + + pinMode(dir_pin, OUTPUT); + pinMode(step_pin, OUTPUT); + pinMode(enable_pin, OUTPUT); + + digitalWrite(enable_pin, HIGH); +} + +void Stepper::enable() { + digitalWrite(enable_pin, LOW); +} + +void Stepper::disable() { + digitalWrite(enable_pin, HIGH); +} + +void Stepper::playNote(int8_t midi_note) { + currentNote = midi_note; + uint16_t f = frequencies[midi_note]; + f *= multiplicator; + while (f > 12000) f/=2; + playTone(f); +} + +void Stepper::bend(int value) { + uint16_t f = frequencies[currentNote]; + uint16_t f_b = f * pow(2, (double)value/(4096.0*12)); + playTone(f_b); +} + +void TimerStepper::begin(int dir_pin, int step_pin, int enable_pin) { + Stepper::begin(dir_pin, step_pin, enable_pin); + tone.begin(step_pin); +} + +void TimerStepper::playTone(uint16_t freq) { + enable(); + tone.play(freq); +} + +void TimerStepper::stopTone() { + currentNote = 0; + tone.stop(); +} + +void LoopStepper::begin(int dir_pin, int step_pin, int enable_pin) { + Stepper::begin(dir_pin, step_pin, enable_pin); + multiplicator = 1; +} + +void LoopStepper::playTone(uint16_t freq) { + enable(); + prevStepMicros = micros(); + currentStepMicros = 1000000UL / freq; +} + +void LoopStepper::stopTone() { + currentStepMicros = 0; +} + +void LoopStepper::loop() { + if (currentStepMicros == 0) return; + if (micros() - prevStepMicros >= currentStepMicros) { + prevStepMicros += currentStepMicros; + digitalWrite(step_pin, HIGH); + digitalWrite(step_pin, LOW); + } +} + + + +#endif /* _STEPPER_H */ diff --git a/starwarsmedley.mid b/starwarsmedley.mid new file mode 100755 index 0000000000000000000000000000000000000000..74299dc2bc5b3d7c6a2a9d6e6333fb344142b271 GIT binary patch literal 16000 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 l_wHMm3C@R^IE6