From 049e12fd1e27df45a294ecf50426f11c0f620d1c Mon Sep 17 00:00:00 2001 From: serifpersia Date: Sat, 12 Jul 2025 21:42:15 +0200 Subject: [PATCH] playback up to spec, alsa mixers and python gui control panel --- tascam_controls/device.png | Bin 0 -> 166953 bytes tascam_controls/icon.ico | Bin 0 -> 3262 bytes tascam_controls/logo.png | Bin 0 -> 9654 bytes tascam_controls/tascam-controls.py | 250 ++++++++++++++ tascam_streamer | Bin 35424 -> 0 bytes us144mkii.c | 507 ++++++++++++++++++++--------- 6 files changed, 608 insertions(+), 149 deletions(-) create mode 100644 tascam_controls/device.png create mode 100644 tascam_controls/icon.ico create mode 100644 tascam_controls/logo.png create mode 100644 tascam_controls/tascam-controls.py delete mode 100755 tascam_streamer diff --git a/tascam_controls/device.png b/tascam_controls/device.png new file mode 100644 index 0000000000000000000000000000000000000000..2668f95c77ca54ccfa979ae8a8c9219c9a11907d GIT binary patch literal 166953 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

ic%h~OEbt4Onpup&Q)K^8cxb# zzEN7`_jK{@iWuV3LsKOb7v2<6Mi3W!&Wq-VO91;?P!9r*9XmiA_ZS@+<8`n3Dbgge z?O?+gOOu4Ytv)0+AS(C5Sl6U09egV{7k2)U`&MEbU7fePJkP^(T?771Qad}X%3bnA z24T}YjePgETW=MwY#=Z3*ZucBs85|fZ7Pn;$aOPiGK;e$F)r0KF@0ra82=-~!wd`! z5!8%%Zq4cy?AyD8Fa70T&~6WK`IVQGCZ;6MRO$R6&&IBJKZ+YH$4wOT$6P~Sd2)m< zng;m*S5=1QN~>}JT%`0V7S5by@1C8cX+)$mT8_)e=mh7_P2qShaU2oUYj}=}&J>Ol z(C>En=D+?U*Ia)SZ+`1rIk;~Z&pz`kAOFQ)2--tD z_`u_wJa!1z4@?V)Qe`HjORZkF-h*=9W8|IrJR{dj=RJ{%_)sg`hBB-sDWsL_mXhh5 zGOQ`VhoUkEk&c6?$WjY!L&e4INS8G1a`NaT2M_LJ?V1gI;*UPTFMjYt)I7Jc>DbL* zS*fdr%=Y+|%@@&`vLxt?;g-+mKmWHZ&M)#G-}^QMf?xaC`}p|B-p51BV4HdX03ZNK zL_t)KJi*`m)nD_qfB6TtZ{5nJn=fa4e8S|MWSKc=!~8GFUGv;kSz)|Si@74r_K*^tYYq9n^(Zk9Ccdp=2; zaO%WKw1zjl>8IIn@n%j;9>bB6Ol2fl#$vZezt=B%lsRcwN;5Eb99eAGxr5$3ews8% ziNdG=Pc|h+;Gb+y#IZdvwQn? z9=`ux9=`v6Mpq1S@ugRC>#cXNdgW@G^#Fv+_MO|<_52o+B&HwrnV+4bv)JMM`5DqU z`gfnh$nXev-TBj8u;CJpA3nyeojcjP%d}&>x=Az4Gc&Y>1bVJVqhWGK$g(8@0t4KW z6=jqq^*W`3Enmd6u8jOezVMekrvfQs*H>k8$%{&*vUx$}vlNEVk!B$Wk4|#(*goF! z&iC-iPy7*AY+6UEH2u^pfN5%~oK!2)!~!ZaRRAAFMVXMR_fjo5uy;E*Tz?q?L6l^c z86|lAYi{P&TW;X?*Wbc#{>pE#^Mz-*^s>#YSh3E|7o?qwlqi(Kc`quyZ)-X<9tT}f z`B4fA^0rv6lg{z>mGKt3;-j(rs3J4Il2@)oh0kBvxXk-kg?3#PPW=kz2TeVwarVq9 zI*SX8kB{-rx4)6One!%U)`|thNn_KN zlMbFA;Ce1vLlmc^si9owIF=FxX5NSIxinf0UjMq+iB~p|m-y?z{)2l}l319YE*_XP z&B!tnKWUUBnl#h+p3m^e5RH1xNKd6?`HGeN+jqXn1NS|^$nY2w6Dx_+q=eR0v$-oU zh|&^RX?axSqj|s(OK{vTYIT*GtGr26d7!PrCd(Ke9%7gwl!itE38tsc z;(7sb9OL@|jb_W1=%zpH2LWeJo#MW4e~0xKU(9Q7znwR}UpRaE zEGoi%5`#8Tp+b7h&Mn{wXf^_bvaKvxTz+!gMLyTkLY0Iu@nV=^ zm7&FwO(EY@ih!?b=|CAWrK}-MOF@$K+5X&<^!gE>`jgM`v5$Nh>3N)=?~$nJ|`Oq(Xkc}5@ zj0DE@s1SMIy=0Y>v&-0fkO_Qa5*UEpbL%lGLR|FioLPBe49Pa=s#M)si2SD)Spv-MFlr*op&ODM2M1J9-eUHE((2n_0bLB`1!bGBo8Z zMQ56Rw?`BjZdTQ|QYs9sx5O#chFC*oni=_SlB6I6HNQsS2RM#HWHCHdMc)z%vgN#a zp3m^$$V-0h{E6Q{o_zA@!+ZDc17T#lxeHp`-gcU%WSLc8WoDq=YPV>&+s4%82v&|y zFm>iQpZSwdqqXMJ%PzwYe0tq}1-NFm2Stgi~gZ8%ie{G+$OsBSGVIG)Frw9S-FWN|Fe%_=6N=XuhMq=vwNU2Ga7^NTx0zk8W z_f8J%+s`GJUc%VOFk{1G+;-FT_$?3LZGh{bQ^C3OXINaEH;C%`0A9_<^Bko0c=Q%} zOij(Ockh0F@S{o2pF2m~@7cDHkL!D;XRQo<*AbE=itVOm>9B5{ew?y=w1p!a7JGeM z*DbbMrHmA{YD}X@8qBY>ETpF_>89sxMO_k)E6TFs#4f2AJ4J;-rtutyef#&JHGJ~Z zf5!WM;RD2Rh>ju_Iz7%!&(n`0%S|#1mhT&AWTRd)W<*gclCmsCU~(vuEM<$f5Wh$xj$l?o!)x>bE2T2P7)3Xz8>t0_vUucEXxQ4wL3Uqxjmvm`2{ zIEqQD!m0-Wv(x7|H+7bFdw@5+?TyULE+C~tl4Z8ii&*R~m^Q6z26B!g?EJ6%<+$bC zBd234l@UiFVQ37&o;3{yfnoH-abgdSl?x)u1EK3k>h%DWX8neBpM7Nmd8rT14U2|)$90yPa`mkUpCg+_!ab0Q(@`CE%T^Vu79sU^Yn|BJuS-oi+uAcda@!bhLdp|(P}kV zvvwVa_wNJ8K zZ|5st{aZfs#eb&V@|MCSE3*tEGLuGSmoHpO7qr)+Wo2{Z3+SS*4x7slN1(|vOSiS& zfV{<33+kLbeVUoMvwY%HpW$^s^*W9mIK=4a2uYGMH@85NWVo(Ft>zH~zPbO>lx}3$ zYXj|;^&uEEhjB4yB(bts9aDvQjwT7aWEylg;cDCM%jUQ z?g$ZfZkH!L=1`Opuvk7h`TRjt@^XquXCVsA3P`k+96EB4Ol7>`&2M7a_)5;7ow6Am z=GS7kYY%r6!jxRXOyL0$1wua;O{h$h*fk-^QbSa5J!*lE;|Ss?C5%FnG%Z@tIaD%7 zoOpq$RO*cu*Ijenue`E>yo6u(e)k9Z{JFCztGdcEn?-Fmk0eRStlvW`sCfaSBclwq z2WU2%fM#N1jQbz>0pI@4J&cczv3b*GqAV*Qi9+Zii#mtw=>q9sO>G#nSDu5AL-LGj z#khl2nSNwTcfHhgUbM*aqQpK}Ho!(m+rw3oG>ggXLa7kMamd){7_+0(%uJs{x&cCG zs8o}X;96`+zBnlBXQ|aZgfy;mlzC67%9uMh$Ml)0|BtI~GNN6_K?YtyYE>#jtIW11 zmd5Xj(!OjKFqMJQEL*vnR-?v&LkIZLqYv}&<4@Um&^$G;+(Zf*Y=IEThvBj)@1z|N zi;CG$=Xn>EpsQRdR4C$dRb5WFuu-e2O4z@D2k-mfM|sD)?q<*SJ$QAG#a?I@ELY&W zF0SXGvy?28)O??m49_u07*iccvMeLZ6!n^qM$_r^3{}7)SE4v$V4y{kBzT@f;G0c; zq0`~)scDkonC{{tL!%S?`CojApZ~eL*}Ho?&DH>egCitaV(&-mV-@T9qQ%Z~T)XyRUxH5OiTZ<;pN>Q%`%*{=6 z`t(VL2ZnjeU3U^L_DGdM#Rx43qmcRe4oaDgw?wX(1>SWXn*rif0;J5dq?96wWBUCN zl=X4=0X2J|isG0!iA!6rs5Fgi`*IB|S(nbsLe zk`|GsN*Q%alEg%jiKbLphL8@!!y^n057BJasWp6tTLYw8@jw3OA8_jA30`%>4fypI zahjOLnvxQ#D{3pD%c#}dXHdm^7dSgvrrJqS-zgk3PZq z=`Qtp9f3C4+)7ujdqq8!mlT%VDyyxRO8X>tBo`GN<@UMv@(jIEX#<~lzulvrCBk=H!|l8&o!r5*O$}-56>0E zQEZHAY0B)}0^NQ{634`0Sbz-s{XStYWMOuWPG=D<;Pk1p1oeR0P@Bho^bldU$FkKI z*tTtEJrJVQI#=@At8Jws%Y)M6lYe$HH(TaW$ii~Fs;P{k{O|laS3OOlVxG+rBTKSc zWW~cG&F9&u`Rv=Xlezg>-t{x@;w&-~1+5t-OoNAB}*UBhRS zjc3r@5@RGgT+^nMhA5coljfmRdObxn2MT_lR*BKRy9R^+p*pcWALKCM=pyYIeR zyd2iipV$iI@WF#uYMbkkL+zAJFH2H0I8Wl(f(IQM^(Mo^gJy7EtKmqG@fEB2++Ti? zty`bv!V5PrJU&4b#ujB=26yI3d-;P6vZxkv(rzw+6jC6RE~}MdYFQ2&MNz#_oNfwI zuZ@RQSw?$skl+68-(u@?PqSm^0WQ379b2AwoIMAR64ZS(iZBfEe4kdUi6b2@Sihbl zhYr&3_HaDcsKiue)F$?JF+3pKGRTwmlqg87S*FZ;$o+a$hM*O_vZ(ZitHCFQGe1|U zSs{RsCUbglXp}YUHlT%OpxtI*U>J?W5B#Mwq++wM3zEuPEmoFkjhd?H?>i-#*XFYn zVrir2BvYyq<7=b9gs5zEx^P$@n>@^(KDwy?Z!yVv<#>*AS*LdWj8G+Yl=%v;b`taQSBJ;Mkbi z{Oh$Tiu2fdA(M)wC3wA=jVVJ5`R^&>mAP_qh|Ai_J8zl!T%M^`zjZSZY<0p>M z9vtSiuYDa!+%Kua+RWX$-9^$Y#dF=_v(Cj2Qc8m_k#3O^nU5Kjf;dhHlgPBD9LIhh z9%-iNM^OP@6@|#bc#niORk!bZXqB;Q^_rK>I{Fj2f!z1q@9NW2Q|3X=QoB}}Oyn%f z%zetYgevj>$Ye4(igu-tJ&hxO_!2p8AYa?(4`WikVzI< zrN!X3RACtcY_3HYON>{!iAxl&^s<5}<(9b{8XI^MMICDmhmM!c)aFEH9lMFSQ%+D|I)YhFe8y>YB@3mEq0fPkqbtY;6pzE5M>1Otx8d+xrQ#~!?&V}}njHad#u zc_ySQchcu=QcZ#1F?k%K0$R)r={K*gWiBPRfJgztu}GKv`dZ>vE^(EV>a1LLt<@6w zn@LNQqO8bm%gj(46wOA!-rd_!O7WW8Z{gyLRx*8d&X`WK41}iJ>(TFpwo;M>#M6}y zu4P?GVKP9>Ohgt~l_WL8@hr_i3X{<3x@ZJhnwVK>mK8j$oJf#A&z|QN(9yfzc$au( z19^$Qp55~7*LLqTq+P?R(N>|POrJAT2F;vh7TYYS*BT5q+cfKSYOc#rGa$<{{_qb! zMX%f8hF9N&Q)>`KF|IWXmAUCu<`xuHND(kp8G2Lr4pi|Z=I9cU$9m@36a~@*yO66w zS(GUw`whdC?|k2S5-Zww&z9OhCHOG zkXDyaeOV0YEdpI=X3m{PYsJNvZlbfWNF1d^WQB9xvv?Ds4UAG~AX8>oo+k9NlwQAU z?!S7S<;$1RXn15=Gd(@a&h0x{=yr+1h&T#KZDo{)eF>)=2n!*p*_Mp!xj3FfKT6ni z>1M9J=2dKY`o~O9pXY*g7t!x^AuBUqq*YF3S`|S~dBs}{&g~2@uM+YeWPyX1j-8!2 z=Hn+%8_br>k(AO!o=qvf&hKws$!QT4K%ru&JwRt}n&Xp47-+Y6`&-{izn7teQ-~C^ zB%`yiNS0;>cVmsFuIm)>$w*QB%9U6MZ3Ckc6HBX2n=i1~5~0d=x3)qUT``(!Z4MN* zpoS2V<;z#Stk%2BrAs?-XKt*Mt)Olt?(fQSda!Xdx8x$(k zLd}vJ4jqx7%FIIN2#1v`R-;r(81>n=cQ<=??d0C?-^a+{AXi^`DYbzCzIE>d3=a<2 zgeypOO5oL4v1%nV)6?`ii{=z3l_B7g6{;hv7)ID&9<0Hyum)FROsiP%C2y$G7tdEE zofC?)#9m8>(d82eAxKh%WBbavw?+!5Frr}>w<-yE3FOcIol=y_sbVaW11Uv$jSI`R zJ&v2rLy>8P>$t^x)2PB=I5#&#P-`$cHpbjsht6WxY!ph6T69J^BM`QYWq#;1GXf56 z4>hyr&oetc&8ZWE476*UKRdu+Yu(~mPXb($5c)>H=fx(HDtmob+KGgjGVKdw0Xy;&Ky%sq=P(D&)0=^R{p(7rI=kt^W%9qLkiN zT2wh~P89K@l&0y5Y9-UTdc`&2K300Dfxxfh`*l>7kz|T<=cc*myAR@ef_B|7vC<^9 zxf}rr3DR{L9v#K=0~R|Sk~p@~QP4_KWT;js!_`559#SMK4*DhUEniktxylQRZjr*Y z6o&9)ueI665=m}WErQKlQ(6Lu8`12Tu>R@!`(oNmkjz0l_u#_39n$_{r` z#amN)*)lR9>V@>P6u;fJ8-m7jTvV3QU7V-Z9KiDf!Z0%A;6xc-m{s&3?WNNi;n)f$ zGx-!rmKso{=TmRg85Y0gZYWpS}f6h%vD1=z!b>*ihthcwls zSxgYrsJR{}sCzXo+q4mY&g>iubF&PMjG(g=rDZY5hrAM$rJ}8Je`Eb3rD@JCqEZ)g zvg$lx$swo`GayC&wYD8dS#dj#v}#Dx3Y3l+OwhKEMD?DET>ePsiA3BI;I_uOZ8@7_a_WEHBX$@$1sMjWTaVO)vb z6gWaMJUq<6zyMM}qgF#Yb-whaFLUMJkwVT{xw&DC}HDi5);1uZY!e35mo(OVggyxTeCS%@Xy`ue{id|4P4`~4ohUKclzoIgLu z#*5Z7J3ohtQgc$(mM7&n));8weX~?itNGMxby}{#_k9N10}KugGd?lS#Kb7R>k@bY z7uVa2E}vk2cAmwB4*e)Jn@Jp@(uBlOAU)D3MOwC*loFL0uY%)%?+Q+xJYlPVlsJxy zpf9Cz?2A>i74l_EtTpn1%KXmAogK^mD$)mSN+Cic3UjM2vgftPGtE^+&1Hx8Ir`nU z2TfHi3zCBrlDhA4@XREjdD~mw#>$D6OrM`I-GI#ayB51$`n|6CGj_8uvUbzz6GAL; zpzEUbs?b?V7)B&^zUfFKwU$znBpG2CnmKAEu~JA;Q7cM(*T-=jHeP!1M_+F1>QBrD zGI{ja$8*VKrpri7v?h%cLW>_L@-eigQLi&PHcSv0N$axlaqfHIKEC(eZ_{eFS%2Y$ zq;Xm~$u51+Oe>~L7Ssi*U6gE~JW^Ft7^bSZ0Y$<=MWLkZ;9OX5#1eC&%>c<2^~(0` zaisB9C}F~=qQ`%78I_!cgFJ5rL4UG%gvi=PR({uN)j%1ICAg+x7~6BQ)kaI*Pkbf5`=*E-~f$!9fd}v8EK~Q zJ(uCpVVcbbje5hJyj_omU!&2en<_Mi@%fr|vt<;5trl8kgki+Y%nS>2^ENrtcoIBe zRCy|ehFimR%y53Ov&hzM&)XrjB2y`O#BGk@Fk=j5XI*7ffLc<0*smqC$PNnWc?tEj zhaPQBuNE4rrLuBricR0}zwGCkDRa;&WWTm^kO};{PZ;$%a_kt*)&M_s*Bgl9#7ejg zuBRXN>36%NNowXo#e-$t=DGV^P%yFVxe1gYjAQyyRBUd(@8S6YT0@+q2AWtwvE)oG zos*(Hla(_*v7D=~zWOg-*+5=`uZJFbSf4m{j3^9?7D7&~O|q0;6q&Y`JuaszBk%*3 zFJHmX;1DQ9y;GVhI;w2`=08_;rahu@AU(oMI+|5O#K<5W*=oDy0>U6e!yca$J{G8eE9$ zd8DaXjFe;051!{yQ#CVOw4AU^8RSWpDY7Ijq|p>IN>xZZi=|s>YV|rRSFJQ5SFVe6 zT=O+j(HP2)xd;@g z7R0GJNJvLkB)gdEjWT*x+MQq9Dlf}2mJN^cm9P90&u!UZq_w0RIdYKh+&r@j^Q^mQ zGsh>7@XQmB^YQ=kVU{glh9e!O&z(1?Rs=(1qcnWqnpIPzB@27LPovpDTMF>tP@8tE ziR&7fvC6oeuO`N3k`w>}cHho9Bc%Fyr8e?x5MPzAO5n0&8Lc7^YAqadQ>3D3~ zwCU|H$F=okzk%%9wQJ+f7j_s0MXHLEu~8K%q9`Uy)5?M0^x{W`M;IF&McL%BRih*P zk3aY%`}gl*^{O?jyYOQAVZSV0^M^(h$wl@QtBYB>EMRn1l4&_`S9yy7iohv~7;U^sG&I*kS;=#frl$3z z%wnu;TBA~?5=xWQCOIbb7khy5EVw}pKk(5)GBekq(FhO->W#V)D=0zD52*P8a%8yJ zT%~j1$w5mk%HbBKBo({po3z;#`G-^KL<{8|k>k0i}XNoc7WHq~Qs0H{y^ zG`PalX-_}*G>()kn;7HBfjyj`ngU^*+f7_YmS+cT?UALt|D<#$Rcgf%t6e8@8+#7TZyD;Mn4J- z;z%o7t#|~!X-9=&Oh3%gIr8G?uj)M@AxtVjUS-*y`+vSfx`Nv#)?X_&YWIacZPO@x#l$n`1=H@$ex{G-A z8ouYz_B@nDr+A*rz<`NKc0IS~6bV~R;DQklY2s8E&xq$5hFg~6DI-nwYaX?}Z?HUB zhUdAUVQgfC>CP-WcJ2fXPAy<&VV>cE7FsLfD8UIllXIeVd9Wy2SfzSQ=n7V+qO~&B ziK>VwL@`L0LL2#&l%|y_C^`eCg;-XAg_&tordGP)R^_erLNRq^|no93Pnp%LO9b%f(v!E9E ztXQ_3)<7E#3=X#G^ddg{g)h?WcDV7@TksoAI`dtm>y$3(!kYn0T*-EoD|)0NhZ>fd zAR26&q>?wNOB-H}9Ld9qs(A6zgFrzx&G8Ur^&u;*0g8O?%1>pt7GY;9!p?|{+|jiz z>{J@jflwMDR7o1vqHv&RS!UQnX;J|Av_1V^bKNHX`tyIvW6y2lspp>I`7O`0_314f zKR!tkbs3wOpw_4xmXsaT=09_qDIDqHx?VA_NNpy4?)%Hr^Gs{YY$CIB^JHm4tzP5C z%dTR4(6ob|-*J$ArwGdq}GGy9D?^@A=@gU3}lCUJr~s*Ab;jyP&L_*^lG+$XJp}6OyEp7zfvUHl8TdPM)V}wHwrH9%0mF zVth4!_TRrix3j?V73*+4k5gw)AazE2Xb4AmOr1Q%;P4=|db8L(bp^STZ?eVzt7LdM zwxy^G!=G3pt45oaX^xFIGUl?%(v}pUtTa1Er({Y|uhp13Kh42|`*D4rpMKk0sQYym z<`>OOGfhb2n0~)!48fFs7%8mV+%deX@|P?;E}6>c#}T2WQcFkRIWDzYfa^L$VMMpr zw+2P?JSiLMBXsUOm$zYe2(IH$_v?%d5A&7({r5ck+%v3OcOfg5uco`$N4Ua<5s3=2q&lK2b0vhW z401kJA!W21iOhQ@cA#F$MMXjK)D_KR-p3V{Dn!~NyR4qvD=o4msfYRLF8`-uq|1L+ zAtbKn;Q5Z}w+j=t6ZiqX@0<8e`^)5^dv?*Q(`+ksZD z?8n@3%k6ye&;FPn+;=bEfABs&@h6|=qKhvkj1nBjGqVua!ErofCwb zw6-VXLUf?ZVXRQ5XP+i1-I;kj*JsuE1pn8EKg#OW%UHj1oR9y~2UxLUB}hr9)3H=p zQ@!L@BR^$V6`+%$XfM);!mQ^_6w*^OBav2` zYE(smA22j9z{L14t#*T2;B(1E8~ED4eS3lyh0p#kR;^l1RN(VjQfU_%8O8l1i~EV9;;zKg3T?3Q7E+mC*WAA+u!de;2}`SF z?;3TXq*beN^zZ@FH06pbuH>ehZen(Jrci5X6j2frhM~zjw=!Up?_qMz3+zvxe{Lnb zIS()F_f7Jsb(RM~jatnIE$D|aaT1m6E=w^sGZlew!1c^MylmOBmvx8dWeZch=Ud;` z-R=T$9GZT8J_uDNb+F$z{Y|YjNoEG%1FZp8tzJc|-NF%?k>O$X?%&5JKKUtxmRxz= z)dq*5Dib};5;S|Y54>biE*AAtErpfi3M?SgN7igo`ty?&YwHS`RQpookfx`#P=PO0B8q`vO+I)9HVS8 zU^7@}`YnCrx&A~mpn4Rz71sa7Mte!vsk_R$R^nu9H42&~K)M1^l9v@xp{Y9dOdR+^=_!eODaz^UU$K{$pioS7>; zH-C;*Yu3?f4Rhw~B;Wkjw^+4m1-IUOJsLs1QDbOuzqvn5Agif zr--5mN4Tt5y_{3$&e4k^CXXFsaiNFfI<}1`t;D&?G0PQN%1X?Il|1W`(I%FpmKU3` zsHm%o15Pf6kQD`@t#$_*b&@n>+Y8&sGR?33*I#G-+6!1%Sg@Uilq62*E_UhndSq#8 zpFeXDGWVu6_T}k=j$`J0j(Hzp7}Du<$+8q}jhf9ygPQLXh7q nv(h1YeW*DWy}8 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 literal 0 HcmV?d00001 diff --git a/tascam_controls/icon.ico b/tascam_controls/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e2fa7c0058e14c61bbaa18a470304a753a3cd8a9 GIT binary patch literal 3262 zcmcJS%WD%+6vl6GqfkLy1UEuJ4MI~aBD!&*AORt?MUjdcDu{OD!iBU*#iWgo+VPoE zrE2P{g5a}YsYo0ZwNiCevK8DE5jXw=qF;03;c#C}p)>jBa^}p;@0>YvId`H|0>4yB z)whRDN+n^f$DYEz4SPbZ!iWv$^lk3@&*75;W5u9S7-He@cK^Aa&aiiHwW0j;-mb?d z@{^U);mX;4(9@usG!b+k9o&D+rq|Oi-cP(ev}u>ABU^GUs?wUcA+>qg)$<)ogAS!> z^&VwaaJO%E`kM(SkIB!dJB4gggX7Q&hx5vV(x<5z7hh)1wh8y}FOLtn>Vu%nl*U5& z;gc}F{89gR&#Lk9QUAE>GxO?eeEH-3etA=~@-hGAYbAT3^Aq*Q`^`7!EXripsu4{s z>OyIUBFTxgJf~LLbo$nD^ou`#=VB5yBP)DGeM_g)R>OLW>2&cKOK@`x!?0GX$WF{Lpr494GCwP4O~V! zQ+@pT;~FzG2$IHe$&XXf^SAO5k(d-kj^sB}vU=zNt)~{n3BId89Ndsyr$(FAbt&|R zGdtDA_Ibe|!L~LBIME+m{W<#j4!&#sMSs)!Gc`KE(NwX%qrXw-gn-+ZP{kAouvTYW&Hln!l2cPpt&RwmYaxF0XKRlApwu_JTk=J)r z=0Ilm;_^{{st@3jOt!2)KMUt94OjmD?;p%h#=@X?EwOBS_^$6m*ZgEA8`}Jlu~2`{ z`X2H7)5AyofBpFV=-RkdBgGG_;ZxPRrY3LpKrhGos`vU?sIw`+KhJ)o78GqP;;+R2 T9e*YgxT~=@v48$N{E@eR{)(k_ literal 0 HcmV?d00001 diff --git a/tascam_controls/logo.png b/tascam_controls/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d3fd4e86a1176f544e1db0be1c6cb801c43b00aa GIT binary patch literal 9654 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 Y?xEKNgAbDQCzAlAk%eKIzUzhm0jk4V=Kufz literal 0 HcmV?d00001 diff --git a/tascam_controls/tascam-controls.py b/tascam_controls/tascam-controls.py new file mode 100644 index 0000000..734d841 --- /dev/null +++ b/tascam_controls/tascam-controls.py @@ -0,0 +1,250 @@ +import sys +import subprocess +import re +import os +from PyQt6.QtWidgets import (QApplication, QWidget, QLabel, QComboBox, + QPushButton, QGridLayout, QVBoxLayout, QHBoxLayout, QMessageBox) +from PyQt6.QtGui import QPixmap, QFont, QIcon +from PyQt6.QtCore import Qt + +def resource_path(relative_path): + try: + base_path = sys._MEIPASS + except Exception: + base_path = os.path.abspath(os.path.dirname(__file__)) + return os.path.join(base_path, relative_path) + +DARK_STYLESHEET = """ +QWidget { + background-color: #2b2b2b; + color: #f0f0f0; + font-family: Arial; +} +QLabel { + background-color: transparent; +} +QComboBox { + background-color: #3c3f41; + border: 1px solid #555; + border-radius: 4px; + padding: 4px; +} +QComboBox:hover { + border: 1px solid #777; +} +QComboBox::drop-down { + border: none; +} +QComboBox QAbstractItemView { + background-color: #3c3f41; + border: 1px solid #555; + selection-background-color: #5a5d5f; +} +QPushButton { + background-color: #3c3f41; + border: 1px solid #555; + border-radius: 4px; + padding: 5px; +} +QPushButton:hover { + background-color: #4f5254; +} +QPushButton:pressed { + background-color: #5a5d5f; +} +""" + +class AmixerController: + @staticmethod + def get_card_id(card_name="US144MKII"): + try: + output = subprocess.check_output(['aplay', '-l'], text=True) + for line in output.splitlines(): + if card_name in line: + match = re.match(r'card (\d+):', line) + if match: + return match.group(1) + except (FileNotFoundError, subprocess.CalledProcessError): + return None + return None + + @staticmethod + def get_control_value(card_id, control_name): + if not card_id: return 0 + try: + cmd = ['amixer', '-c', card_id, 'cget', f"name='{control_name}'"] + output = subprocess.check_output(cmd, text=True, stderr=subprocess.DEVNULL) + for line in output.splitlines(): + if ': values=' in line: + return int(line.split('=')[1]) + except (FileNotFoundError, subprocess.CalledProcessError, IndexError, ValueError): + return 0 + return 0 + + @staticmethod + def get_control_string(card_id, control_name): + if not card_id: return "N/A" + try: + cmd = ['amixer', '-c', card_id, 'cget', f"name='{control_name}'"] + output = subprocess.check_output(cmd, text=True, stderr=subprocess.DEVNULL) + for line in output.splitlines(): + if ': values=' in line: + value_str = line.split('=')[1] + byte_values = [int(b, 16) for b in value_str.split(',')] + return bytes(byte_values).partition(b'\0')[0].decode('utf-8', errors='ignore').strip() + except (FileNotFoundError, subprocess.CalledProcessError, IndexError, ValueError): + return "Error" + return "N/A" + + @staticmethod + def set_control_value(card_id, control_name, value): + if not card_id: return False + try: + cmd = ['amixer', '-c', card_id, 'cset', f"name='{control_name}'", str(value)] + subprocess.check_call(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + return True + except (FileNotFoundError, subprocess.CalledProcessError): + return False + + @staticmethod + def read_sysfs_attr(card_id, attr_name): + path = f"/sys/class/sound/card{card_id}/device/{attr_name}" + if os.path.exists(path): + try: + with open(path, 'r') as f: + return f.read().strip() + except IOError: + return "N/A" + return "N/A" + +class TascamControlPanel(QWidget): + def __init__(self, card_id): + super().__init__() + self.card_id = card_id + self.init_ui() + self.load_dynamic_settings() + + def init_ui(self): + self.setWindowTitle("TASCAM US-144MKII Control Panel") + self.setWindowIcon(QIcon(resource_path("icon.ico"))) + self.setFixedSize(800, 450) + self.setStyleSheet(DARK_STYLESHEET) + + main_layout = QHBoxLayout(self) + left_panel, middle_panel, right_panel = QVBoxLayout(), QVBoxLayout(), QVBoxLayout() + + header_layout = QVBoxLayout() + logo_label = QLabel() + logo_label.setPixmap(QPixmap(resource_path("logo.png")).scaled(250, 50, Qt.AspectRatioMode.KeepAspectRatio, Qt.TransformationMode.SmoothTransformation)) + title_label = QLabel("US-144 MKII Control Panel") + title_label.setFont(QFont("Arial", 15, QFont.Weight.Bold)) + header_layout.addWidget(logo_label) + header_layout.addWidget(title_label) + + info_layout = QGridLayout() + self.info_labels = {} + info_data = { + "Driver Version:": "N/A", "Device:": "US-144 MKII", + "Sample Width:": "24 bits", "Sample Rate:": "N/A", + "Sample Clock Source:": "internal", "Digital Input Status:": "unavailable" + } + for row, (label_text, value_text) in enumerate(info_data.items()): + key = label_text.replace(":", "").replace(" ", "_").lower() + label = QLabel(label_text, font=QFont("Arial", 10, QFont.Weight.Bold)) + value_label = QLabel(value_text, font=QFont("Arial", 10)) + info_layout.addWidget(label, row, 0, Qt.AlignmentFlag.AlignLeft) + info_layout.addWidget(value_label, row, 1, Qt.AlignmentFlag.AlignLeft) + self.info_labels[key] = value_label + + left_panel.addLayout(info_layout) + left_panel.addStretch() + + middle_panel.setSpacing(15) + latency_container, self.latency_combo = self.create_control_widget("Audio Performance", ["Low", "Normal", "High"]) + mock_container1, _ = self.create_control_widget("Sample Clock Source", ["Internal", "Auto"]) + mock_container2, _ = self.create_control_widget("Digital Output Format", ["S/PDIF"]) + routing_container, self.routing_combo = self.create_control_widget("LINE OUTPUTS", ["Stereo to All", "Swapped", "Digital In to All"]) + + middle_panel.addWidget(latency_container) + middle_panel.addWidget(mock_container1) + middle_panel.addWidget(mock_container2) + middle_panel.addWidget(routing_container) + middle_panel.addStretch() + + device_image_label = QLabel() + device_image_label.setPixmap(QPixmap(resource_path("device.png")).scaled(250, 250, Qt.AspectRatioMode.KeepAspectRatio, Qt.TransformationMode.SmoothTransformation)) + device_image_label.setAlignment(Qt.AlignmentFlag.AlignCenter) + exit_button = QPushButton("Exit") + exit_button.setFixedSize(100, 30) + exit_button.clicked.connect(self.close) + right_panel.addWidget(device_image_label) + right_panel.addStretch() + right_panel.addWidget(exit_button, 0, Qt.AlignmentFlag.AlignCenter) + + top_level_layout = QVBoxLayout() + top_level_layout.addLayout(header_layout) + top_level_layout.addSpacing(20) + panels_layout = QHBoxLayout() + panels_layout.setContentsMargins(10, 0, 10, 0) + panels_layout.addLayout(left_panel, 1) + panels_layout.addLayout(middle_panel, 1) + panels_layout.addLayout(right_panel, 1) + top_level_layout.addLayout(panels_layout) + main_layout.addLayout(top_level_layout) + self.setLayout(main_layout) + + self.latency_combo.currentIndexChanged.connect(self.on_latency_changed) + self.routing_combo.currentIndexChanged.connect(self.on_routing_changed) + + def create_control_widget(self, label_text, combo_items): + container_widget = QWidget() + layout = QVBoxLayout(container_widget) + layout.setContentsMargins(0,0,0,0) + layout.setSpacing(2) + label = QLabel(label_text, font=QFont("Arial", 10, QFont.Weight.Bold)) + combo_box = QComboBox() + combo_box.addItems(combo_items) + layout.addWidget(label) + layout.addWidget(combo_box) + return container_widget, combo_box + + def load_dynamic_settings(self): + driver_ver = AmixerController.read_sysfs_attr(self.card_id, "driver_version") + self.info_labels['driver_version'].setText(driver_ver) + + rate_val = AmixerController.get_control_value(self.card_id, "Sample Rate") + if rate_val > 0: + self.info_labels['sample_rate'].setText(f"{rate_val / 1000:.1f} kHz") + else: + self.info_labels['sample_rate'].setText("N/A (inactive)") + + latency_val = AmixerController.get_control_value(self.card_id, "Latency Profile") + self.latency_combo.blockSignals(True) + self.latency_combo.setCurrentIndex(latency_val) + self.latency_combo.blockSignals(False) + + routing_val = AmixerController.get_control_value(self.card_id, "Playback Routing") + self.routing_combo.blockSignals(True) + self.routing_combo.setCurrentIndex(routing_val) + self.routing_combo.blockSignals(False) + + def on_latency_changed(self, index): + AmixerController.set_control_value(self.card_id, "Latency Profile", index) + + def on_routing_changed(self, index): + AmixerController.set_control_value(self.card_id, "Playback Routing", index) + +def main(): + app = QApplication(sys.argv) + + card_id = AmixerController.get_card_id() + if not card_id: + QMessageBox.critical(None, "Error", "TASCAM US-144MKII Not Found.\nPlease ensure the device is connected and the 'us144mkii' driver is loaded.") + sys.exit(1) + + panel = TascamControlPanel(card_id) + panel.show() + sys.exit(app.exec()) + +if __name__ == '__main__': + main() diff --git a/tascam_streamer b/tascam_streamer deleted file mode 100755 index 458167eb0bb3be540779b2b3dfb36d0951df47fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35424 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 #include #include +#include #include #include #include #include +#include MODULE_AUTHOR("serifpersia "); MODULE_DESCRIPTION("ALSA Driver for TASCAM US-144MKII"); MODULE_LICENSE("GPL"); #define DRIVER_NAME "us144mkii" +#define DRIVER_VERSION "1.0" /* * TODO: * - Implement audio input capture. * - Implement MIDI IN/OUT. - * - Expose hardware features via the ALSA Control API (mixers): - * - Digital output format selection. - * - Input/output routing. */ - /* --- Module Parameters --- */ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; static bool enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 0}; static int dev_idx; -static int playback_urb_packets = 8; - -module_param_array(index, int, NULL, 0444); -MODULE_PARM_DESC(index, "Index value for the US-144MKII soundcard."); -module_param_array(id, charp, NULL, 0444); -MODULE_PARM_DESC(id, "ID string for the US-144MKII soundcard."); -module_param_array(enable, bool, NULL, 0444); -MODULE_PARM_DESC(enable, "Enable this US-144MKII soundcard."); -module_param_named(playback_urb_packets, playback_urb_packets, int, 0644); -MODULE_PARM_DESC(playback_urb_packets, "Number of isochronous packets per playback URB (default: 8). Higher values may improve CPU efficiency but require a low-latency or RT kernel to avoid xruns."); /* --- USB Device Identification --- */ #define USB_VID_TASCAM 0x0644 #define USB_PID_TASCAM_US144MKII 0x8020 /* --- USB Endpoints (Alternate Setting 1) --- */ -#define EP_PLAYBACK_FEEDBACK 0x81 -#define EP_AUDIO_OUT 0x02 -#define EP_MIDI_IN 0x83 -#define EP_MIDI_OUT 0x04 -#define EP_AUDIO_IN 0x86 +#define EP_PLAYBACK_FEEDBACK 0x81 +#define EP_AUDIO_OUT 0x02 +#define EP_MIDI_IN 0x83 +#define EP_MIDI_OUT 0x04 +#define EP_AUDIO_IN 0x86 /* --- USB Control Message Protocol --- */ #define RT_H2D_CLASS_EP (USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_ENDPOINT) +#define RT_D2H_CLASS_EP (USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_ENDPOINT) #define RT_H2D_VENDOR_DEV (USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE) #define RT_D2H_VENDOR_DEV (USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE) #define UAC_SET_CUR 0x01 +#define UAC_GET_CUR 0x81 #define UAC_SAMPLING_FREQ_CONTROL 0x0100 #define VENDOR_REQ_REGISTER_WRITE 0x41 #define VENDOR_REQ_MODE_CONTROL 0x49 @@ -80,19 +71,55 @@ MODULE_PARM_DESC(playback_urb_packets, "Number of isochronous packets per playba #define REG_VAL_ENABLE 0x0101 /* --- URB Configuration --- */ -#define NUM_PLAYBACK_URBS 8 -#define NUM_FEEDBACK_URBS 4 -#define MAX_FEEDBACK_PACKETS 5 /* Max packets needed for any profile */ -#define FEEDBACK_PACKET_SIZE 3 -#define USB_CTRL_TIMEOUT_MS 1000 +#define NUM_PLAYBACK_URBS 8 +#define PLAYBACK_URB_PACKETS 4 +#define NUM_FEEDBACK_URBS 4 +#define MAX_FEEDBACK_PACKETS 5 +#define FEEDBACK_PACKET_SIZE 3 +#define USB_CTRL_TIMEOUT_MS 1000 /* --- Audio Format Configuration --- */ -#define BYTES_PER_SAMPLE 3 -#define NUM_CHANNELS 4 +#define BYTES_PER_SAMPLE 3 +#define NUM_CHANNELS 4 #define BYTES_PER_FRAME (NUM_CHANNELS * BYTES_PER_SAMPLE) -#define FEEDBACK_ACCUMULATOR_SIZE 128 +#define FEEDBACK_ACCUMULATOR_SIZE 128 + +/* --- Main Driver Data Structure --- */ +struct tascam_card { + struct usb_device *dev; + struct usb_interface *iface0; + struct usb_interface *iface1; + struct snd_card *card; + struct snd_pcm *pcm; + + struct snd_pcm_substream *playback_substream; + struct urb *playback_urbs[NUM_PLAYBACK_URBS]; + size_t playback_urb_alloc_size; + + struct urb *feedback_urbs[NUM_FEEDBACK_URBS]; + size_t feedback_urb_alloc_size; + + spinlock_t lock; + atomic_t playback_active; + int current_rate; + unsigned int latency_profile; + unsigned int playback_routing; + + unsigned int feedback_accumulator_pattern[FEEDBACK_ACCUMULATOR_SIZE]; + unsigned int feedback_pattern_out_idx; + unsigned int feedback_pattern_in_idx; + bool feedback_synced; + unsigned int feedback_urb_skip_count; + + u64 playback_frames_consumed; + snd_pcm_uframes_t driver_playback_pos; + u64 last_period_pos; + + const unsigned int (*feedback_patterns)[8]; + unsigned int feedback_base_value; + unsigned int feedback_max_value; +}; -struct tascam_card; static struct usb_driver tascam_alsa_driver; /* --- Forward Declarations --- */ @@ -104,6 +131,186 @@ static void tascam_disconnect(struct usb_interface *intf); static int tascam_suspend(struct usb_interface *intf, pm_message_t message); static int tascam_resume(struct usb_interface *intf); +/* --- Sysfs Attribute for Driver Version --- */ +/** + * driver_version_show - Sysfs callback to show the driver version. + * @dev: The device structure. + * @attr: The device attribute structure. + * @buf: The buffer to write the version string into. + * + * Returns: The number of bytes written. + */ +static ssize_t driver_version_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "%s\n", DRIVER_VERSION); +} +static DEVICE_ATTR_RO(driver_version); + +/* --- ALSA Control Definitions --- */ +static const char * const latency_profile_texts[] = {"Low", "Normal", "High"}; + +static int tascam_latency_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) +{ + uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; + uinfo->count = 1; + uinfo->value.enumerated.items = 3; + if (uinfo->value.enumerated.item >= 3) + uinfo->value.enumerated.item = 2; + strcpy(uinfo->value.enumerated.name, latency_profile_texts[uinfo->value.enumerated.item]); + return 0; +} + +static int tascam_latency_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) +{ + struct tascam_card *tascam = (struct tascam_card *)snd_kcontrol_chip(kcontrol); + switch (tascam->latency_profile) { + case 1: ucontrol->value.enumerated.item[0] = 0; break; + case 2: ucontrol->value.enumerated.item[0] = 1; break; + case 5: ucontrol->value.enumerated.item[0] = 2; break; + default: ucontrol->value.enumerated.item[0] = 1; break; + } + return 0; +} + +static int tascam_latency_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) +{ + struct tascam_card *tascam = (struct tascam_card *)snd_kcontrol_chip(kcontrol); + unsigned int new_profile; + bool changed = false; + + switch (ucontrol->value.enumerated.item[0]) { + case 0: new_profile = 1; break; + case 1: new_profile = 2; break; + case 2: new_profile = 5; break; + default: return -EINVAL; + } + + if (tascam->latency_profile != new_profile) { + tascam->latency_profile = new_profile; + changed = true; + } + return changed; +} + +static const struct snd_kcontrol_new tascam_latency_control = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Latency Profile", + .info = tascam_latency_info, + .get = tascam_latency_get, + .put = tascam_latency_put, +}; + +static const char * const playback_routing_texts[] = {"Stereo to All", "Swapped", "Digital In to All"}; + +static int tascam_routing_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) +{ + uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; + uinfo->count = 1; + uinfo->value.enumerated.items = 3; + if (uinfo->value.enumerated.item >= 3) + uinfo->value.enumerated.item = 2; + strcpy(uinfo->value.enumerated.name, playback_routing_texts[uinfo->value.enumerated.item]); + return 0; +} + +static int tascam_routing_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) +{ + struct tascam_card *tascam = (struct tascam_card *)snd_kcontrol_chip(kcontrol); + ucontrol->value.enumerated.item[0] = tascam->playback_routing; + return 0; +} + +static int tascam_routing_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) +{ + struct tascam_card *tascam = (struct tascam_card *)snd_kcontrol_chip(kcontrol); + unsigned int new_routing = ucontrol->value.enumerated.item[0]; + bool changed = false; + + if (new_routing >= 3) + return -EINVAL; + + if (tascam->playback_routing != new_routing) { + tascam->playback_routing = new_routing; + changed = true; + } + return changed; +} + +static const struct snd_kcontrol_new tascam_routing_control = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Playback Routing", + .info = tascam_routing_info, + .get = tascam_routing_get, + .put = tascam_routing_put, +}; + +/** + * tascam_samplerate_info - ALSA control info callback for the sample rate. + * @kcontrol: The kcontrol instance. + * @uinfo: The user control element info structure to fill. + * + * Provides information about the read-only sample rate control. + * + * Returns: 0 on success. + */ +static int tascam_samplerate_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) +{ + uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; + uinfo->count = 1; + uinfo->value.integer.min = 0; + uinfo->value.integer.max = 96000; + return 0; +} + +/** + * tascam_samplerate_get - ALSA control get callback for the sample rate. + * @kcontrol: The kcontrol instance. + * @ucontrol: The user control element value structure to fill. + * + * Reports the current sample rate of the device. It first checks the driver's + * internal state. If no stream is active, it queries the device directly via + * a USB control message. + * + * Returns: 0 on success, or a negative error code on failure. + */ +static int tascam_samplerate_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) +{ + struct tascam_card *tascam = (struct tascam_card *)snd_kcontrol_chip(kcontrol); + u8 *buf; + int err; + u32 rate = 0; + + if (tascam->current_rate > 0) { + ucontrol->value.integer.value[0] = tascam->current_rate; + return 0; + } + + buf = kmalloc(3, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + err = usb_control_msg(tascam->dev, usb_rcvctrlpipe(tascam->dev, 0), + UAC_GET_CUR, RT_D2H_CLASS_EP, + UAC_SAMPLING_FREQ_CONTROL, EP_AUDIO_IN, + buf, 3, USB_CTRL_TIMEOUT_MS); + + if (err >= 3) + rate = buf[0] | (buf[1] << 8) | (buf[2] << 16); + + ucontrol->value.integer.value[0] = rate; + kfree(buf); + return 0; +} + +static const struct snd_kcontrol_new tascam_samplerate_control = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Sample Rate", + .info = tascam_samplerate_info, + .get = tascam_samplerate_get, + .access = SNDRV_CTL_ELEM_ACCESS_READ, +}; + /* --- Rate-to-Packet Fixing Data (Verified) --- */ static const unsigned int patterns_48khz[5][8] = { {5, 6, 6, 6, 5, 6, 6, 6}, {5, 6, 6, 6, 6, 6, 6, 6}, @@ -126,40 +333,6 @@ static const unsigned int patterns_44khz[5][8] = { {6, 6, 6, 5, 6, 6, 6, 5} }; -/* --- Main Driver Data Structure --- */ -struct tascam_card { - struct usb_device *dev; - struct usb_interface *iface0; - struct usb_interface *iface1; - struct snd_card *card; - struct snd_pcm *pcm; - - struct snd_pcm_substream *playback_substream; - struct urb *playback_urbs[NUM_PLAYBACK_URBS]; - size_t playback_urb_alloc_size; - - struct urb *feedback_urbs[NUM_FEEDBACK_URBS]; - size_t feedback_urb_alloc_size; - - spinlock_t lock; - atomic_t playback_active; - int current_rate; - - unsigned int feedback_accumulator_pattern[FEEDBACK_ACCUMULATOR_SIZE]; - unsigned int feedback_pattern_out_idx; - unsigned int feedback_pattern_in_idx; - bool feedback_synced; - unsigned int feedback_urb_skip_count; - - u64 playback_frames_consumed; - snd_pcm_uframes_t driver_playback_pos; - u64 last_period_pos; - - const unsigned int (*feedback_patterns)[8]; - unsigned int feedback_base_value; - unsigned int feedback_max_value; -}; - static const struct snd_pcm_hardware tascam_pcm_hw = { .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID | @@ -218,10 +391,10 @@ static int tascam_alloc_urbs(struct tascam_card *tascam) size_t max_packet_size; max_packet_size = ((96000 / 8000) + 2) * BYTES_PER_FRAME; - tascam->playback_urb_alloc_size = max_packet_size * playback_urb_packets; + tascam->playback_urb_alloc_size = max_packet_size * PLAYBACK_URB_PACKETS; for (i = 0; i < NUM_PLAYBACK_URBS; i++) { - struct urb *urb = usb_alloc_urb(playback_urb_packets, GFP_KERNEL); + struct urb *urb = usb_alloc_urb(PLAYBACK_URB_PACKETS, GFP_KERNEL); if (!urb) goto error; tascam->playback_urbs[i] = urb; @@ -418,27 +591,26 @@ static int tascam_pcm_prepare(struct snd_pcm_substream *substream) tascam->feedback_synced = false; tascam->feedback_urb_skip_count = NUM_FEEDBACK_URBS * 2; - dev_dbg(tascam->card->dev, "Prepare: Sync state reset, starting in unsynced mode.\n"); - /* Initialize feedback accumulator with nominal values */ nominal_frames_per_packet = runtime->rate / 8000; for (i = 0; i < FEEDBACK_ACCUMULATOR_SIZE; i++) tascam->feedback_accumulator_pattern[i] = nominal_frames_per_packet; - /* - * Configure URBs based on the fixed hardware profile for the current sample rate. - * The hardware latency is fixed per rate; we use the lowest latency setting. - */ - switch (runtime->rate) { - case 44100: feedback_packets = 1; break; - case 48000: feedback_packets = 1; break; - case 88200: feedback_packets = 1; break; - case 96000: feedback_packets = 1; break; - default: feedback_packets = 1; break; /* Failsafe */ + /* Validate and apply latency profile */ + switch (tascam->latency_profile) { + case 1: + case 2: + case 5: + feedback_packets = tascam->latency_profile; + break; + default: + dev_warn(tascam->card->dev, "Invalid latency_profile value %d, falling back to default (2).\n", tascam->latency_profile); + tascam->latency_profile = 2; + feedback_packets = 2; } - dev_info(tascam->card->dev, "Prepare: Using fixed hardware profile for %u Hz (%u feedback packets)\n", - runtime->rate, feedback_packets); + dev_info(tascam->card->dev, "Prepare: Using latency profile %u (%u feedback packets) for %u Hz\n", + tascam->latency_profile, feedback_packets, runtime->rate); /* Configure Feedback URBs */ for (i = 0; i < NUM_FEEDBACK_URBS; i++) { @@ -455,15 +627,15 @@ static int tascam_pcm_prepare(struct snd_pcm_substream *substream) /* Configure Playback URBs */ nominal_bytes_per_packet = nominal_frames_per_packet * BYTES_PER_FRAME; - total_bytes_in_urb = nominal_bytes_per_packet * playback_urb_packets; + total_bytes_in_urb = nominal_bytes_per_packet * PLAYBACK_URB_PACKETS; for (u = 0; u < NUM_PLAYBACK_URBS; u++) { struct urb *urb = tascam->playback_urbs[u]; memset(urb->transfer_buffer, 0, tascam->playback_urb_alloc_size); urb->transfer_buffer_length = total_bytes_in_urb; - urb->number_of_packets = playback_urb_packets; - for (i = 0; i < playback_urb_packets; i++) { + urb->number_of_packets = PLAYBACK_URB_PACKETS; + for (i = 0; i < PLAYBACK_URB_PACKETS; i++) { urb->iso_frame_desc[i].offset = i * nominal_bytes_per_packet; urb->iso_frame_desc[i].length = nominal_bytes_per_packet; } @@ -554,7 +726,6 @@ static void playback_urb_complete(struct urb *urb) struct snd_pcm_runtime *runtime; unsigned long flags; char *src_buf, *dst_buf; - unsigned int total_frames_for_urb = 0; size_t total_bytes_for_urb = 0; int ret, i; @@ -569,42 +740,7 @@ static void playback_urb_complete(struct urb *urb) spin_lock_irqsave(&tascam->lock, flags); - /* Phase 1: Calculate the total number of frames needed for this URB. */ - for (i = 0; i < urb->number_of_packets; i++) { - unsigned int frames_for_packet; - - if (tascam->feedback_synced) { - frames_for_packet = tascam->feedback_accumulator_pattern[ - (tascam->feedback_pattern_out_idx + i) % FEEDBACK_ACCUMULATOR_SIZE]; - } else { - frames_for_packet = runtime->rate / 8000; - } - total_frames_for_urb += frames_for_packet; - } - total_bytes_for_urb = total_frames_for_urb * BYTES_PER_FRAME; - - /* Phase 2: Perform an efficient bulk memory copy. */ - src_buf = runtime->dma_area; - dst_buf = urb->transfer_buffer; - if (total_bytes_for_urb > 0) { - snd_pcm_uframes_t offset_frames = tascam->driver_playback_pos; - snd_pcm_uframes_t frames_to_end = runtime->buffer_size - offset_frames; - size_t bytes_to_end = frames_to_bytes(runtime, frames_to_end); - - if (total_bytes_for_urb > bytes_to_end) { - /* Data wraps around the end of the circular buffer */ - memcpy(dst_buf, src_buf + frames_to_bytes(runtime, offset_frames), bytes_to_end); - memcpy(dst_buf + bytes_to_end, src_buf, total_bytes_for_urb - bytes_to_end); - } else { - /* Data is in a single contiguous block */ - memcpy(dst_buf, src_buf + frames_to_bytes(runtime, offset_frames), total_bytes_for_urb); - } - } - tascam->driver_playback_pos = (tascam->driver_playback_pos + total_frames_for_urb) % runtime->buffer_size; - - /* Phase 3: Populate the isochronous frame descriptors. */ - urb->transfer_buffer_length = total_bytes_for_urb; - total_bytes_for_urb = 0; /* Reuse as running offset */ + /* Phase 1: Populate the isochronous frame descriptors and calculate total size. */ for (i = 0; i < urb->number_of_packets; i++) { unsigned int frames_for_packet; size_t bytes_for_packet; @@ -621,6 +757,44 @@ static void playback_urb_complete(struct urb *urb) urb->iso_frame_desc[i].length = bytes_for_packet; total_bytes_for_urb += bytes_for_packet; } + urb->transfer_buffer_length = total_bytes_for_urb; + + /* Phase 2: Copy and format audio data from ALSA buffer to URB buffer. */ + src_buf = runtime->dma_area; + dst_buf = urb->transfer_buffer; + if (total_bytes_for_urb > 0) { + snd_pcm_uframes_t offset_frames = tascam->driver_playback_pos; + snd_pcm_uframes_t frames_to_copy = bytes_to_frames(runtime, total_bytes_for_urb); + int f; + + for (f = 0; f < frames_to_copy; ++f) { + snd_pcm_uframes_t current_frame_pos = (offset_frames + f) % runtime->buffer_size; + char *src_frame = src_buf + frames_to_bytes(runtime, current_frame_pos); + char *dst_frame = dst_buf + (f * BYTES_PER_FRAME); + + switch (tascam->playback_routing) { + case 0: /* Stereo to All */ + *(u32 *)dst_frame = *(u32 *)src_frame; + *(u32 *)(dst_frame + 3) = *(u32 *)(src_frame + 3); + *(u32 *)(dst_frame + 6) = *(u32 *)src_frame; + *(u32 *)(dst_frame + 9) = *(u32 *)(src_frame + 3); + break; + case 1: /* Swapped */ + *(u32 *)dst_frame = *(u32 *)(src_frame + 6); + *(u32 *)(dst_frame + 3) = *(u32 *)(src_frame + 9); + *(u32 *)(dst_frame + 6) = *(u32 *)src_frame; + *(u32 *)(dst_frame + 9) = *(u32 *)(src_frame + 3); + break; + case 2: /* Digital In to All */ + *(u32 *)dst_frame = *(u32 *)(src_frame + 6); + *(u32 *)(dst_frame + 3) = *(u32 *)(src_frame + 9); + *(u32 *)(dst_frame + 6) = *(u32 *)(src_frame + 6); + *(u32 *)(dst_frame + 9) = *(u32 *)(src_frame + 9); + break; + } + } + } + tascam->driver_playback_pos = (tascam->driver_playback_pos + bytes_to_frames(runtime, total_bytes_for_urb)) % runtime->buffer_size; spin_unlock_irqrestore(&tascam->lock, flags); @@ -637,35 +811,43 @@ static void feedback_urb_complete(struct urb *urb) struct snd_pcm_runtime *runtime; unsigned long flags; u64 current_period, total_frames_in_urb = 0; - bool was_synced, sync_lost_this_urb = false; int ret, p; - if (urb->status) return; - if (!tascam || !atomic_read(&tascam->playback_active)) return; + if (urb->status) + return; + if (!tascam || !atomic_read(&tascam->playback_active)) + return; substream = tascam->playback_substream; - if (!substream || !substream->runtime) return; + if (!substream || !substream->runtime) + return; runtime = substream->runtime; spin_lock_irqsave(&tascam->lock, flags); - if (urb->status != 0) { - dev_warn_ratelimited(tascam->card->dev, "Feedback URB failed with status %d\n", urb->status); - sync_lost_this_urb = true; - goto update_sync_state; - } + + /* Let a few URBs pass to allow the hardware to stabilize. */ if (tascam->feedback_urb_skip_count > 0) { tascam->feedback_urb_skip_count--; goto unlock_and_resubmit; } + + /* After the initial skip, we consider the stream synced. */ + if (!tascam->feedback_synced) { + dev_dbg(tascam->card->dev, "Sync Acquired!\n"); + tascam->feedback_synced = true; + } + for (p = 0; p < urb->number_of_packets; p++) { - u8 feedback_value; + u8 feedback_value = 0; /* Initialize to a known invalid value */ const unsigned int *pattern; - if (urb->iso_frame_desc[p].status != 0 || urb->iso_frame_desc[p].actual_length < 1) { - sync_lost_this_urb = true; - continue; - } - feedback_value = *((u8 *)urb->transfer_buffer + urb->iso_frame_desc[p].offset); - if (feedback_value >= tascam->feedback_base_value && + bool packet_ok = (urb->iso_frame_desc[p].status == 0 && + urb->iso_frame_desc[p].actual_length >= 1); + + if (packet_ok) + feedback_value = *((u8 *)urb->transfer_buffer + urb->iso_frame_desc[p].offset); + + if (packet_ok && feedback_value >= tascam->feedback_base_value && feedback_value <= tascam->feedback_max_value) { + /* Valid Feedback: Use the pattern from the table. */ pattern = tascam->feedback_patterns[feedback_value - tascam->feedback_base_value]; int i; for (i = 0; i < 8; i++) { @@ -673,23 +855,27 @@ static void feedback_urb_complete(struct urb *urb) tascam->feedback_accumulator_pattern[in_idx] = pattern[i]; total_frames_in_urb += pattern[i]; } - tascam->feedback_pattern_in_idx = (tascam->feedback_pattern_in_idx + 8) % FEEDBACK_ACCUMULATOR_SIZE; } else { - sync_lost_this_urb = true; - total_frames_in_urb += runtime->rate / 1000; + /* Invalid Feedback: Use the nominal pattern as a fallback. */ + unsigned int nominal_frames = runtime->rate / 8000; + int i; + if (packet_ok) /* Only log if the packet itself was ok but the value was not */ + dev_warn_ratelimited(tascam->card->dev, "Invalid feedback value %u, using nominal rate.\n", feedback_value); + + for (i = 0; i < 8; i++) { + unsigned int in_idx = (tascam->feedback_pattern_in_idx + i) % FEEDBACK_ACCUMULATOR_SIZE; + tascam->feedback_accumulator_pattern[in_idx] = nominal_frames; + total_frames_in_urb += nominal_frames; + } } + /* Always advance the accumulator index */ + tascam->feedback_pattern_in_idx = (tascam->feedback_pattern_in_idx + 8) % FEEDBACK_ACCUMULATOR_SIZE; } -update_sync_state: - was_synced = tascam->feedback_synced; - if (sync_lost_this_urb) { - if (was_synced) dev_dbg(tascam->card->dev, "Sync Lost!\n"); - tascam->feedback_synced = false; - } else { - if (!was_synced) dev_dbg(tascam->card->dev, "Sync Acquired!\n"); - tascam->feedback_synced = true; - } + if (total_frames_in_urb > 0) tascam->playback_frames_consumed += total_frames_in_urb; + + /* Check if a period has elapsed and notify ALSA */ current_period = div_u64(tascam->playback_frames_consumed, runtime->period_size); if (current_period > tascam->last_period_pos) { tascam->last_period_pos = current_period; @@ -697,6 +883,7 @@ update_sync_state: snd_pcm_period_elapsed(substream); goto resubmit; } + unlock_and_resubmit: spin_unlock_irqrestore(&tascam->lock, flags); resubmit: @@ -711,11 +898,24 @@ static int tascam_create_pcm(struct tascam_card *tascam) struct snd_pcm *pcm; int err; - err = snd_pcm_new(tascam->card, "US144MKII PCM", 0, 1, 1, &pcm); - if (err < 0) return err; + err = snd_pcm_new(tascam->card, "US144MKII", 0, 1, 1, &pcm); + if (err < 0) + return err; + + err = snd_ctl_add(tascam->card, snd_ctl_new1(&tascam_latency_control, tascam)); + if (err < 0) + return err; + + err = snd_ctl_add(tascam->card, snd_ctl_new1(&tascam_routing_control, tascam)); + if (err < 0) + return err; + + err = snd_ctl_add(tascam->card, snd_ctl_new1(&tascam_samplerate_control, tascam)); + if (err < 0) + return err; + tascam->pcm = pcm; pcm->private_data = tascam; - strscpy(pcm->name, "US-144MKII Audio", sizeof(pcm->name)); snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &tascam_playback_ops); snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &tascam_capture_ops); snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS, @@ -823,6 +1023,10 @@ static int tascam_probe(struct usb_interface *intf, const struct usb_device_id * card->private_free = tascam_card_private_free; usb_set_intfdata(intf, tascam); spin_lock_init(&tascam->lock); + /* Initialize mixer controls to default values */ + tascam->latency_profile = 2; /* Default to Normal Latency */ + tascam->playback_routing = 0; /* Default to Stereo to All */ + tascam->current_rate = 0; /* Not known until hw_params */ strscpy(card->driver, DRIVER_NAME, sizeof(card->driver)); strscpy(card->shortname, "TASCAM US-144MKII", sizeof(card->shortname)); @@ -873,6 +1077,9 @@ static int tascam_probe(struct usb_interface *intf, const struct usb_device_id * if (err < 0) goto release_iface1_and_free_card; + if (device_create_file(&intf->dev, &dev_attr_driver_version)) + dev_warn(&intf->dev, "Could not create sysfs attribute for driver version\n"); + err = snd_card_register(card); if (err < 0) goto release_iface1_and_free_card; @@ -899,6 +1106,8 @@ static void tascam_disconnect(struct usb_interface *intf) if (!tascam) return; + device_remove_file(&intf->dev, &dev_attr_driver_version); + if (intf != tascam->iface0) return;