From 76b7f38fe9db32f36dede26c951e6b5dccf6fcfd Mon Sep 17 00:00:00 2001 From: Chris I-B Date: Thu, 12 Mar 2026 12:52:26 -0400 Subject: [PATCH] Add TouchOSC sample configuration, re-organize the `desktop` directory to use sub-folders for each project. Add screenshot of sample TouchOSC configuration --- .../osc_control-docs/touchosc_sample_cfg.png | Bin 0 -> 65337 bytes software/contrib/osc_control.md | 21 ++++++++++++++---- software/desktop/README.md | 7 ++++++ .../desktop/{osc_8mu.md => osc_8mu/README.md} | 0 software/desktop/{ => osc_8mu}/osc_8mu.py | 0 software/desktop/touch_osc/README.md | 13 +++++++++++ software/desktop/touch_osc/europi.tosc | Bin 0 -> 1649 bytes 7 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 software/contrib/osc_control-docs/touchosc_sample_cfg.png create mode 100644 software/desktop/README.md rename software/desktop/{osc_8mu.md => osc_8mu/README.md} (100%) rename software/desktop/{ => osc_8mu}/osc_8mu.py (100%) create mode 100644 software/desktop/touch_osc/README.md create mode 100644 software/desktop/touch_osc/europi.tosc diff --git a/software/contrib/osc_control-docs/touchosc_sample_cfg.png b/software/contrib/osc_control-docs/touchosc_sample_cfg.png new file mode 100644 index 0000000000000000000000000000000000000000..de4645b1ff1efa2b829f629a238cfbc0fcde5b1e GIT binary patch literal 65337 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 lT8 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
2X^hF#-VI@SIG2+RZxEwOJ1&7iPUASOI-0|8wk zjl2}~CGXxq1R$i#6Z9>8&X3N!wP-~ijl972H!Pzh(-E4hg=xAmI#O!)H(yZL)T1Zm zr0Y<6fJ@!fMiDMM4~)jD)hB~QwW-k(-(caR0s-^3qGQmGjmyV!ST;g4e_6bibYn93 z9j1v9do2k=la7Sqp!W}bR_YH|?z8gYIw#K6^J1*tj`Mw`wp8Eo zJ;qB8!_L6Om=UA-QV=`gS^XObx#z2!=Y=J(5ZL17+lzO1GLu`sgvq?W%`0dZ5YS^h z>5?G8tsobO?5cnudN7YAeJO|Oj?wS@)o?I<=ZzkJ>kr`p!Q@!V+l%J`8p|t9UP3L= z(BXdu_Gveq;2P{4wU0r)+G0h4L^ifuBbo3i5Oe(@~S zWk-C|2@<;SZI%il)?VBb%`7NK7eAsw%7`_(RZhp8-DMHwDOs$zeA@AmkQaYELhpE-NK(L*Fn@qYdI^C0M^YlkaeVv#|X5}Apujj8R=dQ7)j#mwYIYE1rzR!vZ(y~4yV)oxs2vBXT4=$cJqI}n=)$fTe6oMY1uwV?$k24$C5~~@7+dg>U1cr z-!nIEW2nBqmE;uHnP)zDJCKJ`S-FU*{@bAi39L+R>oeRf?wGLYFpsuTkQnQH%36TwGsQUQe z-8-j04i6r`VMlyW%UA=X{fn0J@V*8F#UyCbIr9h|{mZhtku^(=s{GFO=Fs)KOFejq zP7)t6?|UG9%NJJ)k9%=!G_i@e*yIp?Gz9DD71eu zjePa3u;Sptulalz_brj+{xOxMqFnY$VS>&R`$Dq z&ogo6#jKfbI;vKMBMXLKI&fT{RnNklFdJQZ>ETGC|P z)_Q9=^$5Sgg}LKJ79$hB=x~>5dq&hYP5glsi*XW5Zm<=L5{IZY0_}jQi?)D=`o4Yq zt%S@Dk9raUoG8h-$O{$Ec`lL^QpV5 z%ig?FXZmyQ>0#|>+TVQguDRVAZ`XD0I4u)FYB)w~xorZS$kX;!iaW-roRh!5Cf5%y z!ANUSq|}M^)BQTzU*f)vXu_fUJ!mF@L<_yWtFypRU(6GYHMZGCnG8c=v*39RL|dNc z5*q~~pDBb_p)*Z{tM7b6-wzMQ_}ykl8+I;wIb^b3mzu_i3yn`62@owN|6bggNzzU7 z@M4LY%IA4w9&%F`w3zXwjVPFWzYenag(#`wI-^NdHnOGvdT-L@V|+b1DLh)IlR~!s z&qHQ?O4e0IjR9+7K-E@tf~g>>^PX;udGu>Z7#a4H6+|tvjQ*CB+bCntJEQNU5q5c~ zyAoRPXMDdQl5H1|SaVf!M*!9+UhH*Wx(*CI;|6<%TZ!#dC7PX&jBdfdUZfj8%V zG#66Rm)5^n;-LNCdCpY(I7X`L-K;cf5YVU=MWc&rL9PC!kqW%q9JB|^ptheJs>ea2 zaeQ+sw6-yEoIawc8r9lak3j^EtlBTsukg+k>y&?Ykc1wG`rm03bd0bz3q>2-;W8C! zqWOqGk&!Ch$opZ}FNc%{kmoLaDeIM%k7|o3tV3+Sy|>mEZgV{w4P||)DG4+D&J)aM zSBdDB44=zLdU0i{FOBRd|3k-uv_V9$9RGY?o%Tlo=?%Te%+IFsF>kYXS_>CnFvaX`@ylAf9X#H4Q7rCH>T6*xPuNyk=>0<5W(%1Y zxyH!+Xoj}?qlOmFfT0_|GATB=dh}*I;ivRY$Xv&w%ns4_ku$qkr7-j-fg=@&yc1|i zc+KP};Y(T^!tHH#a&~}CO5g?Ps*m{@TS&lr9Lwm>Y@_^a$1apt2esW*xFQ#ywx)uo z_KB={`t5KP|KCDwAG(lSo;sbe_j14-C+n;YrB^_CvPoEf6#bEw@{(p`n4I~WeTI@-I~|m~%ig!mGppm+ zr`~-4f{`%6Ai*)ao@6aYER7hQ_*J2%zK2~61chm2TjKvJQHOe>9JfXEa$VKbIL+W8 z%9Z->GxF+A&tpDg^<_a9pV>P z2r?Al&Z`JHm0i$?5K6$CWPM5N>AV?wPY$rBB%5$D**5X6PijL6@N1$(gXVfZD-FkAL{zSAZ)KA60X;L~#s> z97WbRZ6P3T@Tw^1a&H!LB!qq8#d{Z+7@{RpbDVCNh1$Z|&8l)XXUNI#_R&ko+Ix## zA-D(WzrFDBuxH)!@_~_(f>5Qhv;J9+v_wzI)$pKMC{Kbch=3>5r}pv);g93%>;IIy zT8D0OE|EUJ&50K9gi|Vv^RlCu>epXguq>s3=L=Cy^*sOjy{L?K%)?cPX)=}Jw!YPD z0}w)$bQ{7C{F)eNlLCa2OPz|Xa_8beaovI?i;$SR#xD~IiKTrC>4WYv{s%V~@`fv+ zbir4mhf2?D!hpsw1t#YjAF-5o{>e}qA5LG=ny<;K5Rlw{(tlgnnNh#T^qq-$BfD%R z_?b~ci#%0Eakzl=_yD_J_;{iG@X#jZ=tBeKuU>9GpstExu%`?^%T`P&ytTdGdN&1y zt+eMb1x8qsx{X{#T}H|i;bjOcIgfpGXrucbzGL( z)m#-T`WX#0UsPwhr&d ze6rRbm`R@DhAgi&?F{MbwBOenJ-eO^HFSEL*J<~CFP?#M+QLhwFW04B z(RmO({8_SV{MLua7+ZIip8NWxRn=FrP;*xD$Y5GRON*^cwT^Sem2=wV;d}g#;=FTN zbhOI~_f2llTDI)#232}#0}H$-OCtQ|Dw-BW#q39kOxpH46gI=9+2J3KE&I;{63#iv z!F&0dQe=sQ#D6m2H2&f{sKwTKy-M<3Mf^~~=^Yju=grFLssD_?!bFKJnvrPQN*MOG zYjCc>d0UKXOrZm{G`8Gsk9Bn4%d@FO5|w-#@Wsa6!N6i-D4haPp^{?Qq1Bm*oXapH zEk0q=2KVixoXwX>F~j>}>`6~L)pd4mg`4VIPu(ySRR3aQduA)2&dhg)j%h^#iG9a! zd7Rb)W5=p*4$$GG^xiY~ee5_yvK|@F(Or~Es1bKf{k#%~?PY-H1t7eJ^ZZXoJPUUW(vi=_lJsN6o|v2zVo zNv@Sgc(N5(zTX;nyQNGGI@MhOx^A1V|uwR6x2V?5M zf%8vGnehfGSXBGxSHE?A6<@ex_>P<%d9ckBjq#%2ex;7zH($=H$xJA4abKHUT5A;e z7i7679B&mOf|Hp2PX<*}>`xNn6@nZvb}H zs#T^K0?@4Ruapn+0#Vv}!%PCINJ)h|jpYxu2E+nb5C@r$105|-_=Wh114aFanri_7 z?bHhZ9<*oxo7Q~CJBq-O8p3&yr_fQcHpvq~Rs?L9-JH)@$|KV`s7$d)5A?)L-3l4NO{;r-tPZ<@*l-92^%s@Y6}C~ zXiyUJVBnh!FbBooDy9D$q0iiW9a~+@$9(e_Mq#yDUs0KR#mt#T1qbl-t zHjtpCK`@g|={bLmm9>vlyN!EV0V&_SUk8<3y=^7->*%!U%l{OsMHM1AH)95fYGRTk z=7L=Rezo?nWunWE+LUn`utFvqLMcQ;7hRQ^@0Ku06!47XO8ujze*qwy7yW-00Fvjy z9%o6I_50*;nvREDW3r-hy|K`RgD4~*CYLSMa`_>$M~CejK9I*l5MGlZPb^Ej~&RVL*QUAtZx7)jmrVO|_I6Ew9 zjHmw{DqG8V?3u7|jNxC?f;tHimV66n0+$T%l@&Gq&j$;60>`wQ4uz*BBrtq|@7=r8 zuyVh!(H5=>vEw@LUz!Lg+~Q$>=W8-z_~V8PGw~$_Sl%vIldX$P4y(ge>W$yH1KkFY|+3+ z91cx+*aLh@H2Sl8T?%=mzy7cWY1%TUV>}NCJ;L|8Qn#6z4L4}Z4OSqPv<{vp+jAOi zh?`d>95F3|P4qs11vI^toe74_G>wMONO{0yiu=(bFPhx`TZP&MMux?lMJB-kfL0zV73SO+?2OFm(#PtW?|h-G-BW884rOA2DyD4Y9J_9R2Gs$j zy!af(6q&Ua&jGX8RyaR2DSUDPzpsg$DT=`3?Mp>V{D-?sce7}1P(e-NY&twZ9`93j z+-_DFQ@}OWdNEJL#3o}pG4g+j?%MB?cb5Cuoyg@mksHKW16+?on|pfJVb%^@2A9m( zy6IRb@76maP03NqR~Dduv_XUegE(H5I^9TfzwOoraK^FLyU=qRzwK9<-x);;096Na zo6wU3ajc9`mQRCb3|~KgOf@J0idO|>zr4h2q70RGn(ofU&r;N%Yl}eJk!!_Sid;5B zf=kWn%0vPMp`B7s5az-Og)TSWHDgg=oYdtzyFFtomUQwr&eiV>*goRm3>B^2%iEC^ z9b)Qw_>+K_On6}8!fJtD1gjMQz!9jYLi=%Gydhjv!I5K(ujb%v3Ua$ChYeg{C{I5@ zNr#MibguHmPZ>K9R$Bo#F7&K0SY)fxIxa^B;Pe7zMKZFd#EQDOtFJ8cW=c0EVAgoI z6ET2?3$58#*a0C|bk|;(+L26>A$&e^K1WN^dL>M8-{uZ+oX*Pa?DRa$tWtP85>Hv+ z1)#JS_M=fSC{Um=RRj_oUf>15%W&11>BByCA1fl>z7j!EqUhA@c8bHFye`~CxdnTz z5TaUlf1}^(M$_XO>UJddiIen$sCL&(XdzFk-(6aDgDJCvr{p3m`BsdRBT)UXimnw4 zY)s9Sp*BLKj?uJU1B6pR1-;y=$YrYM6z2HzHF=&am>j6X`ml!lEv^vNI3u~nz|?8N z&~3YJg6#*rceD4!1(wjJm_$d+=5A~jsl`zOFTuErKS1T2+vJ|ZGD7e`RYQ40ryE{F zI8Upv;z*t_Pxa+d(>xDy*y{}`J+r;Tn%}}ih{dGeH1gK3h0i5`bnj2%x{}gx0_8zf zl)sbM3)VSIBVXJlC70rH7Y&RPFpIFdV^kN;j}%K<=xKU=iCHnv8~=#t$OXTlCcY+m zZt)q^ny;ckItlVgJ+{n~Af>ODc8h87c~R?=*$h~lM-ru;Skzndd#ZyZgKjQ`_$Omv z4fWbD&(HbDba~UV7>8SDdT3mW9d* zs&$qubRwyr_v^I8(aQW=Upk0mjiGZuQCAivrDpyyG}hPnjjz`nM#(R_hS3*iQ?G<0 zYPde5$Mr^=C+jrbeJFeN1}h=pNc)?|(RGCQ zF?By8>*o?+YD7d~2D1vB9je?t52)eHQ&+Bu@892zH~dS{Rob5iMiGddxBXys4#^_| z)b7z?#~i4hE|f7CIwrOenPyznGkzrwRCsbvn-d1!7*?86uEW9V4F>aKO-HKfivF31 z>Upf+`YQ`qja9YXCtRKct8Siuv=-zIa)GLkP?)#bm$^cJWJppQ(RFW=84;nihn*j3 z=BMJcb!O*}f!>HD#-bjL_c#{|N4x5d(*V!}c@zjiW&77Zt({Ac2A)-(mirJkmG6^= z;A?aNhaO(UWj#pyAySU0&n1FO7tAPL$tlI%p%_gJe$B7@_igtlZLa5!fxW32FZRE2 zOl2+rwtA{VWOI07Zl0{aq{K>B^HtEbl7Vj&2PWg6&mE(4C~IfC`BF4=gTX+)JSPR| ze-TAe^`xW}-u@_wRD>o%jlVa#Sl^HrFEK#yt6=&QmQRuIjxzXRjlQlCsFh^wS_yG! zOURsP!n^6jwT)~Z5Z58ErLorB3KD@2tMQYG1&DT>Mk0G*#7{3hNgOGH0&A%Q#C!UF zlT_?Wb^*`AQStM8RdXDzRJs0#QeFRuQ>|U$nFb&jSk;9M%u=SxC*m^AuCg*)iy{M` z9H0O)`|S5MEvZD`S*hFXt4;|HHfog_6cYbub$}p();WSP;5u6{!(U{Hqm!uukJBOv z#=#h9I8s+pFpoIJ-*qc*0SYFo>p~@_h2D{?vJo$ULLQMT!+IBEfSWJ?rL4cADt?wk zXi!kzqON-57cR?CMo8zgB0f=B<4@yei&qVQCaLW2BcnH`qAk{lf4XKD%Yd1#c=GHT zLx`)|pX*?>qui$`;r=Z}n2ch7Tuwa7uWZ(=HloJS=iw(I>hY9T8;a>?PdRPaQ*kzS z|8sInMjT(#;h~$rDG}~#Bm>;U5W)F=(h4~DB!`-oloBNA;w%ulblqiK4wLo&Iz~4k za}KKw0jYKSm)*!{8MG69zbz=b%HBa`yUg1%xCtOC3H!?cxCY6OmAsEgJ~45(qqiO| zw0I4kPPum;fHeWzkvP1Xbg0rHL&fA@ppi$FYME<9u9e;>E}<%N@jH&y`O?KXx!7?D zqTX3UuKLo-03-& zIW>U|t|7wxmu{#R;7x6`ux=wM!rrkKkLvp z${mE~yXBSo6QhhdoO_!qfkxhBv-mY4-fthYfZF%I;HFtCmBk$Z^_+SD)sE#l3=;t? zh9&vUKc>0vnh|e3a@|iYiL8CL&x_p8CBW^T$8%Zi!?((gU-ND;ke+-2)4?dC#lagr zv+n|`8wSuUxu8&|6%u)y2akKvbs&-@Bv$QyKCrA%DuHgUahN zQZoN%H3Mz+w)5bp+M0%c0mf+4B%d%mD%)m1&cE07C6X^`Ww1@b&Niw*%@$gpQur9% zj)#xFd5p=)`{5<`qP#8foQ=AZIln{|?R2Xv#((|g&6xCE; zLuLSibL37x_ikY6mt!9YS8nTEBuIFe=;izKD|U6eZP9ayfZZVW1)Ggdhbw>Z3%mIb z8=3~f~`GF%2S%)-5L#)3GguOTZ`8_tdefsR~EyXn}CV%zRu?J>>+Rn(K zC;4w%CEz~QTeUe&cq5`RmAH8xaVUT^@Gm2vM@?gBN|z{4Zs|fDz;xWprAgY<+t zL|r>o#r#>8Ya&TYptVKNnQ(+9-e4||yt&cl5p%F%zB{OT&U#S@dNAnB6n!mzgV$;J zL*KxUxH!G-Sx{Kc6PgvFW4WWaI|UlzJ9W;leA%znW`bXoM>;wXRtXvBz^ox+(wiYE zT4yPMx*9YPd|B$MNf=@rbxVxZ%(OaqlMGFrhun7DpiV9ox+a3FXUxn+!8Q*e8z1yK z(v1Enx+Jfv(Ozn3sF4*>#k4RPi9qWlMtYmyG&n2nL}k-S_qNrqizs6AJRy-42)_CU zeEZbW;`m+6KS@K2Xh8pBYWkh~q}Z*v-p&VKYG!HTIriTKOE8DD_u(9#;7~HZAOu^# zbfLF+xG*BAPT1gv?wU13gXtfEWm)C`bFR)WqN%$BWeH?8fUWF#8*OPxh`Pu^y_%gYw2GOg|OkBP=%rr&4=v| z1Kg2$R94F7<=UBw!$;i)O!HPCS~_X`+Y}>yah5sbia7#w{jQu`p7t?Z13%Py{M)^t z*Z)yKlc%f?J_GiK!u)iH%&fMqv7Ck##(Q_oW zPv)PxjT;CYyD6BGTZYFj*L+lSjJ?B)j&!8@dUnXRCbFK`k*vzP8z6B^%cN8Dfw6}_ zW{NuoK!GzZQX0I|>{8~exH9ME(HzXK6mZi0OR3@7>ZAUePb8k-d+Ga40(#d9)J>_# zIGfXZvLZ55yiK1OV9kOsM@5sEY6c)pmERDtwt~+?D#+KnK(tKt-85#fCY^@WwR#J7 z6RpHpzEd7bQiCg!7Rrk=ev1p>@nrbPy+O(GH|nA@n|J@*>;}vN+psqZ4CHUEAJW%Z zN~jn}wJv-w#e&&IkA>atR#_z|y~Fxk((4=V1slJaVhcTq4l*Rm*sRDW=~Rn3|3HW8 z6R?=+uMizd`C`(Dqnw^mNbSWSYKsjk z5;)UP3K_u9xR1+r4cY*$Y<%(G`qNswic%DpQ|KEt@AU!p{5DZ;SSvNp zcj@p*b*5?Pt`2?PfKOB~;iQ{Y&26vjwydmSI_1ggI2lEnJR(h^C)hBQiNh0y4n2%g zzPAuln5GE1XSSWUCU3F95++PrxU-VSohS#aS0ctvGQ*5>lVf>q&D~VqrrSr=EVuPHq2CT60q2*aJoI{gns=_-yWFM=|uwto+TAN1djO zJ^&HTPd?Z5m2rsQEMiV8F(6x+{}%K^I70WZz?XKjwJ5-j`Pzkz<+e=AoMnj{kkqv~ z6v(2ZCIz8}cBc6QWjQRsNtsWZ?q>4+{SN|qR4G}RYtY&egR`NxUHzQ3`Oh% zMSt-=2wY(MfD_yeGJo5uajkbz5+tb>IiC2^@?dp!_Z1?kL>oXL7@RRokTfwnxt5Hj z`c`uCczTPZSNd|4B_=pdsoA>I#8e@{(QZu@(=+LCF0h8T~jLm_kv9F3hGcs_=XtlHX0@Si4X8-{UNarAM=HWn-}pF3K!nvrD~o)V!+o{x?`coVVWti^v?AJsylRcZnp=xCY+{S zv*tVOtD*TWM}H`4Zr!pqJ+WF+ za^^n5FIcm#DH%`hcL&VsM4|s2H@PEba^7zSmcxb`m#o$-IOK`*bDk;{*}=pK?JQ)H zflf82uDH;Pc6ee7vQ&C-w(8;G>!nUlO^WoE447mQ|LL>KM|-yJ64S1kF!OJ`<7Y%R zrBt2MpIzi+mX{$Q&bYc5IUsXyLrumtkD9osuXIn92WBmPi_BSBrR@?Pi#l;&>rV9n zcwBp=Vt;Lfk>EN4w2abF;d-IA4W~+hthn*aD<*(z=beCXU6+r_8e<)Fw9Y?tL7^5|>qXhA~Rxywn6Ws_~(!;WB zb-EmBGvFt0$*Br8^iG>Ii-x2cRwI~&TY_MJr*Fxm{{1UP`MY_bgs|3`W!$P9PlFpd zreIk6#FW-h-Fwqq39I?NN?>C5p{c1ZW^3V5iFJNp{#SSlFa;g%JhpU;DRne-M7ws& z=5N?4iVQ+o6>^?9ET9G)68K<6WjyU#YpBO!Ce~MVcCsQKOxs43+hYa%B2aW6?@ND_ z_a~46KcQJV<_>^SHES>Uk*x}Ig@PSE)7J3s-@&(Fa^`FqAOwl_^P#+#Ei1=OqH=LHfbC^)Y6>Q_F0Gj5rA1|0@8j#4ZEQ+^a5bkW`!@ynoMw`> zSblelP~4aBiS*#OySr$5FfUk5a`4!0a@g$vsIU<4ydwNiY2mbASEOuIg_)~%ZlQlh z+Ih~8onvt?Aq&(D!PVx0jH!B{quVLQxvJl>{ z+w`3VR?0pxqoL%GprRwU1Mhk3S>#<+c5asg?@XXKjrUY@w!k~IBtOx)_ZC~8#o+Gc z6fgs>-!P|Y>em$g6=$MFc{PKT^Kv)2_qTsjjSs;C(Egz9;HQJ>E_K@?%;l1y&-L6vO4#y zKjw72M@}kGlL%;xRQ+s0@GdbwO)U!`=*_cDJtl9Y!`BOd>!%c^@RYO`rq?%Ig?e#5NsHQS0fr)JQ7(vjeObet$nZug<&mSB_dCE9 zG>zD_Ey1-UhP7^!1CiB9)BKh8Y{8C`y%XQ1_wH1hZ^TLWZ2_sCyB4OVSkL(j)Wk(rR#e z@|Li-1Ln-x@3)DtmR7q`#;H{FCN>)o5@nUV2z0`urEx)V2(euv686&Y#CR$(pw)N6 z^gT(tw2py@F;in=r=1*wP7vQ2Rj1)kzks>NARSdV9=XD&LP|c#)dZK@3EYw>?H59RIuY>+9Fxz%ViJPAy|gPTdqBRsZ_6u&Z-w^{b{BGJxKiGEi5}`(0({ zJ(Gv=zoLIh@=2f0BXARmRJ#2Xz>iu-V-I|xCg=GvPb!;0b;Y~?+0oC6N0qvnq@oDj zh}cO*Qjc}Wby+mxMZ>+IW1kCnYPNsCFUHu+@=8F*h8G+j`)U`YXs6bk)60S(0UU)z zvN6F@w9~jz*y#Y>g#nZF(0*u7wA;q8p+EkTiaEAi;Tzx_R<+DBW+rDjP>I4oGNE$4UELX%$?ieWQ3H%_FoW2SD z&}I}QSD z;FYp&CF6|;-OUsF+|gd@x^~of&a$o~at_F-3QQyfq*z1d|0T`FZixTVFd2#mER^6h z4m4cGo~8jN8*Foq{Q^o*+4~Q^Iw{S3z9`H0sA2L*UnCEV1~(Tgt?$AEG#$87$v{}& z1>B11mNWc_`Phzg<1$=+#*dqa`mluNj=f%)|4lR84`WVEpYg6 z%_I0t?%5shI1xq!+{F3ZPgcVh=|_s_rJX<^VAHRE-oW5oryx`wa1=bYm!%Xiq0)sO zg6Z9eiq>{OWvN^=3K=blC5JoK)TDa**ntkUMmopKO|#`)vjTya65ZSKB?gZcU4%v3 zsNaY9?w-|^0rFEfRp9+ex<;SD9=PCM1H~GVV>;$Vje9iG2N{5#umyzo^y&w1e?ACK z!C#vL-O!Qz&pEO|OrKOFZq1uXB9~^lA!m*W*6tM%^^AmNpuo{kF%~bkoUN{<&Wrr} zRtM+%$oVUAwr-JQs_WkAMIwzvB%m*9-7rdGN@}=Gm;v%hdastkN$GC7!y;)#hw6?s ziVskVSxVlP*I^t_-Z%AMrQ4yW?EwG1Kqyo!`{nx+1y&hHz((`mJ?bU)rIVy6)e1NP--x7? zMuhiAw>Zhh;Te0a-)xKVGUf4<8zaiB)XTG5jW?tMTbACDcr$s$lF#VS-lc-qff2;K zY?oRvwKeNn?l5-nsG1V($`#9r1J@(#mNfND!mZhIK&;_mxhj33Kq4AVOa1jy0ih|b z=XS9nG;r#HcJq<7FZ9TGaBdqId7S6|ZIU3`I8NzTl_D$H<|dHp2K1*hSQ@x7MQG1R zJx~R02jy?&-zD{I-r-0f;TGlRz?J=DW^xMsvuGb^IsB#jLb2lB01b5tceCs!5ByyB z7?V88(n|jHf0VmPiheZ;=j6P<4mG(^OVk)bsh8y+)9W<05Yr#!=*n3>Rz8_Cxx=2y zj@|FQ&D60vtN{dKRraMn;~4uZ%Sdg2R5?zY>q=V>@4DD}aTqe0HN97>e_|kr%(a3k_x|3qBR4`#?Q4s0{+UCNYg-YI8@7gKR%JLgXhdLcy=ea1c`ox@Ey4@uR zkcvDu4fsj*h1$q12gaJVf|MSQdxqa8c8$0k-lhO{{NJ$ap=Y6vX5wuBw7qT&AA-y@ zaZ)UaX z*%k>78Y2YT25O=t`|hwzt|S|2xP0p2L&4Iyuz~&1RBsZ?*oBC-DD5wOF5jhP{J+`{ zyPdJ$*6Q{GEbum`&eLPt;kV`HFCVcBaI4NGhwe#*xDNfk$YG<2YT?tfwmh)_KHQM^ zDVLb$H~yNl=_D_DW*v+yJrtK?c`s4kRo|hCeZ#k!ueBjc<+&S^fvYO&9dAVL82+YEJ*CzbE*Ulm%BAGMXo!2uDj=^ z62?7krK2W{(tiQlEkCjOOCQ3`7$ypq<$Vwdg~rT-NFTrTLw`G^U%*n1JyW#gmew#3 z@Af72M%BJ&1E~p*YV)`taC@7FD_vwCSPlI|G0rF*Bz9sPs#rI@C~F;5(U z@F7lQ3E)ys0prd?)Xgh3;frrYKjU>!{ufwI!-3vvtfloNjZveB6;5&@FA$C!=;s^5 z-<@m$u?xxDTF;(Qo2n?t>W(!Tb%uDhQ(xh+bDz#amnWsW1cgpsUQpUT1>WvR#o#q1 zeFtY`=|vDKh-Q6z80eUvg10tm=rj@Z8}oJB7Z|5n>3*`$t}qCGR`mJezAmKkh*acw z?Nf7S<3znCb>uoqg?}rWfy6-T8m|$--JEbf|7cqBEMW zDd(?l4Hn}Svu@W;PfXNWSWWgo6=fTVhSr;+F+d|eedVJv*Q0k7GU3tkoPeYGOWq6Y zPV%P~o`OPi2cw^YCw;E7DGkPSB&2ThB;Gw#TMbT{*Ros7L* zsN1OXLsz{fjrSJ@+5+FierQ*x^!)W@Z_BDU2&aZfUq4FI=Hc+1QwTiZA7%;v;&{^K z#(7HZO^@uWwo+8yw30JY_9X#1L9t3zqpdp}xZXP8%W179m!JyejDZCw+ zL{X#5eY)vXbv)=EGCGXJ(xunAFpf3g`(+ItX1LOJw%z~e0>JUn_lt4$eEf1FyK%-b7R-+ zbQhZI!&>(@>;@;jo|W3-^xlAYcdBYiCsiEGd(9XMC2nx%- zyujzjaJ@G4twN7}0(Fofz0S+;hEbAjCmO(A+UIQjGqb#?BMPDWUG}c1?)3)BT5Q2q ziJ9ukV*ETXxV3A-5Qv-RkA5M1#*lk3mkxE)0n#Q8fTDC%0*Mz8Zze&9ZyJIBSNQ&P zL9;*tC^7gHR{5YUVHaFfdOi^NJYw^NMlv)scZeZ(}`H zoE2c6MroUc{;`Wts!8-3c>RojU2c(>`ta=XUUe7n$B(XiWmRzAv$oqcjsaIW?g_Uj zseuy>AmVm}X6Zjl3d1u;$`n(8ZUa2A8=kczd49Y3R)-GLN+9C|8r<&44wx3N-Z=WQ zE>7Wuw044keCo%KDYXy{x6>4I@%B~Es}(qKtlB6bg(rkM-^uHZ5Z7`!{|RG3EF+MO zWvwJoJu*(>3B%jU;9Qpmo=nZW?G)-3Iv(s`a!Ayi*;bN9@4b*;pFKcLtMA&DkCG0t z9%~3Uj`dUlHl+MOUStTwS}6}?5Y8@79PA}o)&T;eyLY^8pp6c0{!<gJX#z?H<$`|9qRt;Ze)e9fW3o^ zpEls4^LyYnb;;V&xIEu@!l{F-EY%7KEyjnd5ok^i$tDhq$WUPXW+p~vdT$SM=AG5k zEufm-Eg9UYf5a&d?qPls31C71FyEm}?E$^Oh6i(E(_+W4JS|JndD-oP+iR^pAKLkB zua=FgdwN$Fu)j@Q5(p_Kax?PfxlbmorF^G&z!eOSXLeU8!zJEQB-n_a^QWRN z-c*`g_Y?g=wbloMUVNJ}3!q`YJ@XF0GT%Q?-Yr9IPMYFRm=vCv-T99}RbWVP_$9v& zntkex$@%qRu-)M;DG+Fld3s;#+bzbNuH4El=ed{X83zMV95(&Jy}I1L&wp3pQTJzwyNmB{a+Hg63H3+0E};od#_8`ew_~B|HnTgb zIkRcZ-aUbT)y&Dz=}ZVxW!@AAefTssjg6PG%zMS$o6ON${TW{20UP`2F?^U^&RH0I>BCFa`nlh+e6eu84CIlo*){&I|Mz-pz2*IJ z|J}2`Z=b#Q_uaeBxku|Q3!&WaCc?rS1TgP-qj&i!O1dLCe45*FWJuDek8C83#)iP+ z*n!vQ+fQT=L@tjhf%dCujRfcOSs@>_J4ymmV00Wh>9|uIB+V0M2t2IlYZ>+~sbg4q z%KH=!{^k5S3`%PPZNuu?w*{_@N}Fi=Plw{`XH)AxKx85LuDRk-7Y+vpEM(*bSa0sXz$m0JFB1r@#nMmvM>W2*b8&giE9CL2<|dpq z(le&4!n6sk)|Fid0p24UW8m@ z$yg`1HD+xZ@c#3$iGp1Lg8f%q-~ z2}cg}?U6;~-3b*onfpH_f?9`kCqsag)@wTK=t|VKVbX;3eYWlP7EsNgY38A^KGLXS zZG=ek8!6=ToU&o@$zDvYo6p?rYQNEV1;1Pj+B4&DyTKGC+tYFMnRKVM@euq%tk4ZJ1Pad{Cy1 zrJTb{!x1d4Z=9k>)Ll3?7jq3bq|qB6xhug(-V?wjf;^ZvRy_Gz7#=s5hP}9+W&PZ7 zVg8M05{?_z-)<8*7WCS?Ru)DYR-%T_gB=ROr+L|tTp0_>`7Q?tu=>~Z)2@Qb%&e`1 zzRrP|Sk51LJg+bwy8O|tnr2JS1i`ZCTIMfwT;$zmeaS-Amgi_yGZnIDsvt#)lo=c0 zO&vP&OFD}0M?<|YsLA%^x05k4UT2Q9(YOM{=Ml3nCyB-iic--ldSF!;PSf(*0P0)r z<0&2rw7>77KI;s;5^Hm;!W%W1nz<{%L;9~m zI3h#!`@y%iOjH-XUZV-%rUS>-tmX6{Y|0~#&#lfhTAZXZ?Xt5R=3R(8%aT-#Yxv{% zj&fqQy652)k|QP0(9fKn>UyxlF5D9gB{AOa*>-LiBEMz>(NP&zZR~v9x6d>i@0I&A``s90ai^R3k!~Gm79V-DCLgaQ!wV0i&P-03>B)n4m({t>2mbwS_(urj^^jw zBwY9#?)C8^;i*zFyJAgAueH(Ohl zX&&_;wFy;^f`{!=QB!j@o0o#73g)~bGzpE)rFrpF;4|?6f=nWyjwm0;BGFQ0#qr?7 z93FAnCZ}?!kdks)dj@7G{^Ww%mO`9xJ6-K=juHz=LR;-(B)6C}I8}0|386j)NsBv| zis~)-JW~Sc&_38fo$6VaGL2&r;M26d*MK85cn{HYL*rh$W$aVca&LKS`_}D+&Bo`h zaW$|an&cIZ{WSa(VBG-8Hy3vB2? z9^uXUMx>t}cd3ZhDm|o?-_hXGKm6^P#}+fCxW2241H4P9o~h(#aptVpEzNdAd!Ut86D@^jvs!SoM%01J6|~<5a#l-(9unh;`ifDDZG{pdcagRk}UNh1<>fzxXv*^t* zw<;$R!oLub@ObHf{pK~?4XE`Eb2@I=!PE^L%K23H@LK;h)5(6wMhDP@q?ipx%PtiL zDl4@;pfsDdj)d3i$Y66i!^-NjaEM&Iv|7V|&{nUxm23^vhy~T>g^dR$(hmF2D{;UoQ|T;zMnt2G*| zXp&I$)TKeM=KvT&A-+7JO%!GQG%N#cURYP9>~oZ6QNi zg=6I=z|RpesI*X4H1yFZFp###rU{sJ)V8+oC4tm-;1F3b6lbqNoQrUeOZD(JNf8*OkDv@IX;kcznQhoNtV2MDlX35TtSu&R z7iK^;KRD(uKc0hLWB1LB3nwDvAf5l{)d{T*kn5cJP!u8*7SW3B_6E_xPC@iDOwmxW zC>^V3Dds&KG0`6iV3-et$0U?FIAhIo^8}V^&{}SP)Wc@L&nXde%nZc0u}{T|gdJBe8S9R2VCrQqmC;8VhV8;& z8bnV7!@njZGy~nJ8fm%RFig$@Byp;(<6^E?A}2(ORMQnp+CqL8up=m9as|!s88!*3 zjo(NP%0w(hVe#iu#lc#@SiMtP55K(mqi?{?&t**(^Gk5-`F&2dsl|QoG_R6J%!6u+ z;F3-gtX^9&RZBaej*3X%7$eS}bCt2pfja9S`bgs_e$o=$YY<_QyZng{N*jz4Y^}y~ z>kY)S4MyXU_X5sX9S7iH8dMUnce99#kzT0za!Ea4(DZelF{s%*ydR7~X4uWnV%Pq$ zvxFw!TCM5lpzEa$_Snj)n3H8DF2FkK0b|fRa;mxw@U}@yz(g{j!wvv9I>R39*3t0= zs@=ceaq4gRm^tQ%z_SI{q=Hq*UOsFuh3G*tTc<9*|CbkN;D6emqPUs%!aabiy)6Mm zO!FCb*qyjS_A($xV$m6*O6+wOcIZM1482df%1o*=&7rk8InDp5-1JV0h4Voa{3WZz zwO`iu=;#~=x$XRV|3627T%4h&v%7}nlI`-?&;MNNumktN$XLOWI7Tj*^`*f_9Q4DQ z>yW@pFDV2oakmg>&|B(5@Iuy4R^deZ0!1QgP{)wbGWE^PZ$nkLCN^2gR{SSNfYa^{ zG)4Jm&AXtx+ORVWFHmjjkIjj3+M{+_W%5ZbW0H8dI+bJ@*QGzYDu=wV?+%4z{c|ej zW;SBZ@ZX8~zf@fY)($r27y89^5-dr6vD|CWVGmY8ryH>r)kyO5H*scDC50Y9mx*hf zx_C1ijlc3qw|tPLIaMWRe49X&bGwK+mTFXN&zfOaCHgnY%6FhAuT)dg&&{6vfnz(2UWTL+??#n2G-{xKC%bew9%xgRra=FM!lYU_rrsg~PCNoJ44Z=&th9!}tIm`|SRNK+;5xJ-z@iO~%LX&i`rW0O1;Ouxjm ztyf#^dq8x|>&}(F`MCDo4(2b{9oyLDia4Wo(^?kx`97D_9LL{X*}L&g75fwVEOl)+HQ!)mL=0CFF+fHVTfBKODJnNe<)6j*$CC*g6RLz sD)M#kuLyia;41?EUlHgGT+)66u{&aV?`^T`mn1K^`JAo$uc*KMH&6-hssI20 literal 0 HcmV?d00001 diff --git a/software/contrib/osc_control.md b/software/contrib/osc_control.md index 50d1862f0..fade1ac73 100644 --- a/software/contrib/osc_control.md +++ b/software/contrib/osc_control.md @@ -126,9 +126,22 @@ _Configuring TouchOSC's networking_ ### UI setup -The simplest way to control EuroPi via TouchOSC is to add six sliders to your panel. -Then edit each slider to set its name to `europi/cvN` where `N` is the number `1` to -`6`. +#### Sample Setup + +A [sample configuration file](/software/desktop/touch_osc/europi.tosc) is provided +in the `software/desktop` directory. Copy this file onto your device and import it into +TouchOSC. This will automatically add the following controls: + +![TouchOSC Sample Config](./osc_control-docs/touchosc_sample_cfg.png) + +- 6 red sliders to control EuroPi's outputs +- green indicators for the values of `din` and `ain` +- blue indicators for the values of `k1`, `k2`, `b1`, and `b2` + +#### Manual Setup + +To manuyally set up TouchOSC to control EuroPi, add six sliders to your panel. Then edit each +slider to set its name to `europi/cvN` where `N` is the number `1` to `6`. ![TouchOSC Setup](./osc_control-docs/touchosc-setup.png) @@ -155,6 +168,6 @@ _EuroPi's OLED showing the same slider levels as TouchOSC_ If you have a [Music Thing Modular 8mu](https://www.musicthing.co.uk/8mu_page/) you can use it to control EuroPi via OSC. -Refer to the [OSC 8mu interface](/software/desktop/osc_8mu.md) for details on +Refer to the [OSC 8mu interface](/software/desktop/osc_8mu/README.md.md) for details on how to set up your computer to read 8mu's sliders and convert them to OSC messages for EuroPi. diff --git a/software/desktop/README.md b/software/desktop/README.md new file mode 100644 index 000000000..bbcd75f03 --- /dev/null +++ b/software/desktop/README.md @@ -0,0 +1,7 @@ +# Desktop and Mobile Software + +This directory contains programs and configuration files intended to run on your desktop/laptop +computer or mobile device, not on EuroPi itself. + +Please refer to the README.md file in each sub-directory for details on how to set up and use +each piece of software. diff --git a/software/desktop/osc_8mu.md b/software/desktop/osc_8mu/README.md similarity index 100% rename from software/desktop/osc_8mu.md rename to software/desktop/osc_8mu/README.md diff --git a/software/desktop/osc_8mu.py b/software/desktop/osc_8mu/osc_8mu.py similarity index 100% rename from software/desktop/osc_8mu.py rename to software/desktop/osc_8mu/osc_8mu.py diff --git a/software/desktop/touch_osc/README.md b/software/desktop/touch_osc/README.md new file mode 100644 index 000000000..bfc8ece67 --- /dev/null +++ b/software/desktop/touch_osc/README.md @@ -0,0 +1,13 @@ +# Sample TouchOSC Configuration + +This directory contains a sample TouchOSC configuration file designed to work with +[`osc_control`](/software/contrib/osc_control.md). + +To use this layout, copy `europi.tosc` onto your device and open TouchOSC. Import +`europi.tosc` into TouchOSC. This will add the following controls: + +![OSC Layout](/software/contrib/osc_control-docs/touchosc_sample_cfg.png) + +- 6 red sliders to control EuroPi's outputs +- green indicators for the values of `din` and `ain` +- blue indicators for the values of `k1`, `k2`, `b1`, and `b2` diff --git a/software/desktop/touch_osc/europi.tosc b/software/desktop/touch_osc/europi.tosc new file mode 100644 index 0000000000000000000000000000000000000000..5f85833fac8194009025e5592900953536f7aaba GIT binary patch literal 1649 zcmV-%29Ei7obB9QbDByR2k@_wbLCaaJK_wXBR!8VM4&+CDm`= z1p!e!rbPUUiKE+|@1xfle-arZTzYOFx~9XfdN#olm2O=SOz( zEbwPEh#VRgvbCVv1fn%YUo^g?47tVH3Xeo7IZET zQVC~mhO>Ov4>lv|fx+usVCd82b!zBl@@g77Nh%@64i!zR6$Ks*M#OgFuujW^&481D zywOU_=SfTFhQ3H%+3s(KDznlzLw_+em6cw0X?>;FrvWi(o^*`0*?~`oqA^W?(;Xs27olePZ@<&3+uYj#p{xE~!*) z+cMTuv~X*^A(enLKYfcI1BYF9wAf3`@P*83U2di8-ks1ft5>=;7FQmd(!*hq7HdHx zKek?0A(ttcTxnLy_6+ER#BOvQ2LVfm)$xt}y1m>kecXu~E}L8&$_kIM>n4H9o2yI7 z+ibl!uFYbXhUzYnw4Nr?(ok(mlit>$`nEr~869<~-V&}dP}js@HsY+ozjA!hr4hBMy__p=1p;M2rx5-Z4n7pWm)Ju1yuX;c& z%Er2M?$3()giFTa_4SY8o-2D5CmHeoVfBN^&H(TqN?_P=6-BwMJo!l}h{m^PrX3j|T zlKjgCK;r&K;;&DGi(N+MMdS@(lk|?|adT_2xW|9v*K-;R5S}lg;ASpREdXCVbo(8RfJJtR2UUTg;8Nt81>|t38S{nsFFx0wpcbQ>55$# z6-I5YQDqrMg;9@XR0&3fQDIaV6-I?oVbqgnCXCuPqiUki(}cDAsFE$is4!}Cjaquv z7f1zC4~K7+BT#TNhE@5m62-pR3H^dZ7xzv5BmbCKWPBV%?Kcz8ksvgP84#-b$fi~I3;&nQfLC>&h_ivGrpMk(%0kYrEk<{I@?kN27-akf29cn!9dN-Oc2CCI#Fc1vXsFfxR1OqiQGhv{X8K`G#ilTPal7Y;LB5pO% zs6V*t-=FqrMT;g2s(K6E_6TV8y(p@b3rHvkBs9f9zu)70Vyy-0zAfk^!%I}}Lvm_Z zzP9b=TCIoV@Mz%bBL@