From 22cfa83a42097833c3f6caa7121ff48f96677437 Mon Sep 17 00:00:00 2001 From: Ivica Ico Bukvic <ico@vt.edu> Date: Sun, 21 Jul 2013 14:14:26 -0400 Subject: [PATCH] finished importing the remainder of new K12 module abstractions, updated GUI to reflect them, improved key press capture, reformatted GUI object menu inside K12 mode to allow for more space --- l2ork_addons/K12/icons/data-sound.xcf | Bin 0 -> 9170 bytes l2ork_addons/K12/icons/data.png | Bin 0 -> 1401 bytes l2ork_addons/K12/icons/data_on.png | Bin 0 -> 1483 bytes l2ork_addons/K12/icons/sound.png | Bin 0 -> 1493 bytes l2ork_addons/K12/icons/sound_on.png | Bin 0 -> 1757 bytes l2ork_addons/K12/logic_mapper-help.pd | 26 ++-- pd/src/pd.tk | 201 +++++++++++++++++++++----- 7 files changed, 175 insertions(+), 52 deletions(-) create mode 100644 l2ork_addons/K12/icons/data-sound.xcf create mode 100644 l2ork_addons/K12/icons/data.png create mode 100644 l2ork_addons/K12/icons/data_on.png create mode 100644 l2ork_addons/K12/icons/sound.png create mode 100644 l2ork_addons/K12/icons/sound_on.png diff --git a/l2ork_addons/K12/icons/data-sound.xcf b/l2ork_addons/K12/icons/data-sound.xcf new file mode 100644 index 0000000000000000000000000000000000000000..4b4e9866212d81c7b8709259a76e21286ae5b834 GIT binary patch literal 9170 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 H4~KsNnxM~f literal 0 HcmV?d00001 diff --git a/l2ork_addons/K12/icons/data.png b/l2ork_addons/K12/icons/data.png new file mode 100644 index 0000000000000000000000000000000000000000..a25fa64a04577c123c989d7195bdfdaf2f11adbd GIT binary patch literal 1401 zcmV-<1%~>GP)<h;3K|Lk000e1NJLTq002<{000#T1^@s6K1Kpe00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*r1 z5dtPkOz_kI00j9-L_t(o!|j)ENR?+8#((#7&N0ui(?6_;X=Jpy1p6=t2bTNSi1JG{ zu(dKA5iVjx2)Qo~>O(k}jApP#ThRwuWQAY)(1f*U!<wg3Czje2+T0&2>Cic6rq1`h z_vMjJYFf4!jdQ^R=e^(Ox$pP6&h_5c^NOk#lEf3iBq>Oem?SYtViNaBR8_IR6;M@u zqJ)m)h=`oD<Am4iJr)QAzRb+bEMK!`O+jmGYuZHXH*DDORwxuIPK+&IzPu<Q=eT44 z{{2f5*9;8}NqTzvCrwRF!KcKXT3|%vrmDsP2k?rBs4A}Os%2ECSYW-Xz7vbZHlI6p zZdXxJ(dq8)?#21}`5#wQRJ=IeqPn`e`QdQ*<({6N#kIAy3r6A%4Gmx0eCt(peMUw` zOL1}Wfy7v8X=zttuB}_Qz8Z_g=2uo$hT`$K=ieY~L}XTYUJ)4<k%$qI?|~~oC(xs+ zw^cPRB94f701xnhS|5j4zu)hMLZN77Wo7H-%a^~{xN+mLef#!pyL9Q&7=_f=*Jl}H zhI4XqT8|t#5_*zdpE+};proYa^YiD=zaEK1yi-t^+6z%tkBE2yM?~Txatr7I+Ew*} z0Wikg7Lj%lxga7JMdT--9q0mn1^QI=FPqn^sw2e8163z!1%AKZ-M)Q$TXuGKb6Hv0 zs>FMZjg2!pJ3BL$EnC)>mzUQai9}{MHa5<f3W0m}?8%uqbLO4hyLYz)0)g0}Lx-Ms z97o2yhxf%GmMo*HKD)nRAO`dSzW_f2*MMeKy=b|*Zj8A%##lsT&=~WlF{V>QnndJB zRlOo2%|M%~wu?wNa7$Gqs@iW2%4d~p5=?81g0r);`}6YhI=Z{NmnPOdefspm-rn8? zJ9g{{uUoh7MoLP`Ky`KXOOGg>ks7Y5YE4Z|!OE2@f0#RW?(n8fo9d4rKfXE|jgFAx z6%n6(KF5mV4sa8=AtKjAq#bAjT7V{FOrz!Ex`^B~#tbFae<Yb3W1>J5=ml_HS43pG zh@=41fHc4di0irmyRkk?st-s7QULM${bXfj#p3b!Y*qCF+Sk|Ty?XWP!eB7izhcFT zyMWG{H}7soN5_(AG};gh28TsNtYTC|#Ow7Ywi;1YM1-?v&(4m=<FgA33tNE5-o1Oj ztFEqo@9^QnZdqB`bzlfk5pjS)5gAa`L10)!`fdEN;GL4C8>3e0V-OC9eU`*#z}SC% znyUH|=C}g`1NVS75%E-2Rpm4{H_uwTc5NN-hpI|$ZtlhQ_V(2~ckX=d=+UE%s_NRF z<iz9g{;saB->q645gE2-C|kB{*%b^1Yy12A8-Tlj>+|^zmY0|3hr{8Mr%s)6cm^PV zJHdSq@HS9yRqaVlO)WCUoOE5+?>J7H<2ch@*9`^&flmX0z-O-OPFK}5*L71>HAO_~ zjWL@aa_(&cUKkahZr`Fg&&t_zG7{$iRlrB~Is-T{%J~z=IUsjbj&FdXadH<~BY0S@ z5C0EeEFR!Zpa3{%V@rWqwr|R)kz$+ssz=QK0q|~usU?m~;Qgt#u>YDw50DP51ik_) zfD+)2Rb>bW1B2tN{o9h52`rkV&KuTYJ0Eh6{SCNkTgfv)qKq6lfH=?!>;jrCX&3Fh zMZhaS%>=o=weJ7gBsI4IXMo!i%sBv*CcpNRNFs?Oo*w=Ip?q=(Lz`Un00000NkvXX Hu0mjftgW5Z literal 0 HcmV?d00001 diff --git a/l2ork_addons/K12/icons/data_on.png b/l2ork_addons/K12/icons/data_on.png new file mode 100644 index 0000000000000000000000000000000000000000..c283677b4ef6e520397bed527aa24aae1bfe46ec GIT binary patch literal 1483 zcmV;+1vL7JP)<h;3K|Lk000e1NJLTq002<{000#T1^@s6K1Kpe00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*r1 z5h51(5#-tc00m1)L_t(o!|j+`Y!p=($A4#Lw%vAHd!dwS16UvhDNslWfr1trOGtPC zd_X`Ym>BSZ2cr+@3#KGUH1W9=R3yZB2{9rBv|NHzZY>lF_Ci_cb$f4jm)&-|mzm?k zY?opwP{4;K`+u34Gw1r7|9t105#B?)B~d+-lqiBI#3;ll#Hb?D5CY`$-CGjg-4!{H zwP>W+;>ekr&gzA;*|a>DWLw;rZNEQzm4@~nKHt1LQuf&|C;94V`6I{tt9UzkGcqIB zQc7OkRm$%>x00F=_y5q75`;jLUME;$5n3!lvw$>^Qr-tE#8dU}J+vDD!;th3405Bn zgP$+lq_pf3rQ6<QS@yJ1Z5q3s9IvX!<MVT;vyYh>lK?2*P(<;DqDZ~9Umj%B@`Y?% zo;&9FKb^0psoTks${My5<e@6!xd0nxB7}kr1&~8N6ut2u42K<~rxnB1gW+`}{XUQe zLQxSyL5QcHfT9S}5^WUDn?=d{>nPq(#Ex%|(B~N(RkymS9gC_^IDZyLDr=u<%_U`* zDBZT6AIh&02!+NEY@~^Vf>1Ru3<wM%y)KhgcME!REgFCva3crYW+T;th)+bs#zTzN zY-|a;)DnwOHKddXWaPDZQr9Yqpde=k74}y4ox04Y>tB!D>-7v!=jf&&XC^bJr1EF= zZF)Teq$S$M4e;-}CNd`_QIwm_p>tJK*jp)>JL5q}Bjzi_@M?rvCJhLMAQV9AK?wRW zbR7ad<j?@p=LJ19A}0P<dJyU9M|%42m&L{-EU^fy4K#}hGR6w3W<rj!nonyODj<Xc z$jJ4ulH#l^&7Q_Lrz;;QuW9YV-r2|2m5b3-h4Q*a{<zk_JFhJopM!vsvWvWxpNrL^ z@xiKP>^oIK{+ui<nu<V#s~Vu|5DH-EA<#p}Pyj+fkP;d6o6v#*@DDy_V|fz!2a*0k zq}O@BEG7=2X{K|-KtX^d#*BpnZiJ$Os)80{!WIHmg^ZLWI-DL*R6ybnhNyG&lA2)S zrPL%ql97@`RilHAD;A=uin(|p!Vg85p+-?nAj6IV+WK5{y1XpS%0T+OtjtQ|qm~Zt z*zIJeC72FFf?<SR7IvGiL(p%!aNN7|(<<OY2EqmyX$E0tO?vwsgd#xEK(m-I!wU8E zAoL(cR}&~I_3i!C*c*9!*<1`yA0SwgnZ)guHqKODrzj`ObdF(|8(&}u!`+MC*<>!- z(2<yMOO9V*{hTS-oUQ0?({b<RX0rc8IeQDUdDi{q`9d5^hHf5*ygV#%(hW&hdpA?8 z3Px8m2!;Av9XR{@SZwv7JM16?3pBy60WW8--lQ-^4+ne0JO+G7cMnGQgVQ&p<V<Zd z->qFhoZk}}e@jj}i@t8)ll&}F;w%#Y;$w8rAELtHB7bT!01o#cN9#NJ?N%4bdyb8& zzhY_%HI5!~CMQ0&@58m7wB8$H@&5A<y??N}jSrV*O>Bs|AvxF5&&j*JoY=esfQG&S zT>c<kAHPAY_TUFpP&e3hwt>@k`<@8m{;C!ZtX)9C^wd#lnd9CNYksU`$CBx2iZZbv z>W0KM6y!#ihr@LpTxxSsvSuDBaTc7uAXhqE<h__Q3Lt<*RhXZiNOhNoX19;&Nn?L` zl(+PgZi``7s_mh9ZRQJBUP(*fSVK4K=44C^h{<1+nc0!5kZjeMJ2{cnvnI2ra5l+S zGcGl|eOz|9*;_b!%zjqBJc)~KE-th>9|`fm^)`xTOeQUU?3lMbZyI~b?av*eaP3?b l{V5y$ixY(yg&38oe*u=}N_j~;Lka)@002ovPDHLkV1m0it3dz& literal 0 HcmV?d00001 diff --git a/l2ork_addons/K12/icons/sound.png b/l2ork_addons/K12/icons/sound.png new file mode 100644 index 0000000000000000000000000000000000000000..a90a95cd9480455153b64085326a6493e1809eb1 GIT binary patch literal 1493 zcmV;`1uFW9P)<h;3K|Lk000e1NJLTq002?|000#T1^@s6)p5B`00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*r1 z5d|}7(1Q2?00mV^L_t(o!|j-VOw?r@$KRjt-Ent<GKNehq+aGlsT5gRblG?1u+hf) z!L^|SLWQxhF7*!$RFt;doYo&LKv7tXnhsdtT7Pix2Wz9@EC_LPz`V7x<cw&SNBolK z(?6fvu8V^!O8>df_H57deBaOW{eEB1=g0Ssm^l|wTe4|U1W}MtkWr9P3lEZ+H2@@I zj&$M9ojdi!#Ke;(lc~vUHh*HX*$y5)e0cMG+Pb>BwRXGx9jnz^XD}EpTCLVPyWPI; z%$YOmLbXKHve><YHAK{6u~_OG8yiz1)d!lvV7OqhSk5OWCs*mZ?sU7|iT{uvGcy2? zMnt0k?f|$8z$jiy%nT9z4es{s+h6bM>dLC9s5s~Gc=p!T)*jU~ZSKU06P2Ob;^N{= zm&<k3ZnuxLwY8OxkB{%Vbm>xgT3Xuh{{8!p6c-m~F4Y@ya&j&lI&`RXZf=eue0wJ| zJN<tDuHN3>eJ+>l!sO(nH76(MR7pw6v*DHntta7RB%)aW;{*UosU#v=2_OML3^Q8* zScoV_yp@9*tXAvUhK7dYd3kxag72j3`kUR|-OYh<OG`^~et!P@)z#Hid-m-4A@s@W z>+9E)m6aWDYHF%*I-R2dk6~u#VjdaL1p2F2uRi8*IC`3!o4X>>&$n+)P0hLk2M$!$ z)YMcK6&2kiB8XEF$pFAKfGGfz0A>M<G4qc!&uN(fBrx*|B8meL1HcNv%*@M($YeAc z8%IV)N^CaUR0!n1?3a;|u{S<G-q+pT9X4EbU3dC?zWDzB{_{%#+1lE=s-U3YJ-6F^ z(BW|S7SprP2}lA_n3a|Fn%C=19vB#?C8B8nQ_MU=M1Kf4KL8&y|E6i$OxR*WMAJkx zs%hFV5%m#KFEf7wpr44Y0k|F)7k90&u<%I$<IL=r129QyFvz}|$Ky#aEG)b{Uw8y8 zKR^Gn$Ky#~YIx`7=6ZEq|6=#<-ET=s3INiA-qj#|BN3V8`Ybcw0Wbz&RM+*-hlYmM z1Go-gP~Q7nBDyR*hKa}<3^C%Wt!dgFBJ#>6SA9NTK~GQ5%SNN|gQTRS>@8citUG=B z^caAv07d}(%*<nczdv!ujvY57{~E-*P120aY|PHi9-Ek$NR;b_py$#8#ZU^O7NRjq z0{{~<o7&sk-9Dc$xxBpm31+@4-t(&*^eBMuMSoS=0D$j^sGphph^Vivt?kR1nVFTE zrVSF2hlp+y(eM9f#Ww<Y2|yKqR(ar#)YQ}zrBtj^DuIZmIy*bpF!KY<yk04_ftept zN^MX|r75L04h{}JrD@ufQtD}?)H6~EpI1t4W9Ap6ZDVGKQYw>~w*p|LR0cDri~ixj zzNMw5ub51x8=ak<c4l71%n71du9PxI@MW?Lz{LIhl(GOg3!pt{ZV14}g%-ue#-<a| zuu{s*%vJ#E%9SheN~z_{yh16pT>5d$ysV?6BNo6MGaJQI=L2&bz{xNvWigPCN>trf zO8^iY1~mXG7g=)*Ky}dA3t-Ix`n3Q?7XcFkpdY~Ie*v-rz`1(`?4zJu6>J*;{1h~{ z1Na5NrZD?#lIt6S<~{>ZzQDbY0QfWlFk1oiNN$Z3<YNGC19;?Kfn)%E0A2+U4`2m= z7bSVW8=}n<FLMD%l|qvO;BA@D3(-Fa;HHG9UA!ws`c-mJwg|y|2%u~MkOqmO=K!1% zh;Q7>5Y7b9AXRWy!ue|eMPc-h1Gos_7JwNE&5Hms!st@~d@Q+YO4^9brG)#%5vFkT v%>y#frUl+tl44S#{~AOsYEg^Ye{X*RGD>z0Y8J?-00000NkvXXu0mjf8K}Q= literal 0 HcmV?d00001 diff --git a/l2ork_addons/K12/icons/sound_on.png b/l2ork_addons/K12/icons/sound_on.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f8a597f453bb4d725a90bb02b5456fbf830fa2 GIT binary patch literal 1757 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 literal 0 HcmV?d00001 diff --git a/l2ork_addons/K12/logic_mapper-help.pd b/l2ork_addons/K12/logic_mapper-help.pd index 5552c22c6..db620fa5d 100755 --- a/l2ork_addons/K12/logic_mapper-help.pd +++ b/l2ork_addons/K12/logic_mapper-help.pd @@ -1,9 +1,9 @@ #N canvas 110 24 503 501 10; -#X obj 20 293 cnv 15 486 220 empty empty empty 20 12 0 14 -233017 -66577 +#X obj 20 313 cnv 15 486 220 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 25 184 K12/wii_speed; -#X obj 123 530 K12/instr_sustained2; -#X obj 25 755 output; +#X obj 123 550 K12/instr_sustained2; +#X obj 25 795 output; #N canvas 521 27 450 514 META 0; #X text 9 66 OUTLET_0 Connect this to an instrument or another math object; @@ -12,28 +12,29 @@ object; each other; #X text 9 104 OUTLET_1 Connect this to an instrument or another math object; -#X restore 458 819 pd META; +#X restore 458 871 pd META; #X obj 13 43 cnv 3 501 3 empty empty empty 5 14 0 20 -260097 -191407 0; #X obj 13 14 cnv 15 501 28 empty empty Mapper 5 14 0 20 -139274 -262144 0; #X obj 484 46 ggee/image @pd_extra/K12/icons/l2ork.png; #X obj 25 69 K12/wii_connect; -#X text 133 339 With the top toggle option selected \, the outlets +#X text 133 359 With the top toggle option selected \, the outlets will always be zero.; -#X text 133 305 There are four different functions that the Mapper +#X text 133 325 There are four different functions that the Mapper object will do.; -#X text 133 373 With the second toggle option selected \, the right +#X text 133 393 With the second toggle option selected \, the right outlet will be the opposite of the left outlet (in other words \, when one is 0 the other is 1).; -#X text 134 457 With the fourth toggle option selected \, as the left +#X text 134 477 With the fourth toggle option selected \, as the left slider increases from 0 to 1 the right slider increases slowly at first and then quickly \, also from 0 to 1; -#X text 133 420 With the third toggle option selected \, the left slider +#X text 133 440 With the third toggle option selected \, the left slider ranges from 0 to 1 and the right slider ranges from 0 to 0.5; -#X obj 25 298 K12/logic_mapper; -#X obj 25 530 K12/instr_sustained1; -#X obj 124 640 K12/fx_reverb; +#X obj 25 318 K12/logic_mapper; +#X obj 25 550 K12/instr_sustained1; +#X obj 124 660 K12/fx_reverb; +#X obj 133 213 K12/math_number; #X connect 1 0 14 0; #X connect 2 0 16 0; #X connect 8 0 1 0; @@ -41,3 +42,4 @@ ranges from 0 to 1 and the right slider ranges from 0 to 0.5; #X connect 14 1 2 0; #X connect 15 0 3 0; #X connect 16 0 3 0; +#X connect 17 0 14 0; diff --git a/pd/src/pd.tk b/pd/src/pd.tk index aefb3c5c4..47cbd7ead 100644 --- a/pd/src/pd.tk +++ b/pd/src/pd.tk @@ -347,45 +347,49 @@ proc pdtk_enable_k12_mode {extra_dir} { image create photo i.wii_buttons -file $extra_dir/K12/icons/wii_buttons.png image create photo i.wii_speed -file $extra_dir/K12/icons/wii_speed.png image create photo i.wii_hit -file $extra_dir/K12/icons/wii_hit.png - image create photo i.sarcduino -file $extra_dir/K12/icons/sarcduino_on.png + image create photo i.sarcduino -file $extra_dir/K12/icons/sarcduino_on.png image create photo i.sarcduino_digital -file $extra_dir/K12/icons/sarcduino_digital.png image create photo i.sarcduino_analog -file $extra_dir/K12/icons/sarcduino_analog.png image create photo i.sarcduino_hit -file $extra_dir/K12/icons/sarcduino_hit.png image create photo i.sarcduino_piezo -file $extra_dir/K12/icons/sarcduino_piezo.png #image create photo i.sarcduino_net -file $extra_dir/K12/icons/sarcduino_net.png - image create photo i.math_number -file $extra_dir/K12/icons/math_number.png + image create photo i.math_number -file $extra_dir/K12/icons/math_number.png image create photo i.math_netsend -file $extra_dir/K12/icons/math_netsend.png image create photo i.math_netreceive -file $extra_dir/K12/icons/math_netreceive.png image create photo i.math_tag -file $extra_dir/K12/icons/math_tag.png image create photo i.math_routebytag -file $extra_dir/K12/icons/math_routebytag.png - image create photo i.math_average -file $extra_dir/K12/icons/math_average.png + image create photo i.math_average -file $extra_dir/K12/icons/math_average.png image create photo i.math_random -file $extra_dir/K12/icons/math_random.png image create photo i.math_add -file $extra_dir/K12/icons/math_add.png image create photo i.math_subtract -file $extra_dir/K12/icons/math_subtract.png image create photo i.math_multiply -file $extra_dir/K12/icons/math_multiply.png - image create photo i.math_divide -file $extra_dir/K12/icons/math_divide.png + image create photo i.math_divide -file $extra_dir/K12/icons/math_divide.png image create photo i.math_scale -file $extra_dir/K12/icons/math_scale.png + image create photo i.logic_compare -file $extra_dir/K12/icons/logic_compare.png - #image create photo i.logic_mapper -file $extra_dir/K12/icons/logic_mapper.png + image create photo i.logic_mapper -file $extra_dir/K12/icons/logic_mapper.png image create photo i.logic_metronome -file $extra_dir/K12/icons/logic_metronome.png image create photo i.logic_counter -file $extra_dir/K12/icons/logic_counter.png image create photo i.logic_sequencer -file $extra_dir/K12/icons/logic_sequencer.png + image create photo i.preset -file $extra_dir/K12/icons/preset.png + image create photo i.comment -file $extra_dir/K12/icons/comment.png + image create photo i.signal_microphone -file $extra_dir/K12/icons/signal_microphone.png image create photo i.signal_netsend -file $extra_dir/K12/icons/signal_netsend.png image create photo i.signal_netreceive -file $extra_dir/K12/icons/signal_netreceive.png image create photo i.signal_sampler -file $extra_dir/K12/icons/signal_sampler.png image create photo i.signal_player -file $extra_dir/K12/icons/signal_player.png - image create photo i.signal_envelope -file $extra_dir/K12/icons/signal_envelope.png image create photo i.signal_sine -file $extra_dir/K12/icons/signal_sine.png image create photo i.signal_saw -file $extra_dir/K12/icons/signal_saw.png image create photo i.signal_square -file $extra_dir/K12/icons/signal_square.png image create photo i.signal_triangle -file $extra_dir/K12/icons/signal_triangle.png + image create photo i.signal_envelope -file $extra_dir/K12/icons/signal_envelope.png image create photo i.signal_noise -file $extra_dir/K12/icons/signal_noise.png image create photo i.signal_pink -file $extra_dir/K12/icons/signal_pink.png @@ -402,12 +406,15 @@ proc pdtk_enable_k12_mode {extra_dir} { image create photo i.fx_reverb -file $extra_dir/K12/icons/fx_reverb.png image create photo i.output -file $extra_dir/K12/icons/audio_on.png - image create photo i.preset -file $extra_dir/K12/icons/preset.png - image create photo i.comment -file $extra_dir/K12/icons/comment.png image create photo i.edit -file $extra_dir/K12/icons/edit.png image create photo i.perform -file $extra_dir/K12/icons/perform.png + image create photo i.data -file $extra_dir/K12/icons/data.png + image create photo i.sound -file $extra_dir/K12/icons/sound.png + image create photo i.data_on -file $extra_dir/K12/icons/data_on.png + image create photo i.sound_on -file $extra_dir/K12/icons/sound_on.png + #pack forget .controls.switches.audiobutton #pack forget .controls.inout #.mbar.audio delete 0 2 @@ -2260,6 +2267,24 @@ proc put_K12_objects {name object} { } } +proc pdtk_k12_show_data_icons {name} { + $name.k12frame.datasound.data configure -image i.data_on + $name.k12frame.datasound.sound configure -image i.sound + catch { + pack forget $name.k12frame.signal_1 $name.k12frame.signal_2 $name.k12frame.signal_3 $name.k12frame.instr $name.k12frame.fx $name.k12frame.output + pack $name.k12frame.wii $name.k12frame.arduino $name.k12frame.math_1 $name.k12frame.math_2 $name.k12frame.math_3 $name.k12frame.logic $name.k12frame.other -side top -expand 0 -fill x + } +} + +proc pdtk_k12_show_sound_icons {name} { + $name.k12frame.datasound.data configure -image i.data + $name.k12frame.datasound.sound configure -image i.sound_on + catch { + pack forget $name.k12frame.wii $name.k12frame.arduino $name.k12frame.math_1 $name.k12frame.math_2 $name.k12frame.math_3 $name.k12frame.logic $name.k12frame.other + pack $name.k12frame.signal_1 $name.k12frame.signal_2 $name.k12frame.signal_3 $name.k12frame.instr $name.k12frame.fx $name.k12frame.output -side top -expand 0 -fill x + } +} + ############# pdtk_canvas_new -- create a new canvas ############### proc pdtk_canvas_new {name width height geometry editable} { global pd_tearoff put_tearoff @@ -2376,11 +2401,23 @@ proc pdtk_canvas_new {name width height geometry editable} { } pack $name.k12frame.edit.b -side left -expand 1 -padx 1 -pady 0 setTooltip $name.k12frame.edit.b "Toggle between building and playing an instrument" + pdtk_standardkeybindings $name.k12frame.edit.b + + # ---------------------------------- DATA VS SOUND BUTTONS ---------------------------------- + match_linux_wm [list frame $name.k12frame.datasound -relief flat] + match_linux_wm [list button $name.k12frame.datasound.data -text "DATA" -image i.data_on -command [concat pdtk_k12_show_data_icons $name]] + match_linux_wm [list button $name.k12frame.datasound.sound -text "SOUND" -image i.sound -command [concat pdtk_k12_show_sound_icons $name]] + pack $name.k12frame.datasound.data $name.k12frame.datasound.sound -side left -pady 1 -padx 1 -expand 0 + setTooltip $name.k12frame.datasound.data "Show DATA objects" + setTooltip $name.k12frame.datasound.sound "Show SOUND objects" + pdtk_standardkeybindings $name.k12frame.datasound.data + pdtk_standardkeybindings $name.k12frame.datasound.sound # ---------------------------------- MESSAGES LABEL ----------------------------------------- - match_linux_wm [list frame $name.k12frame.msgs -relief flat] - match_linux_wm [list label $name.k12frame.msgs.label -relief flat -text "MESSAGES"] - pack $name.k12frame.msgs.label -fill x -pady 0 -padx 1 + + #match_linux_wm [list frame $name.k12frame.msgs -relief flat] + #match_linux_wm [list label $name.k12frame.msgs.label -relief flat -text "MESSAGES"] + #pack $name.k12frame.msgs.label -fill x -pady 0 -padx 1 # ---------------------------------- WII ----------------------------------------- match_linux_wm [list frame $name.k12frame.wii -relief flat] @@ -2397,6 +2434,10 @@ proc pdtk_canvas_new {name width height geometry editable} { setTooltip $name.k12frame.wii.b_wii_buttons "Wiimote Buttons: Use this to select which Wiimote button should activate objects connected to this object" setTooltip $name.k12frame.wii.b_wii_hit "Wiimote Hit: Use this to detect when the wiimote has been shaken" setTooltip $name.k12frame.wii.b_wii_speed "Wiimote Speed: Use this to detect how quickly is Wiimote moving" + pdtk_standardkeybindings $name.k12frame.wii.b_wii_connect + pdtk_standardkeybindings $name.k12frame.wii.b_wii_buttons + pdtk_standardkeybindings $name.k12frame.wii.b_wii_speed + pdtk_standardkeybindings $name.k12frame.wii.b_wii_hit # ---------------------------------- ARDUINO ----------------------------------------- match_linux_wm [list frame $name.k12frame.arduino -relief flat] @@ -2416,25 +2457,38 @@ proc pdtk_canvas_new {name width height geometry editable} { setTooltip $name.k12frame.arduino.b_sarcduino_analog "Arduino Analog: Use this to monitor analog sensor speed" setTooltip $name.k12frame.arduino.b_sarcduino_hit "Arduino Hit: Use this to detect when the arduino analog sensor data has rapidly changed" setTooltip $name.k12frame.arduino.b_sarcduino_piezo "Arduino Piezo: Use this to analyze data coming from a piezo microphone sensor" + pdtk_standardkeybindings $name.k12frame.arduino.b_sarcduino + pdtk_standardkeybindings $name.k12frame.arduino.b_sarcduino_digital + pdtk_standardkeybindings $name.k12frame.arduino.b_sarcduino_analog + pdtk_standardkeybindings $name.k12frame.arduino.b_sarcduino_hit + pdtk_standardkeybindings $name.k12frame.arduino.b_sarcduino_piezo # ---------------------------------- MATH ROW 1 ----------------------------------------- match_linux_wm [list frame $name.k12frame.math_1 -relief flat] #match_linux_wm [list button $name.k12frame.math_1.b_sarcduino_net -image i.sarcduino_net \ # -command [concat put_K12_objects $name sarcduino_net]] - match_linux_wm [list button $name.k12frame.math_1.b_preset -image i.preset \ - -command [concat put_K12_objects $name preset]] match_linux_wm [list button $name.k12frame.math_1.b_math_number -image i.math_number \ -command [concat put_K12_objects $name math_number]] - match_linux_wm [list button $name.k12frame.math_1.b_math_average -image i.math_average \ - -command [concat put_K12_objects $name math_average]] - match_linux_wm [list button $name.k12frame.math_1.b_math_random -image i.math_random \ - -command [concat put_K12_objects $name math_random]] - pack $name.k12frame.math_1.b_preset $name.k12frame.math_1.b_math_number $name.k12frame.math_1.b_math_average $name.k12frame.math_1.b_math_random -side left -expand 0 -padx 1 -pady 1 + match_linux_wm [list button $name.k12frame.math_1.b_math_netsend -image i.math_netsend \ + -command [concat put_K12_objects $name math_netsend]] + match_linux_wm [list button $name.k12frame.math_1.b_math_netreceive -image i.math_netreceive \ + -command [concat put_K12_objects $name math_netreceive]] + match_linux_wm [list button $name.k12frame.math_1.b_math_tag -image i.math_tag \ + -command [concat put_K12_objects $name math_tag]] + match_linux_wm [list button $name.k12frame.math_1.b_math_routebytag -image i.math_routebytag \ + -command [concat put_K12_objects $name math_routebytag]] + pack $name.k12frame.math_1.b_math_number $name.k12frame.math_1.b_math_netsend $name.k12frame.math_1.b_math_netreceive $name.k12frame.math_1.b_math_tag $name.k12frame.math_1.b_math_routebytag -side left -expand 0 -padx 1 -pady 1 #setTooltip $name.k12frame.math_1.b_sarcduino_net "Arduino Net: Use this to retrieve data from arduino devices connected via network" - setTooltip $name.k12frame.math_1.b_preset "Preset: Use this to store and recall up to four different states of your instrument" setTooltip $name.k12frame.math_1.b_math_number "Number: Use this to assign a value to other objects" - setTooltip $name.k12frame.math_1.b_math_average "Average: Use this to calculate average from a stream of numbers" - setTooltip $name.k12frame.math_1.b_math_random "Random: Use this to generate random numbers" + setTooltip $name.k12frame.math_1.b_math_netsend "Netsend: Use this to send data over network to another computer" + setTooltip $name.k12frame.math_1.b_math_netreceive "Netreceive: Use this to receive data from another computer over network" + setTooltip $name.k12frame.math_1.b_math_tag "Tag: Use this to tag data to be sent over network" + setTooltip $name.k12frame.math_1.b_math_routebytag "Route By Tag: Use this to filter incoming network data by tag" + pdtk_standardkeybindings $name.k12frame.math_1.b_math_number + pdtk_standardkeybindings $name.k12frame.math_1.b_math_netsend + pdtk_standardkeybindings $name.k12frame.math_1.b_math_netreceive + pdtk_standardkeybindings $name.k12frame.math_1.b_math_tag + pdtk_standardkeybindings $name.k12frame.math_1.b_math_routebytag # ---------------------------------- MATH ROW 2 ----------------------------------------- match_linux_wm [list frame $name.k12frame.math_2 -relief flat] @@ -2446,51 +2500,98 @@ proc pdtk_canvas_new {name width height geometry editable} { -command [concat put_K12_objects $name math_multiply]] match_linux_wm [list button $name.k12frame.math_2.b_math_divide -image i.math_divide \ -command [concat put_K12_objects $name math_divide]] - match_linux_wm [list button $name.k12frame.math_2.b_math_scale -image i.math_scale \ - -command [concat put_K12_objects $name math_scale]] - pack $name.k12frame.math_2.b_math_add $name.k12frame.math_2.b_math_subtract $name.k12frame.math_2.b_math_multiply $name.k12frame.math_2.b_math_divide $name.k12frame.math_2.b_math_scale -side left -expand 0 -padx 1 -pady 1 + match_linux_wm [list button $name.k12frame.math_2.b_math_random -image i.math_random \ + -command [concat put_K12_objects $name math_random]] + pack $name.k12frame.math_2.b_math_add $name.k12frame.math_2.b_math_subtract $name.k12frame.math_2.b_math_multiply $name.k12frame.math_2.b_math_divide $name.k12frame.math_2.b_math_random -side left -expand 0 -padx 1 -pady 1 setTooltip $name.k12frame.math_2.b_math_add "Add: Use this to add two values" setTooltip $name.k12frame.math_2.b_math_subtract "Subtract: Use this to subtract two values" setTooltip $name.k12frame.math_2.b_math_multiply "Multiply: Use this to multiply two values" setTooltip $name.k12frame.math_2.b_math_divide "Divide: Use this to divide two values" - setTooltip $name.k12frame.math_2.b_math_scale "Scale: Use this to scale incoming values to a new range and direction" + setTooltip $name.k12frame.math_2.b_math_random "Random: Use this to generate random numbers" + pdtk_standardkeybindings $name.k12frame.math_2.b_math_add + pdtk_standardkeybindings $name.k12frame.math_2.b_math_subtract + pdtk_standardkeybindings $name.k12frame.math_2.b_math_multiply + pdtk_standardkeybindings $name.k12frame.math_2.b_math_divide + pdtk_standardkeybindings $name.k12frame.math_2.b_math_random + + # ---------------------------------- MATH ROW 3 ----------------------------------------- + match_linux_wm [list frame $name.k12frame.math_3 -relief flat] + match_linux_wm [list button $name.k12frame.math_3.b_math_average -image i.math_average \ + -command [concat put_K12_objects $name math_average]] + match_linux_wm [list button $name.k12frame.math_3.b_math_scale -image i.math_scale \ + -command [concat put_K12_objects $name math_scale]] + pack $name.k12frame.math_3.b_math_average $name.k12frame.math_3.b_math_scale -side left -expand 0 -padx 1 -pady 1 + setTooltip $name.k12frame.math_3.b_math_average "Average: Use this to calculate average from a stream of numbers" + setTooltip $name.k12frame.math_3.b_math_scale "Scale: Use this to scale incoming values to a new range and direction" + pdtk_standardkeybindings $name.k12frame.math_3.b_math_average + pdtk_standardkeybindings $name.k12frame.math_3.b_math_scale # ---------------------------------- LOGIC ----------------------------------------- match_linux_wm [list frame $name.k12frame.logic -relief flat] match_linux_wm [list button $name.k12frame.logic.b_logic_compare -image i.logic_compare \ -command [concat put_K12_objects $name logic_compare]] - #match_linux_wm [list button $name.k12frame.logic.b_logic_mapper -image i.logic_mapper \ - # -command [concat put_K12_objects $name logic_mapper]] + match_linux_wm [list button $name.k12frame.logic.b_logic_mapper -image i.logic_mapper \ + -command [concat put_K12_objects $name logic_mapper]] match_linux_wm [list button $name.k12frame.logic.b_logic_metronome -image i.logic_metronome \ -command [concat put_K12_objects $name logic_metronome]] match_linux_wm [list button $name.k12frame.logic.b_logic_counter -image i.logic_counter \ -command [concat put_K12_objects $name logic_counter]] match_linux_wm [list button $name.k12frame.logic.b_logic_sequencer -image i.logic_sequencer \ -command [concat put_K12_objects $name logic_sequencer]] - pack $name.k12frame.logic.b_logic_compare $name.k12frame.logic.b_logic_metronome $name.k12frame.logic.b_logic_counter $name.k12frame.logic.b_logic_sequencer -side left -expand 0 -padx 1 -pady 1 + pack $name.k12frame.logic.b_logic_compare $name.k12frame.logic.b_logic_mapper $name.k12frame.logic.b_logic_metronome $name.k12frame.logic.b_logic_counter $name.k12frame.logic.b_logic_sequencer -side left -expand 0 -padx 1 -pady 1 setTooltip $name.k12frame.logic.b_logic_compare "Compare: Use this to compare two values" - #setTooltip $name.k12frame.logic.b_logic_mapper "Mapper: Use this to map one value to two different but related values" + setTooltip $name.k12frame.logic.b_logic_mapper "Mapper: Use this to map one value to two different but related values" setTooltip $name.k12frame.logic.b_logic_metronome "Metronome: Use this to create a steady pulse" setTooltip $name.k12frame.logic.b_logic_counter "Counter: Use this to count events" setTooltip $name.k12frame.logic.b_logic_sequencer "Sequencer: Use this to map values to MIDI pitches" + pdtk_standardkeybindings $name.k12frame.logic.b_logic_compare + pdtk_standardkeybindings $name.k12frame.logic.b_logic_mapper + pdtk_standardkeybindings $name.k12frame.logic.b_logic_metronome + pdtk_standardkeybindings $name.k12frame.logic.b_logic_counter + pdtk_standardkeybindings $name.k12frame.logic.b_logic_sequencer + + # ---------------------------------- OTHER ----------------------------------------- + match_linux_wm [list frame $name.k12frame.other -relief flat] + match_linux_wm [list button $name.k12frame.other.b_preset -image i.preset \ + -command [concat put_K12_objects $name preset]] + match_linux_wm [list button $name.k12frame.other.b_comment -image i.comment \ + -command [concat menu_comment $name 1]] + pack $name.k12frame.other.b_preset $name.k12frame.other.b_comment -side left -expand 0 -padx 1 -pady 1 + setTooltip $name.k12frame.other.b_preset "Preset: Use this to store and recall up to four different states of your instrument" + setTooltip $name.k12frame.other.b_comment "Comment: Use this to post comments inside your patch" + pdtk_standardkeybindings $name.k12frame.other.b_preset + pdtk_standardkeybindings $name.k12frame.other.b_comment # ---------------------------------- SOUND LABEL ----------------------------------------- - match_linux_wm [list frame $name.k12frame.sound -relief flat] - match_linux_wm [list label $name.k12frame.sound.label -relief flat -text "SOUND"] - pack $name.k12frame.sound.label -fill x -pady 0 -padx 1 + #match_linux_wm [list frame $name.k12frame.sound -relief flat] + #match_linux_wm [list label $name.k12frame.sound.label -relief flat -text "SOUND"] + #pack $name.k12frame.sound.label -fill x -pady 0 -padx 1 # ---------------------------------- SIGNAL ROW 1 ----------------------------------------- match_linux_wm [list frame $name.k12frame.signal_1 -relief flat] match_linux_wm [list button $name.k12frame.signal_1.b_signal_microphone -image i.signal_microphone \ -command [concat put_K12_objects $name signal_microphone]] + + match_linux_wm [list button $name.k12frame.signal_1.b_signal_netsend -image i.signal_netsend \ + -command [concat put_K12_objects $name signal_netsend]] + match_linux_wm [list button $name.k12frame.signal_1.b_signal_netreceive -image i.signal_netreceive \ + -command [concat put_K12_objects $name signal_netreceive]] + match_linux_wm [list button $name.k12frame.signal_1.b_signal_sampler -image i.signal_sampler \ -command [concat put_K12_objects $name signal_sampler]] - match_linux_wm [list button $name.k12frame.signal_1.b_signal_envelope -image i.signal_envelope \ - -command [concat put_K12_objects $name signal_envelope]] - pack $name.k12frame.signal_1.b_signal_microphone $name.k12frame.signal_1.b_signal_sampler $name.k12frame.signal_1.b_signal_envelope -side left -expand 0 -padx 1 -pady 1 + match_linux_wm [list button $name.k12frame.signal_1.b_signal_player -image i.signal_player \ + -command [concat put_K12_objects $name signal_player]] + pack $name.k12frame.signal_1.b_signal_microphone $name.k12frame.signal_1.b_signal_netsend $name.k12frame.signal_1.b_signal_netreceive $name.k12frame.signal_1.b_signal_sampler $name.k12frame.signal_1.b_signal_player -side left -expand 0 -padx 1 -pady 1 setTooltip $name.k12frame.signal_1.b_signal_microphone "Microphone: Use this to capture and monitor microphone input" - setTooltip $name.k12frame.signal_1.b_signal_sampler "Sampler: Use this to record audio from microphone and plaly it back in various ways" - setTooltip $name.k12frame.signal_1.b_signal_envelope "Envelope: Use this to shape sound loudness" + setTooltip $name.k12frame.signal_1.b_signal_netsend "Netsend Sound: Use this to send your sound over network to another computer" + setTooltip $name.k12frame.signal_1.b_signal_netreceive "Netreceive Sound: Use this to receive sound from another computer over network" + setTooltip $name.k12frame.signal_1.b_signal_sampler "Sampler: Use this to record audio from microphone and play it back in various ways" + setTooltip $name.k12frame.signal_1.b_signal_player "Player: Use this to play WAV files in various ways" + pdtk_standardkeybindings $name.k12frame.signal_1.b_signal_microphone + pdtk_standardkeybindings $name.k12frame.signal_1.b_signal_netsend + pdtk_standardkeybindings $name.k12frame.signal_1.b_signal_netreceive + pdtk_standardkeybindings $name.k12frame.signal_1.b_signal_sampler + pdtk_standardkeybindings $name.k12frame.signal_1.b_signal_player # ---------------------------------- SIGNAL ROW 2 ----------------------------------------- match_linux_wm [list frame $name.k12frame.signal_2 -relief flat] @@ -2502,11 +2603,19 @@ proc pdtk_canvas_new {name width height geometry editable} { -command [concat put_K12_objects $name signal_square]] match_linux_wm [list button $name.k12frame.signal_2.b_signal_triangle -image i.signal_triangle \ -command [concat put_K12_objects $name signal_triangle]] - pack $name.k12frame.signal_2.b_signal_sine $name.k12frame.signal_2.b_signal_saw $name.k12frame.signal_2.b_signal_square $name.k12frame.signal_2.b_signal_triangle -side left -expand 0 -padx 1 -pady 1 + match_linux_wm [list button $name.k12frame.signal_2.b_signal_envelope -image i.signal_envelope \ + -command [concat put_K12_objects $name signal_envelope]] + pack $name.k12frame.signal_2.b_signal_sine $name.k12frame.signal_2.b_signal_saw $name.k12frame.signal_2.b_signal_square $name.k12frame.signal_2.b_signal_triangle $name.k12frame.signal_2.b_signal_envelope -side left -expand 0 -padx 1 -pady 1 setTooltip $name.k12frame.signal_2.b_signal_sine "Sine: Use this to generate sine tone" setTooltip $name.k12frame.signal_2.b_signal_saw "Sawtooth: Use this to generate sawtooth tone" setTooltip $name.k12frame.signal_2.b_signal_square "Square: Use this to generate square tone" setTooltip $name.k12frame.signal_2.b_signal_triangle "Triangle: Use this to generate triangle tone" + setTooltip $name.k12frame.signal_2.b_signal_envelope "Envelope: Use this to shape sound loudness" + pdtk_standardkeybindings $name.k12frame.signal_2.b_signal_sine + pdtk_standardkeybindings $name.k12frame.signal_2.b_signal_saw + pdtk_standardkeybindings $name.k12frame.signal_2.b_signal_square + pdtk_standardkeybindings $name.k12frame.signal_2.b_signal_triangle + pdtk_standardkeybindings $name.k12frame.signal_2.b_signal_envelope # ---------------------------------- SIGNAL ROW 3 ----------------------------------------- match_linux_wm [list frame $name.k12frame.signal_3 -relief flat] @@ -2523,6 +2632,10 @@ proc pdtk_canvas_new {name width height geometry editable} { setTooltip $name.k12frame.signal_3.b_signal_pink "Pink: Use this to generate pink (softer) noise" setTooltip $name.k12frame.signal_3.b_signal_add "Signal Add: Use this to add two sounds (signals)" setTooltip $name.k12frame.signal_3.b_signal_multiply "Signal Multiply: Use this to multiply two sounds (signals)" + pdtk_standardkeybindings $name.k12frame.signal_3.b_signal_noise + pdtk_standardkeybindings $name.k12frame.signal_3.b_signal_pink + pdtk_standardkeybindings $name.k12frame.signal_3.b_signal_add + pdtk_standardkeybindings $name.k12frame.signal_3.b_signal_multiply # ---------------------------------- INSTRUMENTS ----------------------------------------- match_linux_wm [list frame $name.k12frame.instr -relief flat] @@ -2539,6 +2652,10 @@ proc pdtk_canvas_new {name width height geometry editable} { setTooltip $name.k12frame.instr.b_instr_short2 "Short Sound 2: Use this to produce short sounds like a single snare drum hit" setTooltip $name.k12frame.instr.b_instr_sustained1 "Sustained Sound 1: Use this to produce long sustained sound like a sound of a woodwind instrument" setTooltip $name.k12frame.instr.b_instr_sustained2 "Sustained Sound 2: Use this to produce long sustained sound like a sound of brass instrument" + pdtk_standardkeybindings $name.k12frame.instr.b_instr_short1 + pdtk_standardkeybindings $name.k12frame.instr.b_instr_short2 + pdtk_standardkeybindings $name.k12frame.instr.b_instr_sustained1 + pdtk_standardkeybindings $name.k12frame.instr.b_instr_sustained2 # ---------------------------------- F/X ----------------------------------------- match_linux_wm [list frame $name.k12frame.fx -relief flat] @@ -2552,6 +2669,9 @@ proc pdtk_canvas_new {name width height geometry editable} { setTooltip $name.k12frame.fx.b_fx_filter "Filter: Use this to make sound appear muffled or brighter" setTooltip $name.k12frame.fx.b_fx_multitap "Echo: Use this to make sound echo" setTooltip $name.k12frame.fx.b_fx_reverb "Reverb: Use this to make sound appear as if it is being played in a large space" + pdtk_standardkeybindings $name.k12frame.fx.b_fx_filter + pdtk_standardkeybindings $name.k12frame.fx.b_fx_multitap + pdtk_standardkeybindings $name.k12frame.fx.b_fx_reverb # ---------------------------------- OUTPUT/OTHER ----------------------------------------- @@ -2560,9 +2680,10 @@ proc pdtk_canvas_new {name width height geometry editable} { -command [concat put_K12_objects $name output]] pack $name.k12frame.output.b_output -side left -expand 0 -padx 1 -pady 1 setTooltip $name.k12frame.output.b_output "Output: Use this to send audio from computer into speakers" + pdtk_standardkeybindings $name.k12frame.output.b_output # ---------------------------------------- NOW PACK THEM ALL ----------------------------------------- - pack $name.k12frame.edit $name.k12frame.msgs $name.k12frame.wii $name.k12frame.arduino $name.k12frame.math_1 $name.k12frame.arduino $name.k12frame.math_2 $name.k12frame.logic $name.k12frame.sound $name.k12frame.signal_1 $name.k12frame.signal_2 $name.k12frame.signal_3 $name.k12frame.instr $name.k12frame.fx $name.k12frame.output -side top -expand 0 -fill x + pack $name.k12frame.edit $name.k12frame.datasound $name.k12frame.wii $name.k12frame.arduino $name.k12frame.math_1 $name.k12frame.math_2 $name.k12frame.math_3 $name.k12frame.logic $name.k12frame.other -side top -expand 0 -fill x } canvas $name.c -width $width -height $height -background $::canvas_color($name) \ @@ -2590,7 +2711,7 @@ proc pdtk_canvas_new {name width height geometry editable} { if { $k12_mode == 0 } { wm minsize $name 50 20 } else { - wm minsize $name 580 532 + wm minsize $name 580 372 } wm geometry $name $geometry # the file menu -- GitLab