aboutsummaryrefslogtreecommitdiff
path: root/externals/grill
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2003-01-10 04:37:50 +0000
committerThomas Grill <xovo@users.sourceforge.net>2003-01-10 04:37:50 +0000
commite2d190402557ed3e57679fdbfdcb8643bda84d42 (patch)
tree05b80ec21df6065da22289bf90a53cca2cf977fc /externals/grill
parentfeeb907835c33ec49308a32449dc0b6d07285e2a (diff)
""
svn path=/trunk/; revision=334
Diffstat (limited to 'externals/grill')
-rwxr-xr-xexternals/grill/fftease/fftease.cwbin0 -> 131116 bytes
-rw-r--r--externals/grill/fftease/makefile.pd-linux5
-rwxr-xr-xexternals/grill/fftease/maxmsp/burrow~.helpbin0 -> 2230 bytes
-rwxr-xr-xexternals/grill/fftease/maxmsp/cross~.helpbin0 -> 1822 bytes
-rwxr-xr-xexternals/grill/fftease/maxmsp/dentist~.helpbin0 -> 1821 bytes
-rwxr-xr-xexternals/grill/fftease/maxmsp/disarray~.helpbin0 -> 1806 bytes
-rwxr-xr-xexternals/grill/fftease/maxmsp/drown~.helpbin0 -> 1366 bytes
-rwxr-xr-xexternals/grill/fftease/maxmsp/ether~.helpbin0 -> 2298 bytes
-rwxr-xr-xexternals/grill/fftease/maxmsp/fftease4.PICT409
-rw-r--r--externals/grill/flext/config-pd-cygwin.txt3
-rw-r--r--externals/grill/flext/config-pd-darwin.txt4
-rw-r--r--externals/grill/flext/config-pd-linux.txt1
-rw-r--r--externals/grill/flext/flext.cwbin205457 -> 205457 bytes
-rwxr-xr-xexternals/grill/flext/flext.pbproj/project.pbxproj406
-rw-r--r--externals/grill/flext/makefile.pd-cygwin25
-rw-r--r--externals/grill/flext/makefile.pd-darwin53
-rw-r--r--externals/grill/flext/makefile.pd-linux33
-rw-r--r--externals/grill/flext/readme.txt5
-rw-r--r--externals/grill/flext/source/flattr.cpp4
-rw-r--r--externals/grill/flext/source/flext.cpp5
-rwxr-xr-xexternals/grill/flext/source/flitem.cpp2
-rwxr-xr-xexternals/grill/flext/source/flprefix.h5
-rw-r--r--externals/grill/flext/source/flsupport.cpp6
-rw-r--r--externals/grill/flext/source/flsupport.h2
-rw-r--r--externals/grill/xsample/license.txt33
-rw-r--r--externals/grill/xsample/maxmsp/xgroove~.helpbin8270 -> 7207 bytes
-rw-r--r--externals/grill/xsample/maxmsp/xplay~.helpbin6092 -> 4649 bytes
-rw-r--r--externals/grill/xsample/maxmsp/xrecord~.helpbin9523 -> 8210 bytes
-rwxr-xr-xexternals/grill/xsample/maxmsp/xsample.helpbin1072 -> 1147 bytes
-rw-r--r--externals/grill/xsample/source/groove.cpp65
-rw-r--r--externals/grill/xsample/source/inter.cpp5
-rw-r--r--externals/grill/xsample/source/main.h21
-rw-r--r--externals/grill/xsample/source/play.cpp4
-rw-r--r--externals/grill/xsample/source/record.cpp27
-rwxr-xr-xexternals/grill/xsample/xsample.cwbin106655 -> 106655 bytes
35 files changed, 983 insertions, 140 deletions
diff --git a/externals/grill/fftease/fftease.cw b/externals/grill/fftease/fftease.cw
new file mode 100755
index 00000000..fb502752
--- /dev/null
+++ b/externals/grill/fftease/fftease.cw
Binary files differ
diff --git a/externals/grill/fftease/makefile.pd-linux b/externals/grill/fftease/makefile.pd-linux
index cd9d8401..546cf342 100644
--- a/externals/grill/fftease/makefile.pd-linux
+++ b/externals/grill/fftease/makefile.pd-linux
@@ -54,7 +54,10 @@ $(TARGDIR):
$(TARGDIR)/%.o : $(DIR)/%.cpp
$(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(FLEXTPATH)) $< -o $@
-$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS)) $(FLEXTLIB)
+$(TARGDIR)/%.co : $(DIR)/%.c
+ $(CC) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(FLEXTPATH)) $< -o $@
+
+$(TARGET) : $(patsubst %.c,$(TARGDIR)/%.co,$(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS))) $(FLEXTLIB)
$(CXX) -shared $^ $(patsubst %,-L%,$(LIBPATH)) $(patsubst %,-l%,$(LIBS)) -o $@
chmod 755 $@
diff --git a/externals/grill/fftease/maxmsp/burrow~.help b/externals/grill/fftease/maxmsp/burrow~.help
new file mode 100755
index 00000000..52b9819f
--- /dev/null
+++ b/externals/grill/fftease/maxmsp/burrow~.help
Binary files differ
diff --git a/externals/grill/fftease/maxmsp/cross~.help b/externals/grill/fftease/maxmsp/cross~.help
new file mode 100755
index 00000000..c6b5f598
--- /dev/null
+++ b/externals/grill/fftease/maxmsp/cross~.help
Binary files differ
diff --git a/externals/grill/fftease/maxmsp/dentist~.help b/externals/grill/fftease/maxmsp/dentist~.help
new file mode 100755
index 00000000..4db546af
--- /dev/null
+++ b/externals/grill/fftease/maxmsp/dentist~.help
Binary files differ
diff --git a/externals/grill/fftease/maxmsp/disarray~.help b/externals/grill/fftease/maxmsp/disarray~.help
new file mode 100755
index 00000000..6180ece1
--- /dev/null
+++ b/externals/grill/fftease/maxmsp/disarray~.help
Binary files differ
diff --git a/externals/grill/fftease/maxmsp/drown~.help b/externals/grill/fftease/maxmsp/drown~.help
new file mode 100755
index 00000000..a137e805
--- /dev/null
+++ b/externals/grill/fftease/maxmsp/drown~.help
Binary files differ
diff --git a/externals/grill/fftease/maxmsp/ether~.help b/externals/grill/fftease/maxmsp/ether~.help
new file mode 100755
index 00000000..5c78816a
--- /dev/null
+++ b/externals/grill/fftease/maxmsp/ether~.help
Binary files differ
diff --git a/externals/grill/fftease/maxmsp/fftease4.PICT b/externals/grill/fftease/maxmsp/fftease4.PICT
new file mode 100755
index 00000000..571999d7
--- /dev/null
+++ b/externals/grill/fftease/maxmsp/fftease4.PICT
@@ -0,0 +1,409 @@
+(This file must be converted with BinHex 4.0)
+:!!"358081%**633!!!!bdJ!!)`Sr+!#3r`#3r`!!-0)!N!8i!+!!%3,r$!$rrJ!
+!!5`!!!%X!*!(kJ+D!*!&S3(b!"Bi3NP0!*!(1!#J4h+*F'L[BQS!S3$J$%`!N!B
+-5%aTEQm#%!!!E@jdFP*(3L"B@9SJ"mi!!J!*!!B!-3!!B@0cF%e64P3!N!4*48-
+JFe*(3J#3$[E@!!%!N!66,8K3)#!!N#m4Bh"bG!!!!9!!!!!cC'9cB`!!!B3!!!"
+XGh4`G!!!!I!!!!!8BQY`G!!!!J3!!!!8FPKC@J!!!KJ!!!!8CeKC@J!!!L`!!!!
+8BPKC@J!!!N!!!!!8C'eZC!!!!P3!!!"`C'eNC!!!!X3!!!#)GR9PC!!!!d`!!!#
+'GQPPG`!!!p3!!!!NE(9YD3!!!rJ!!!!8E@9KF`!!"!`!!!!NG'9MD!!!"$!!!!!
+-FP453`!!"$`!!!J-Ce453`!!"$`!!!J-BP453`!!"$`!!!J-G'9iG!#3"%0[F(P
+bD@GSG#!SBbNJ-6Nj1#")CAGXCA4d,9"KBfYKFQ3J3fpYF'&ZH3!!C'9cB`#3"a*
+c8NG#)%P&3cBa16Bf,6)Z-3#3#a*c8NG#)%P&3cBa16Bf,6)Z-3#3-PKC@L!!N!E
+c83!"!!!!!4E-@&PD)!#3%&KC@L!!N!C[SJ!!128!!!13!&KC@L!!N!CLQ3!!Yi8
+!!"MD@&PD)!#3"L5J!!!2K!!!YXpNCA0M!*!(&NP&3b"SG(4`1Lm[GhGh,QPPBbj
+MD!#3#aC*48-JD(4dF$S[,hGhGbjTC@-ZBfJ!N#jNCA0M!*!(,NP&3b!f-6Nf0Ld
+b,M%J4'9QBA9XG#"54d)JBfpXEh9b)(0`B@0P)#dJFe*(3J#3#bj*48-J0M%j0MB
+Y-Lia)%4PCQ&eE(3J8NG#)'0[E'peFL"cF'&MC5!Y)(054d)!N"CNCA0M!*!(,&*
+PCQ9bC@jMC5"@D@9hD@jR)%0[EQ4TG'P[EL"TEL"*48-f-6Nf0Ldb,M%!N!XX8Q9
+QCA*PEQ0P)&CTCAGTEQFJ3fpZC'PdD@pZ)'PZ)%P&3cBa16Bf,6)Z-3#3'RCTCAF
+!N!86T2i!&&mZ!"$2&!!$lF`!""-,!!0FRJ!!!!&B@9SJ!*!&6!P@!&!!!!"A(qG
+YC@&c!*!(!3#3%J+2!!!!!R0TCb!!N!4$8P3JBh9bGJ#3"J3!N!3&!!S!$`!8!"N
+!(J!M!#J!,3!b!$F!1`"!!%8!5J"2!&3!@3"H!'-!D!"Y!()!G`"m!)%!KJ#,!*!
+!!*8!QJ#I!+3!U3#Z!,)!Y`#m!-%!aJ$,!0!!e3$E!1!!j3$V!2!!pJ$l!3%""`%
+0!4-"'3%I!58"+`%b!6J"2J&&!8`"8J&C!@!"C`&Z!A8"I!'$!BX"NJ'D!D%"U3'
+a!EN"`3(*!G%"f3(K!HN"mJ(k!J-#$!)8!Kd#*J)[!MJ#33*,!P3#A3*R!R%#HJ+
+%!Si#Q!+L!U`#YJ,"!XX#e3,J!ZX#p3-!!`X$&J-K!bd$1!0$!dm$@J0Q!h)$IJ1
++!jB$SJ1Z!lS$a`26!q!$l!2j"!B%%`3J"#d%1`4)"&8%B`4a"(i%M!5D"+J%YJ6
+%"0-%i36`"2i&$38F"5X&1J9*"9J&C`9h"BB&PJ@Q"E8&a3A9"H8&pJB'"KB'*`B
+h"NJ'@3CU"RX'M!DG"Um'`!E4"Z-'p3F("aN(+`Fp"dm(B3Gd"iB(Q3HX"lm(dJI
+P"rJ)#`JI#$))4JKD#'i)JJL@#+S)[JM5#1F)q`N3#58*1JP2#@3*H3Q2#D3*ZJR
+2#H8*q`S4#LF+23T8#QS+J3UB#Ui+a3VF#[-,#`XL#cN,83YT#i!,Q!Z`#mJ,i3[
+j$")-+Ja$$&`-G3b1$+F-`!cC$2-0$3dQ$8!0@Jed$Bi0U3h$$Gi0q!i6$Li153j
+N$Rm1Q`kf$Y)1lJm*$b8233pH$hS2PJqc$mm2l"!*%#B33a"K%(i3Qa#j%0F3p4%
+6%6%46a&Y%B`4UK(*%HJ5"a)Q%N85C"+%%U-5`a,M%`-6)a0$%f-6Ja1N%m86j43
+'&#F8544U&)X8V461&2!9%K8d&9B9H"@E&Ed9i"B$&LB@54CX&Sm@XKE@&[SA(4G
+"&f8AL4HZ&p)ApaJE'%!BC4L+'+mBe4Mk'5!C44PV'C%CYaRG'J3D+KT4'RFDRKV
+&'Z`E&"Xl'f-ELKZb'pSF!K`U(&)FHabM(-`Fp4dH(8FGF"fC(F-Gl"i@(N!HDKk
+8(ViHk4m6(ciID4q8(lmIkL!9)%%JE##B)-3Jm#%F)8JKG5'K)FiKqb)R)P8LJL+
+[)YdM#L-i)fBMP#2#)r!N(b40*(`NUb6D*3NP1#9S*CFPabAh*LFQ9bD(*VFQk#F
+B*dNRHLHV*p`S$5Jr+(%SSLM8+3BT1#PV+CdTd#S#+M8UD#UE+XmV!LXf+fNVR5[
+4,!8X15aZ,+)Xebd-,8%YGLfV,H%Z&Lj-,S)ZYblZ,b3[@Lq4,mF[rM!e-'``T$$
+E-4)a5M'#-ESamM)U-Q-bQc,8-`dc4M0r-lJcm63V0'8dRM6B04-e66@(0F)er6B
+h0R)fVMET0b3hB$HF0pFi&$K31)`ib$N&18)jIcQm1INk0MTd1V)klcXY1fXlUM[
+S2#FmC6bN21-p)MeK2D%pi$iJ2Q!qS$lJ2b%rB6qL2q*!)d"N3+C!jd%T3@T"V%(
+Z3M"#FN+e3[G$1N0p3m"%!d4(4)T%cN85499&QNAH4L*'CdDV4["(08Gl4m")"8K
+,5*&)edNG5@0*U8R`5MG+I8V%5`a,8dZD5q*-+Nab6,T0!Ne+6C00h%iP6Qj1Ydm
+!6dP2NdrG8#G3F9#l83C48&'E8HC5-9*m8XG6%e0I8kT6pP4#9)p8fe8S9A99`PB
+29Pa@U9Eh9d4ANPIJ@#pBI9M,@4TCD9Qi@JGD9PUQ@[9E49Z9@q9F09b'A0CG*ee
+iAFPH'PjXAVeI$epKAl0J"@"AB+TJr'&2BD*Kp@**BTaLm'0$BjGMkf4!C*4Nk@8
+pCC*PjfBpCT*Qk'FpCj0Rk@JrD*CSl'P$DCTTm@T)DTpUpfY2DkGVrfaAE+pY#'e
+JEEPZ%QjVEX4[(QpiEp&`+h#'F1"a1R'9FI"b5h+QF`&cAA1iG"4dF(6-G5KeKAA
+KGMjfQhEiGeChXhJ4H'jic(NUHBPjjhT'HU9l"(YMHm*m)Ab"I1&p3AfKIJ&qBRl
+#Ib0rK(rPJ%H!U)%+J@Z"cB)`JT+#p)0AJlU%(B5!K11&4i@VKJk'FSEAKcZ(RiJ
+%L'Q)cSNcLCQ*rSTNLXU,-)Z@Lrb-Bic+M6'0Q)hrMQD1cSmfMjk3!!D3!'k3!0D
+42j'SNK'5HT,MNdf6YT3JP)U8p*9IPFQ@0*DIP`UAGCIJQ%bBZ*NNQC!!QIbDD*V
+9Qd+EVj`FR)QFpjeNRG+H3*kZRafILjrkS'QJf+&(SEDL*U+@S`DMGU2QT&DNak8
+iTDQQ'UD,T[fREUIJU&+Sa+NhUDQU(+U2U`+VGD[TV&bXd+e%VELZ,DkKVaD[Ll!
+!X(@`kV&JXGDb5l,#XcLcVV3PY*be%l@+YJ'fHEE`YfLhi,KCZ0'j5VR#ZMZkYEX
+ZZkHm)EbE[4@pMli+[S5qrlpk[rA!F-$X`@I"im*I`Y[$@-28a&(%cX9,aFM'4XE
+$ad(([mJpb,c*1XQjbMM+YmXfblE-0Fbec6A0YFifcVE20mqid$R3ZY%mdEl52p,
+"dd66aY4*e-[96YA4ePA@f0GFeq$BC0MSf@cCmGTff[[EJ0`&h)VG%0f@hKcHSYm
+ThkrJ0Z#pi86Kc1*6iY[MBq2Vj(2Nr1@%jJhQPZFIjkRS-ZLmk8ETd1TEkZAVF1[
+ll)EY%HfFlLMZY1p!lmc`@2$PmA,arr+-maRcTr3dp-,e82AHpQhfqrH+q"RiU2N
+iqFIk9rVRqhIm"rbBr5RpZ[j,rYcrEIrr!+%!i!!%!!!!!J!"!!S!N!AU!TU#!!!
+!'[S!!!!"!*!2!3#3$N!!N""!!*!&`!+D!!!$!*!)9QT`C@F!N!N"!!&KF("X!*!
+'!3!#QJ$!!5`!!!%X!*!%'Pm!!3a3D'pdEb!Y)%T348F!N"3Brrrrf2rJ!""+4NP
+'!!'3"#`",!!!rri!$%&`F'aP6@&bD`Vrf`#%!"B2%4-4$KB6%K-C&aBD)6BM)4i
+H)8)[-LFf6N9588e&6%T@BAaT9PaeA8T-E*0YGB#%Lib,9'LBSjH(SAb)Li8"&aN
+C)4dK2b-M2i9C6&Q&N$,ra!'L!!!""3'3"J#3#!%#!`3&"JF)#3S,!3!$!C!*!*!
+'!3)$"!8'"`J*#JX3!!)"!`-#"!-&"33%!!!"I3%#!`!%%385)6&""K04B3FLF43
+bJC'K##0#XF%98Y(`*$0LFS)*#KBA'"ND*5BR+#NU0$8f0cJj1N0%48C(5%P+8e4
+99PGB@9TMC'9QCfKTDR0dGAChH(PkJi5&KSH)LBU5Nj59PTHBQCULSk5PTUHSUDU
+bXl5eYVHiZEV#`m6&aXI)bFV5dp69eYIBfGVKiZ2NjHERk1RUmI,cp2AfprMjqK%
+!!J%#"!3$"!F&"!3!!3*h!!%#!a%%"5%a"K*"83GKF4-L-S%)&%+4SE("#5-c8[!
+9BR,4#KBN01%Pm4FB'4SQ*bJT+M8f0cJj1N0%48C(5%P+8e499PGB@9TMC'9QCfK
+TDR0dGAChH(PkJS1%KBD(L)Q+NT18PCDAQ*QDSU1NTDDRU+QUXV1dYEDhZ,Qk`X2
+%aFE(b-R+dY28eGEAf0RDiZ2NjHERk1RUm[2dpIEhq2Rkrm!!%3J!`!+D!`%L!!)
+4!3-4!IrD!!`$!3!#%3-4!$m!kkLLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!
+SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!
+SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!
+SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!
+SSSS!+++3!0!#d8P&!#d8fLJ"e&*QM0!#d8QD-d!,46D+!(88fLJ"e&*43!Y&*43
+!Y&*43!Y&*QM0!#d8P&!#d8P&!#d8P&!#d8P&!#d8P&!#d888!&&&&!"4443!888
+8!&&&&!"4443!8888!&&&&!"4443!8888!&&&&!"4443!8888!&&&&!"4443!888
+8!&&&&!"4443!8888!&&&&!"4443!8888!&&&&!"4443!8888!&&&&!"5'PT$3'`
+RidK09*Vf'%("bI5XqA9*'2lX99M'99)fbFG65EarI&Fqpp1i`6LS$*)H6)DI+CI
+@8G2jLqSr1Mc&p4qGFa[EeEmk0lHVIR4l-PiNkF128IR4Z(piIRA,lMkYqG'ir`"
+j[cTqc((%k(5Y+UMPK8B[)#fhGcA2"RBNHBDQdk&T,MNNM06B)eVXk6)l8STS!8F
+e9R[SiMMV51TbX@KNp+$ae0BmZUZhqU'+V'qZMpkTZ3kb4d'pIl`Sma2l`VQr0Fr
+aQMHrpmdA-rV"dRQ,rH&(Q,rH(jec1prqHKSh[rcd0&`pZG0Z8raLNhU1VLZEh-2
+q@KSqC[m!PSDG`H)XG!,Z%YY9XQTXj(@X$6BcjZ55DdC,JL6D+aP9XG&0Hd,fiHY
+'iHYCM5(qp3XKp6@AYcSpLDQi8C(V@CjcqY(R2keAYLIC'P`1p,`HpCRRZHp(RZ1
+p#VKl%dmildKN8G5+c0lRUe*R29M8ba"AX65%bNi"U3FLXZ%0[(0D5m++fK1jP+0
+Ke,44@T)8888!&&&&!"4443!8888!&&&&!"4443!8888!&&&&!"4443!8888!&&&
+&!"4443!8888!&&&&!"4443!8888!&&&&!"4443!8888!&&&&!"4443!8888!&&&
+&!"4443!8aUI6'S4-YMRlf0BlSiUX3@"ja9[8p`Zq4a9-i+RQYNMcDZi%CSj2!T9
+2c9Cdq%5ci25QhBbT8qBVFqP(2T@rrCYVr`!mk2l0YIm!RRqYCZGMVqVA1Ijp+1I
+5ZKrXferjjd(6EArRR6jlJX0C'#N661&+R&EPRDTE*NGDR5&&k+"6hqP6FdT8,-'
+'j4A1h+&EZ61Dk,S`&B1S(&kp3A9+akdTk8$T5$V8R(Di-$Rlr`#P)5#-&[dUhTe
+XXd[cVa@S,#f"qi+UaSU*Ji0'$@rr!'GDr`$22pD2l0YIqHIkd@0931ICJ2ZJe,$
+Eb6Bi0EJXEF(lJUCBNMqk+63P3Z8eK&[Ei&9am`jV4RAHZ+V*ElMLZ@F$[ST349f
+mpDFFU+[VD)+LZ)N89$Sf099Z9D+++aDXE*h%2bp+!92hUQYdh(jUY'e3MT@dDGc
+*e$2aR[5l51PA[XD([6eYNAV91KF6UN9V%9keE&!!!iSled3KBjj5Z1ST++e%KD+
+E4RhUHB"e&-hHp'kMQ!I4449!&&&&!"4443!BSa6Ge'kJ"f+-8hGlLMG3!kLNSS!
+@LNc4QJ"D+++!#LLLJ!ST-dCpk!$LMLNh,kdEPpDRQ!G45CSSZ!Y&*49!,4588!,
+46D+!(BSa6Ge'kJ"HD1D6H+0`S!G4443!8888!&&&&!"4443!8888!*5(SD@QYpd
+r5Q,SFpI[ZZM98G$8N[c6-6kQQ(K$@d6b,qm+H#2DYA4%q@4MhV*2*EfVHdT!YST
+pDL4YKPUAk3d8'Xcd@&&&,31`JT!!dST'S!3p5IDZFZMZZ'2UDk&Mm[i'ZD*h-$k
+NdMRUK4443FCUD2'9%MIhUddi@UZQ!IBN2FeE(8LQHK&$U+++$3+5PT+3!!'N&+D
+"8f!4HTUTH(R&A"hV0ZQc*89RSA6@T$NGU-(Y4JGU-RYA!YcX@KCY"mfD[$V9@bA
+phQVB&Gm%FFQ,444@a!P&&'F8YKELF#SRQ9Hp4ch!!iUNAhRV@&5SDaJ@*EXMT83
+Q,p66)SbajUBfal9c0YQU884"hceThQ5$[6(6ChTS0CZ64SS*PZ'j,("UiMEKa@6
+RRLY#d2bmeedTA-*aX@D+5LZS`Z(HQZ`8C0)cK9bDcjTc+f"@-kL4FBh*hZKMLUc
+c%RUDCLMEA+jh0q@`jRIe0+XXJT0VdKb+MQD,j%@PZL1Y-Hk*k9@'649HeD(l*%`
+QIGeTdGbiI"09b4QT)8$2eS8lXL8E'P'jB8kNM!!THYHJYMQBY4[)"hTXdZd93NN
+,(V@&5SA'"-paNj@S'RGQldJ'aI@TilFZZi9LRFeZSN)GahTfpMhU9VAhU#5)Th0
+6CT'LF@1@i)20A)TYiV2`#+XfUQR5NlQFi)[QNT63+lcPB8'LS*EJ*85RBT4(XiA
+[9DDjl#S(NBLSd'mmeb1Uj'dDDL5rD'DQQCad02m!Xl(T86aZR@XffDHk+*Ale0&
+Fi209P,%FdSa68abLDUZ'k8kU9NjB9G&GP19cNP'`kLLLY4"4443!8888!&&&&!#
+9"G2j9ZaUEZDTkQhqLX+BRm*KXFNRhTVFLN"b+"bDfLH)hl`!iC!!r`"iedeUJMK
+9IDZHJKhc)[m!G0G'K'!G`i(V851l$SNiS00$UIiKqG0HC&rL(jeQGV*+1Y8Qe#&
+Hp5fmiRj(5JK6Z@+5PT+$4&DqIbVCL+jmR'FGUfY9N!!)0KrLV&AK0arLT(,8&!b
++46m`([3$mf+QY)a*2ckd(1MIJABJqP5$Nd`--!EKqG1$+2iKqG-p"-I59&*2'R9
+KqG9jG5JMkQJ()Zpk-B1DLYjK2(Z&5JFFdLJSSSTJ0Bi"0CXac+69qBiL*V0*b5D
+jUc0k5'JBT`0-*Tk$*&FF6H@KSf`a(8`TXB`JThD[6LMKE&T$43DTJK1P9EQB$SH
+DI2+)eah08(*h&MdVPU9$@P'iMFYNd+KCZ+"mkC&@l12#j0FkpieRlT0$%%&6B"S
+'-8Q!$AI'+XFYf8Eb2R09Jf4LV9kq1+UG"QZ1[C(A5Zd,dUrCMM08"mc#Y1f'e+G
+!QUbBdM(!S&9lQ6D+kTbXFm9FVh8TBmG+K1#[(@JYMJpDB&+R0HI+9cXK'`p&CQ`
+Dd)S99HDKY8,FQVCkBVUT8lUl-+Xl$6'T&9jB!DYJ#NB#YC`4R'6-[EjE8dR,9,F
+rkbSXB0F-l)kSYL$J9DY&bFe9kQY#dA#e91'T0@@KB(&"1"QJrGU1FiL*V[HL1EF
+Sh4hR)U)()a3@l8R6Q[0QcVJL@h'C+dJ-9Q3YYN&D50ZaA93MG'08F1DBm3DRdB0
+G,5XBTXSICLAUl'QeF8kLXi4316&AT5B`DAT8Fcl4@NYKSMZ*K'Z"@HAba*TdVPM
+c6#ZiF9jp@HTddiMP,1-BUpE4+)aN9@Y9*EQY%!#Yk-8c1SfJa9@m(&@UUhKiV5S
+NM1&f8MJdR5P+iT0T0HFpcXZ@V,"&AKa9+bL+LVYHK3@Kb9AU1SSSVFJ++++!#LL
+LJ!SSS25J"YC1X(*M!261De3IP&B@T2ZZRAql6LB9RC&3J#Qic5N%dK"&G%G$cAU
+1AFMCc50,+@qmIcT-%VRQM!#jSj8#Z,ZEeEmk3XI8rR30jrK2j9))h2m!#IbUH9!
+e)M!(!8jVSG26EEM08,,6L#'DYL03S#LXQGp+&Ke)D8dP5G9M(eNUc4U$b$9!jhR
+(5V&qfkmGI5U[cFBU6JU5&SSSS-ikK[BpcqG'5IiQr1N(2Bdi)6d"r+Q9U*QAEb6
+MkdM$FS!j1DG'NV(CY2j9HXY2CAh2dS+8@c3X)c(EJ(dUd1463!!!+F1+CfS++++
+#Q9lSMEJeRRJm9D[Qc`+UV`1Di+c1QNJ!cbDNYJ@Njk9'4PXMT9Ud!CUQNLUM,e&
+&&HLMM#QZ5"6UKQP#LXj1a59bRF1(1DLcZ'$34[1D3R2!VKP1jf3MB8Vm`a@M!Tf
+$08)4KaQY!1![&G&+-6'UL3BTNM!9%e`J(&9CTbaiTcUA)M!E)iNj04Cca4JRN9,
+'JNi&FVMFk)bX,$(ZB9SaVY8#SiBGSUI&GP1RbR019aV%+ZDcEKYc'VPbr`!YCqF
+Y@GCQP1)4M2*kd)#mZ$dSaNj&6@i$2A-Y@D6d,XDiU3d$LL[5MSMNPU!ke&F0YA0
+6%i'DclUAFF9&4k&3L3(jZ6eTSqBi0"jj&1()`+mq8MX3dM"!&DPX2h3"V1L(ld!
+eTS11+kk#1HS1U+j2lZTZe-P6FPEcf-NC*!"S25R54%'Qp"AR23l8"*8m9CYlM!j
+UZ-Gk#-p+&1a%Sh09@9ZKTh5Xb1CN0ABCYijVXK81G`X6d88PElQEGJcaQU9c+'1
+d9DPEDKV,BjFQZDV-fTS!-RQPFi'"4RF1+4"ccA+QG6,eNQ)qY@-%GkMKf)R@KjN
+#pDp#2,%iRGMh1d93RF-DG,FlaJ9@),(0FYDVf0UF@(hZ66e"EJ8L$HF#Vm%!3C0
+66J914*!!VX@R,be,5JBVZMSFc&SSSUK"4443!8P,58!"T+8dP!$A)#XIDZDQ)HG
+rV@lHZ8LERYA2$2c0leF$La$(8eU88Bb`qYD5d1'1V0LaYBhYrQ'DX#bY`-EDQJM
+50!&p+N!ad&BhCkdB)K@hKASSr+R&8(3$mUN`+-90fAb4!#PS&)DC@`Y-P1&*pUA
+2&9Vk6C!!%e*,CKZhQ5%ReTM(DH+"bT)S!ijS21U"`93%9Y@GV%B%b+a9h'3$(3L
+ZRM!5-$fS1LK#j#,@!I`LT&KL(44q95BAdT461VP3h!(m)r+LR88$d%STD5Q5aD$
+58K2&"5e-ql2ce!166j6ZNTMI+DmbScYJKIZ9HY&`0e8J0kjV5YaL%9Y44P9C,44
+59f41CJHY8,SjHVlG+bjMQ8eK@GM@QVM-iiT-BjTFCjScRLZ&kRCF"Np66Yl,d01
+MJ$p$8iY&lQY)dT2B`QbU6LJ+@l9Hqc,8Ua)[DYrCN!$Q8iECQqp9Z1&8U8$LN!!
+2@YSddCZ3!++$5daM@MGK*&'lEjkVG68P`fk5SqKVckce1ZRSKFm9EXele62@VpT
+pfP6q)9ABXjTDD4LN,BVdAXFK&F5""LXpaNjU@G[-04Y`+iCcZG-)L8889cfZDXQ
+YaZNV4ALU&Q2QUrAI61@S,5dP,A3c*&1jK*(&8Q8VeVBkeAZ)!r5Z@T50S6-jKZ1
+D0rDR5VjCa5!$'Dih'aeV8A1"6ShfQSbHD8M!USZa%NDXEEK6UUf6ENjUehVd+FV
+Sij,8UhMB'+SeB[@qDUrm0FFcSTS8Vc5--LPj)TmDEM8aLDXEjZ1+3qY@KD!me),
+B%B09l'5-ZC&%!pK8XF,XH49j)86Y6q"d&E`Shh*GDa%N#T8`)S)c5$!VG3XB13k
+PT+@UBN&&&&!`SSSS!++++!%0*5dP!A-c@Q(P+QH@V)212pLVQU5'5m+Ci5U3!!4
+RrDV5*j9Gr["al'TE9I0ZP&3Ci!UpTDIk8$9-QL[hKZ+-!I5RdKS&BRVLd888!&)
++@NS%0aRG@9V,MBUJmLYAS`(V@"U-KHlG1`S-kVd+aT'k8TT'k9*`PQ`A0mJl'Yp
+9'iYRleBqNalTRFr`9XU-B&8Ge,BI4443DK4443!JS0!S0*lJK+C-F,6qp9lTX#T
+U1b##e+,FjTR5R(LJFejThS@-FJ9U4M%B&Cm)rHJ9T$J!9f8MPULdP,59d-bBNRh
++bT[[QY@6lPC8hhcA0APSDda-BSc4QM&FF6U,9Q$9dLU0Ni2&AMAS8PSFG9kLd8P
+,@eM1i88R5Q2+&U(0)Ua,6*2Ze&&0[055G+,h3dM-FlRTT''TcMDp0*bDmbEe1U#
+$EPUdEEKDcGf'UrEYPDkD2ZN99FXGHDUh-Q4Y&5c5l&V2D6FaV5T8-i3&9G``+G)
+J41DQYBXFQSVVjhfLX('aT&kN@+-dCSa@,0@@V-GkZe8XIZeD"bDlk1aae0ae"U1
+@3)ZDMJRhR&@jT-A,S@++$6DdX5f46`KaQXq45Ta@YfUKG!!jVNU`0UFLYR0+'a3
+4LN!cA'pcSYBZ@4bPA1LeAY%fT9KZPHP6dLFXhUCP`Fb9%4c8Y`2hP4%me`51Q#&
+cc8eX2RU$(06@arH9T6&0QM5dP&HJMNE(8P,43`6%&,65i9Fe#NqjX9$Q&V&QLN&
+,9*J&&&&-!SSSS!++++!'p+4rZNqe,e&9lapN"2Y33fFr0qmP,ClddM2HN`UJR28
+d(D&cQYNH69Il`"d0DQL$jT[`V+0E'M$r!&[i9-ME$Vhc8AT5LNAT5LXcdaD+++!
+#NSSS%aNc")bDjZBllPQVGe"X@V'ZI8r+@S1HZp"1p+h5NldVG+NjBDQTSbN+j0D
+Rm3UKT6!`NLVij`DSlSE$k+++$8++++!%&&!STG3393ZfbpAqaV,Z$Q8eKAGND8e
+U4d889`)kN6f[hkd1pCpTpqY$[AS8GMPUlLdP,59ZBX''9V,Z&+[@S+Vh%3BCV#Y
+#k0B-S8P+D3e`E(A(8N4[*FBV3@9A8FePMMV6PGNlm9d3U@)R6ZD[bLN-LLXll3a
+TTNBpkYeVQAXbj,FU"a99T'HSZrV8m84BF#XflPFU4,C)DXZ-#L&0JTj'Dki+k-E
+Q5h*1DDafp+R[%`h&3iqAQ[2Uae1U$&01@BTa8HF8["T1CE3q9mdq#(Ic53aEcc@
+K'JM@ZLR$R-*bj3#J93Z[pC@M@IFVQ5YDXE)L$e)-!M0)#6`D#T*b1P,Z'-Gki6T
+,GMb+Y-fh08,9pMlDZ6rFcAG6f1@Hj4NP-K)0*'GP0*!!HP0cLZ@T1c1L-G$9MNh
+LRN9P*+mG6#jCK@mDaM+QAQ)89Rh,"M3CbhHSA*0CcUP3J0qY6a)6dTNDqDHPAiB
+K'1D&$8UFb50GSTfFd[88J(0GUMC(+hFcVY$R03$'+dTi`iV2NL+QZ'T'ae8jA'I
+-HY28X[5N16dS"+pDcM+aT+0c4KP"(@T12@XSEd2@RQ@6(@ZK96"dc6*!(@SARfp
+kTHBakXDB`chSG8&6*RQCJ3DGDU0fDL9#jaJeHYi3JT`e#SNLF8Y*5ee*'!8888`
+#LLLJ!SSSS!6SY3h8IQ3N9-1D2DJ$QCE5D)jfNdcbfBI0'DkGP$G9"T!!S"d399c
+PP36-',6TT2[F#Y5bY$EMNeE#KD8N8VQN++3kLLLNE"4443!P&&&!)JZd-PZ9lQX
+'5fH%%K#Dk3M0)9c`9&"R1&cQ4&-ai3eBMdkD6"2&ES3$q%8i!GU#&6X3@YX)&`+
+Rk(*T4QN2c8'bd(8888$#LLLJ!SSSTA!Dh)UR2#@0A439"U*4Z"P#'3GUN!"E1eD
+'"5p+K8l'MRFV`fiMjUFd(0++f@KQp3SSSTJ,65+G43"8NJ$G+V0EZTi&D3!&"'D
+jh6,8c*C'rZQN8-2i6@YJ(X+0LqJV0dLe8-YBA2DTPY@0AJS&1a9a`k4,Q9SlB,8
+q-#R89ZS*%0K44463V%8m3F93H"JDe+3S$@FiA,M+aN$Fa`9Uc&EJmN9G#+1`THR
+39R'PBTe,M%6&20'D1YG%9BcHSGkKZ)"++R)c4LP*A"D'BeZkG+3@lXH4@RMeT-H
+PBqb0&8X34fr)0@'8&F8$J8[HYSQEC4PYMfUZB@(DYEJddUYCcTh,M1aPBIm!ZdE
+(rZQYAD238Z"k#T9&"l3c2XlYe&64fS(@VS'+ALUpLJpS4*(MY8KTD6V9T'BY&&&
+@!h'DLNK$91D3!)*V0ddaV3cQYh6T8CMN2DYAkdK3HPCZJQD+TBbIR2m!#DFXE(q
+%eUE9p"3&(T8+N!$GCP!@l0eUG,94eUb"4@LT'EUXD"l#RLM&,@T)88893"4443!
+8888!&&&&!"4443!8P'D-d"B+@Nc5d!&&&&!"4443!8888!*5dP&!A#PSSS!+5PT
++"#d888$#LLLJ!SSST!&&&&#!5LLPTKB++++3!!8888`#LLLJ"++-dY&`X*45dP!
+V"445dJ%STD+04K58#PTl!Q*4445Z$#LPSTLX&&&*3!Y&*453!!888Y-,#8Y*43#
+&T+@N0&`BP,45e0Q&K++++S,#d888KK4443!QD-dBSa4CL%STD+03X&,5CSTMZ&&
+,58!,4448J&&&&8!8888!&&&&!(rrf3!!Q!!+!*!&,!"&!*!&,!"&!*!&`!+D!!!
+)rIm#!!$qrJ!,"i"rrrm!"rr!r`!,"i"rrrm!(rr`r`!,"i"rrrm!Irrmr`!,"i"
+rrrm!rrrqr`!+")"r`2m"r[rr!!X*L(m!2`2r!Iq!!!X*L(i!(`2m!(q!!!X*L(`
+!$`Ii!$r!!!X*J(JF"`I`!"r!!!X*J(JF"`rJ!!rJ!!X*J(!F!`r!!!IJ!!X*J(!
+F!ar!!!I`!!X*J(!F!aq!!!2`!!X*J(!F!aq!!!2`!!X*J(!F!aq!2rc`!!X*J(!
+F!aq!*rc`!!X*J(!)!aq!2rc`!!X*J(!!!aq!!!2`!!X*J(!!!aq!!!2`!!X*Kr!
+F!ar!!!I`!!X*JI!F!`r!!!IJ!!X*JI!F"`rJ!!rJ!!X*JI!!"`I`!"r!!!X*JI!
+!$`Ii!$r!!!X*JH!!(`2m!(q!!!X*Mi!!I`2r!Ir!!!X!JIlr!!(qr`(J!!X!JIl
+r!!$qr`(`!!X!JIlr"3"rrrr`!!X!JIlr"3!Irrr`!!Rpr`8!"rr2m!!)r!!%!Im
+$m!!#p`!,#6J!$(`!!$h2q!!,#83#"&5!!"+4U!!,#B)!""!!!"+J)!!,#B1fGC'
+hf"bJ)!!,#B+5P4#DC"#J)!!,#B+5Ka#5I"#J)!!,#855K4#5B"#4)!!,#6MrIlR
+lI$R2F!!%!"Mi!!3!$[J!JJ!!!!8#!!!!!3#3$`%!N![!!!"!!*!33!#3"5S#QJ!
+!!`#3#&CUF'9R!*!*!3!"BA"`E!#3"J%!!TS!+J%X!!!",!#3"!4S!!%-8'K[G'm
+J,5"+8%9(!*!8'2rrrpMri!!35NC*4J!"N!3X!5`!!2rq!!a"F("XC8eKFQX+rpX
+!K!!@$a%6%3i@%a)6'4F@'L%f)b%H(L&#,c)R0Nj&8P&048a+9Q&mD9CFG9e+6'b
+6EA@!K)Z-Le4SQ+1AKk&mL)Z&!4FC'5%G)6mM)cq&@8aCKC!brm3"SJ!!!38"N!B
+!N!J"!J-%"3B(#!N+#`%!!`'3#3#3"J%#!`3&"JF)#3S,%!!#!3-$!J3$"38%"!!
+!!Ad"!J-!""%&%L%a33B68@%()R%8-S'4S3JM3V("&9,4m#3cBR+##3S@&aJC'L8
+Q*bJT+M3e0MFi16T$4%9'4dK*5P0899CA@&PDBf4PCQGSD@TcG(9fGhKjHS1%KBD
+(L)Q+NT18PCDAQ*QDSU1NTDDRU+QUXV1dYEDhZ,Qk`X2%aFE(b-R+dY28eGEAf0R
+DiH,Mj1AQjqMTk[(bmr6ep[IiqIS4!!)"!J3%!`3("33%!!%#G`!"!J-4"!8K-3B
+539%(BA%6)M+"#"4#ND'a`3NM-e,`&@*bd3S@*$6K*I%A'"ND*LFS+5Se0MFi16T
+$4%9'4dK*5P0899CA@&PDBf4PCQGSD@TcG(9fGhKjHS+$K)@'KiL*LT+6P*@@PjL
+CQU+MT+@QTkLTUV+cY,@fYlLjZX,$a-A'amM*bY,6e0A@epMCfZ,Mj1AQjqMTk[,
+cp2AfprMjq[r!!"%)!#S#QJ-")J!#%3%$%3(rfJ!-!`%!!K%$%3!r!1ZSSSS!+++
++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!+++
++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!+++
++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!+++
++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!+++
++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!+++
++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!+++
++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!+++
++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!+++
++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!+++
++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!++++!#LLLJ!SSSS!+++
++!#LLLJ!SSSS!++++!#LLLJ$rf3#B!!S!N!8X!%8!N!8X!%8!`!!!!1S#QJ!!#2h
+r!J!!r[i!#`H!Irrr!!Ir`2m!#`H!Irrr!"rrm2m!#`H!Irrr!(rrr2m!#`H!Irr
+r!2rrr[m!#J5!Im$r!Ilrr`!,#BKr!$m$r`(rJ!!,#BKq!"m$r!"rJ!!,#BKm!!m
+(q!!r`!!,#B"i(!F(m!!I`!!,#B"i(!F2i!!2i!!,#B"`(!-2`!!(i!!,#B"`(!-
+I`!!(m!!,#B"`(!-IJ!!$m!!,#B"`(!-IJ!!$m!!,#B"`(!-IJ$rmm!!,#B"`(!-
+IJ#Imm!!,#B"`#!-IJ$rmm!!,#B"`!!-IJ!!$m!!,#B"`!!-IJ!!$m!!,#BI`(!-
+I`!!(m!!,#B(`(!-2`!!(i!!,#B(`(!F2i!!2i!!,#B(`!!F(m!!I`!!,#B(`!!m
+(q!!r`!!,#B(J!"m$r!"rJ!!,#Bq!!(m$r`(r`!!,!)(qr`!"r[m"i!!,!)(qr`!
+!r[m"m!!,!)(qr`8!Irrrm!!,!)(qr`8!(rrrm!!*rIm&!!Ircr!!#2`!"!(r!r!
+!![F!#`Ni!!am!!!pcrJ!#`P%!J48J!!5NDJ!#`Q#!!33!!!5S#!!#`Q$YR@4YpJ
+FS#!!#`Q#NT83QQ33S#!!#`Q#NSF3NR`3S#!!#`P%NS83NQ!3N5!!#`Nirhqjqh`
+jch!!"!!Bq!!%!!li!!$rk*X!!!%!!!!Kr!!!)2`!!!%1qMEj-2J8p`cf3IAUpK,
+fSIG)pjAh)2@Umcr`31dlkVRT'qKpk+rT@HS9kSRUMqSakCIT!HLbk0VTKHU,kk2
+XDqb3!1[pkZlTfZPNkJ6VbZjNm6(cMr8@pEVecrA-pKAfj[JXqD6l$r`Yr16p42e
+mrF$q-rlPrm3!R!&!!C3"T3'l!NB$X3BN#@N-j`rL%G)5MK*6%D33ma##%%m3,Jr
+[$i%1r`k9$R!1R`lr$dJ2&`iJ$%`*[JEJ"$S#4!&+!6m"k3,I!mi%E!5c",)%K34
+%!r`$T!0*![8#a`,,![)$'J-D!YJ#6!'C!0J!%[mhrLlmh!!!!"SC3@4[BQ@S)&"
+SEh4[FfK[F+JJ05i`,M)JT!!!%6J41!#3"5F!F!!4![m-!2rq!!!!5!!!!%J!N!F
+R!(!!N!@K!I)!&MK#58d!N!FR!("(FSP`D+pLDJ!"!!S!N!8R!(##!!!!$Y)!!!!
+"!*!2!3#3$N!!N""!!*!&*`"`!!!$!*!)9QT`C@F!N!N"!!&KF("X!*!'!`!!F!!
+R!%J!!!")!*!%$MJ!!3a3D'pdEb!Y)%T348F!N"3Brrrrf2rJ!""+4NP'!!%"!3"
+)!%J!!2rq!!a"F("XC8eKFQX+rpX!K!!$!T!&!`)#!J13"!3'"*!&"`8'"3B*#!N
+*#*!%#3S0#`N+$3S)#!`3$!d1$Jm2$`N,%"%3$K%0$Jm1!3-$!`3$"!F%"!F1#JJ
++$T!brm3"SJ!!!38"N!B!N!J"!J-%"3B(#!N+#`%!!`'3#3#3"J%#!`3&"JF)#3S
+,%!!#!3-$!J3$"38%"!!!!Ad"!J-!""%&%L%a33B68@%()R%8-S'4S3JM3V("&9,
+4m#3cBR+##3S@&aJC'L8Q*bJT+M3e0MFi16T$4%9'4dK*5P0899CA@&PDBf4PCQG
+SD@TcG(9fGhKjHS1%KBD(L)Q+NT18PCDAQ*QDSU1NTDDRU+QUXV1dYEDhZ,Qk`X2
+%aFE(b-R+dY28eGEAf0RDiH,Mj1AQjqMTk[(bmr6ep[IiqIS4!!)"!J3%!`3("33
+%!!%#G`!"!J-4"!8K-3B539%(BA%6)M+"#"4#ND'a`3NM-e,`&@*bd3S@*$6K*I%
+A'"ND*LFS+5Se0MFi16T$4%9'4dK*5P0899CA@&PDBf4PCQGSD@TcG(9fGhKjHS+
+$K)@'KiL*LT+6P*@@PjLCQU+MT+@QTkLTUV+cY,@fYlLjZX,$a-A'amM*bY,6e0A
+@epMCfZ,Mj1AQjqMTk[,cp2AfprMjq[r!!"%)!#F!F!-")3!#%3%$%3(rfJ!-!`%
+!!K%$%3!r!2e4BN$)'IEeVNYAq,r`Zm1kNqMDr`$%E`VTPp%GXYVGkaE3cSf!F'0
+Rh$JJmJG494K+EY&Ap$Qa@0`f"Kl6%e)`ApjTAp,N@PI'IiAq)YHY2#hK[iJH(GA
+eDqMQNJXV(8)VQCPL!-V&8*fK3bj,BkJG5+EHI'ri2DGFc@@SI&A`EDh0ZjMQKQe
+fd4ih("9P-Q92XHD94HaE964V[SFkcM,j8PA@)Kb0f6jNNhTXpR[dHqK,TRaLq&Z
+Z5A5D,m3r$Gq,")*,U5fe1#@1&C[0mRFkX9"Eb*L"R1%*aMQY%r%(`5'fRaIS@Fi
+rj#8("p2[GH+mf[QqAiDFUGE%3M++Zdj*@ARUHYK-2@ap+0I#8j9)5E5P&FbGYl0
+D1h@aTk4V@Pq)02LeE4Ef+mXTphP6`YZ4pV&@`Hq'8Mm+Zeh8kN+X)e)1mC+kINc
+18C3EM*@DdX&&@)+5J"D+!'Z50Z1l9m*rXfI$(`RmAr((L@IA0(56`jDfckR(Bf8
+mYP'XerGb5fa55"SQ!5+'GGTia)$JI,AIJkMT8kXS1cY[e@U@RhR`(&f#`qDjVPH
+"a8&1%T9C1,fI,#1rIG[jAk([hL2iAI#6i5I#hiJq*r#(K5bCciGe-A[fZmPe!A+
+*EbEV9hZAN!#XE2Y$4JJ-`"B%L[)rfB2J9i'mIq(YDe6aYT%prCD4G`k4T`5mZG2
+M6blD15iN#`54KLc6+#6RDBb"Y)B9jpG[%eHDVlcmq[U'+b$+CCMJX"#K$f%B9*F
+YY,h6[[hr!!9YMhb2i+r#(`jiIKA6r$U`k4TIfR9!UhdlLGh8-dddM5&jQ#TY9RB
+l&q9F,aA'I"c`&SAM@be'r`$&'R0F432"E`+Pa0!BjGKDCGdE+@iD-BBR'$kR2jl
+Qq3jGLXq`XDe#-[DUT+9qUM#+LZQQlDk[@jqaj*LUf8C*9Ti1AXkG,NK#-G%R+8T
+2lpG6Z0@mFbD4UpYm-rKaSeTFkME`KA-l'1bdU&%8Mc3RcXGT6j4MlbJX#3+Ci$q
+)rL[9['qUH#2&0PTIRf%-XKNX0i#XMa$(c-fj@%bi2bN&6NFN*each&4ap'KJkF2
+UIYIUppHCc8(*Z+fj9bYGGRd-SjC5RK+PD[8PpB82DfXZAPNeDm[jRGGYee)E[iQ
+q,I%rL#pd$iBkCT0a(TJaFkKU,5'*h13UaUK("BI+5IRfZ3&ADl9[#Ia4mGkridX
+[#elSQNfL*j`e&&%Vb4H8#(fX(f!qB8A(c,JRjbH+i9aEQPE&8CdD%2UPDUUF*Y[
+QGTmXhDqUXREDeQhG,AVMNH$TdDNF4@NX4#QTZ+@QXHC+r4kV6c9Yp,Xha'm@H*r
+%fSq'[!F1K`ak2Z&eHDU*C&QCA+-XD4--,['hIP[ZYP4mZlHm1q*r%GViB[GFq*0
+TBD+qRcc#4S(,4rCdk5Bba","JS"*BE6J&YUqcPZGBl(iL@*jBI8Pl9Ae8dkEYGU
+pQRVXY2cmr&i,#BDK'Kc5qY2NGY(6NTUqMXQQ[0ZrjFEHI&6iJAhKqjmFq(p%dLa
+m246L#)kTjdej1$+)r-%8E+U+(ECY,CbM(*'-qJr$r`!8cH-r#HRq)VLfMYTEU0Y
+m8C,+V,)mC+Nml58*!2)"aceV,)q)XCQ@2qViQP'%+P,fe2PEEj(**FcfZlhXNVA
+4TQH@BE#B96ScP+F+MTe,T*FbMGmU@YNdp@qQb-2ikH+'m(r#6aCVbb&*BY,RJY5
+!$rT-`%&Z$RYjXUFIPRSIQEi'rX[q%rL[i2Qe[a9U'Y@XGKUXPRTX0PF@k3cfm-%
+#Y)fq'4LhR'C-JJ!+!-$VqLi6%[#iHT+-)bED68PG0@Ikf2aRLE+F2a*a"KXXa-T
++%D-jYaD69j+-GAHqcdYf25rMhT(KRi4IXmfI`[m!#'R[TQRAfS@HN@545PcJc0H
+ACNGXPM)N&`ABj,0)5HZDj,i9IXNH!2LMm2m!32L"imEA([0GXaG[C3h5@p[pQH4
+fL9F4HDSH"Nh-*-jBP5$JeiXi1FfQZKdic*X0QqGa`Y9[f0#M'd8lDmfPheA+Y9m
+MhAiM,BH&[KIHk$SeVDkIE4fF'N@&[EU))SB@f`V('J'&9)Yf&(m+i&9[K9M32KN
+fYYE-(RDme&i@ADf&h+LRrJ%+Mdp11Dq@Ve&8iP[TDRKT2A[+DAh@4qXd)FQ4@MT
+ceP(j4MTqC`2`XY[''XA'VDPiGeR5l68*iSQZlZqYQRN9TfHCQK!EEPR$%jb-J!$
+J9f0ci6Y[KEi(m4k[EkT,UALDqY`NqT5RbjGddJ4@8!Na)(FZ6R13!%Ni93[c'4B
+5V2+SChMULF+FDe5QN[HZqCbP0rER[Gl0*1bXfrEcE&8SjK8`0'(aZR'I@m8SFUA
+hApABarKlUe[i,q'S[Y2YS*Y6eR8fX0*Y39c2F*YJK6!rJ34b5--MD!hHS2J6(!0
+IeA@TlPCIXQR*ZZj(!mccj@H54QkB2fEGNFI6&BCI9IeV*-*,5-)ZFYIY6JjmVlF
+XH@6lA5,aY08U@CeilbPbTH5QiTr19emVP2ahi0eV`&iJIa9iGe#9,+iZTCSVU"X
+c@%Xc"c&)#@%N6[NJX#R4@8%)c@rL9ia[pDm&H%,Li3@kD[#qUAbTN!#-B9Mfi"q
+mKNP%Lj!!IZ)H`aciTiV)BCRPFkMG18BcJlAXTbK(6e6Dq4VKrBCV9`'1TUde,PR
+k`6Ii@[II9'YTh`jm8q*p"dA4YGm6@0YiHY)BC9XG0YA@HiAD5V6A$ZF1Gf@)8VP
+Q)'lD`pBdHeXV26,@fdf10,5+#11"Bj!!b+)e8"!V(U0S'$hkpkr3-JbUVJA,%BZ
+ST9TaM&*A8Bdi*mL5IVGlqmhE3qCc6-+1)D`q&Le6Jj0YY0ZFQV[4D,4+hPHphTa
+IaTq&phm@I##H&l2a0rBE,IfPkdcfIff1832[%8NAQ4NJYYB%1T!!b+H3!!JhIK"
+m1eq&IJ(6I!ieH696TcA$'mH"EFc00-mc(be*#J'3!+JC*`Sb5FQ[UrD0drCp,h2
+Mij2'1F20[D1lTHbjED@jh1kIHllE@19q1r`-e(id*S+@2MK[$ad9lQ3SfRLr5GT
+N40iAcBbNL"A#YNM%dJ+R)ak*i-m0`H$I#HMH%,5GjlE3p2YY0JPN9&D51'*)eCP
+3"35&cK3"c`"@6LVZ4H'bb1(apE(FlEU++YdMbVpAUCAa!m$0iidfcX)pCE6aChL
+hHlb&R%RlYipT"+iiFN%(Vf25Y,32#p[SRKfam-[+ejE@9U,3Y1&*Q3,Y1p9!AN%
+mBaALdFRT3c+VQ8T0bU3819fj8SlqYhr@Tp(2(9*i1'"D5M'A-RemPqGqkDA6AJV
+,i+k[iIe+5km)I%DqdLfQAb6'E+1jF4!j90aEDfhjJV-KBEZZ5aEEYrK0SUD(VHP
+AHVDRIDKVk)YjUel+*EPRM*D!U-"950f*9!0Sb33FQ[!`("b`LH(ViU96$U-P#&N
+P(RM+-QjGAD65fY[e24aA%$a8ScM3M#Tl[0,@lj@QYhCAXVfri"&i'q%YKi3["VH
+SkJG@e49H1hQD)`3fU2J2j-4GbXMUUUdKBX3S(!*$C@PI!Z(60&eh`qI&Pl*EkcE
+3fJ)YiNf44-@6c1[R%jC''89NCJ9k%AKq#F23SiHQkdZDNUR0,5mR9MbYlDFUdM[
+C*,@a9ELDV@UeDMTUe4`XYIGj*+5qr9[DlEHJq$i2kcU0MDD"iTq)YrUZK@M)dGK
+$BafHi*MDV6KQN!#S'3-%%Ci)`#0laVm0Y'mADIC@EZG2Rdi&E'Dh6F)%+UV4l2Z
+Q)K%"6MlS)))TdZ&)I8DZ&aH)R8R8M'+U1+jSU0Z9+0ZM9lp@fqj%q)*HhTiM$dP
+6M#8TFZV8T5q*[@qUY'h4)`l,i4Dj,TDq(YIq*1VAQKi-BdqcM@a8`i)mTT-[+Bm
+%MB(!aJ$!!&HQf9REDID3!0MC3V$EfmDa44)-+L+!&8$d!!(i9kf5C28ba0iM%5V
+9'NZD@L59l*,jYYpI)j-`c'RMfP4S4T36EXQffj@Zfhk+bXNYHj24A[RQK43!88!
+&&!"43!88!&&!(rrC!*J!#J#3"5`!43#3"5`!43#3"5F!F!!!#2hr!J!!r[i!#`H
+!Irrr!!Ir`2m!#`H!Irrr!"rrm2m!#`H!Irrr!(rrr2m!#`H!Irrr!2rrr[m!#J5
+!Im$r!Ilrr`!,#BKr!$m$r`(rJ!!,#BKq!"m$r!"rJ!!,#BKm!!m(q!!r`!!,#B"
+i(!F(m!!I`!!,#B"i(!F2i!!2i!!,#B"`(!-2`!!(i!!,#B"`(!-I`!!(m!!,#B"
+`(!-IJ!!$m!!,#B"`(!-IJ!!$m!!,#B"`(!-IJ$rmm!!,#B"`(!-IJ#Imm!!,#B"
+`#!-IJ$rmm!!,#B"`!!-IJ!!$m!!,#B"`!!-IJ!!$m!!,#BI`(!-I`!!(m!!,#B(
+`(!-2`!!(i!!,#B(`(!F2i!!2i!!,#B(`!!F(m!!I`!!,#B(`!!m(q!!r`!!,#B(
+J!"m$r!"rJ!!,#Bq!!(m$r`(r`!!,!)(qr`!"r[m"i!!,!)(qr`!!r[m"m!!,!)(
+qr`8!Irrrm!!,!)(qr`8!(rrrm!!*rIm&!!Ircr!!#2`!"!(r!r!!![F!#`Ni!!a
+m!!!pcrJ!#`P%!J48J!!5NDJ!#`Q#!!33!!!5S#!!#`Q$YR@4YpJFS#!!#`Q#NT8
+3QQ33S#!!#`Q#NSF3NR`3S#!!#`P%NS83NQ!3N5!!#`Nirhqjqh`jch!!"!!Bq!!
+%!!li!!$r!!!!$V3K42X!!&"*3e4pl!#3"!3!N2m!N%,rN#%!N"lrr`#3"I8!!!$
+e!!!!p3#3%2rr!!"c`m*kG-5IG4!e%!%!N!Re!*!'rrm!!*j2!!#H+`!!pK%!p5d
+3#!!e,4%!0!N)!$33,3$rr`!!`X+H!-1IR`!*%!!3"c3"03!(#IBA!!!e!3m)!2r
+r!!$$!!$ea!!!!"!X!$8"!283!$8*!!Je#"!(p3!!rrm!G-)!!(6$!!!!1r8!&`F
+),"%X#6-*pK$e0IB*p3$rr`$epJ!!p[B!!!$e!!$e,!%!pJ!!p3%X!!!"#28!!2r
+r!*!Hrrm!N"lrN#%!N2m!N%-"!*!Trj!%J!!!!B!!!!'+5!!"J3J4%C5#J!Q4!!L
+"J")L)B!!!!'!!!!"J!!!!Iq3"!#382q3-!#3+hJ!!`!!!%J!5!#3"!,B!LMriIr
+L![N#4J0("5J$r!!#!!!!5!")!*!%!YJ#+!!"!!!!C!!!!!%!!`-$!!!!!5F2!!%
+!!3#3$'!)!"N"N!!!N#-3!5`!!!!"!!%",!!!!!%!!3!!!!3!!!"i!!!!#!#3#`%
+!N!3+!!%!N!F#!!!!5!![CQB!!3"XCQB!"J#3"3%!,fCQ!!%!SCQD!!B!N!8"!$)
+!!!!"!&S!!!!'!*!&!3!e!!!!!3!Y!!!!"J#3"3%!!!"`!!$rN"B$k!#3"2q3&J2
+S!*!%rj!@!qJ!N!6rN"B$k!#3"4!!!!!"!!!#3!!!!N!!N!F%!!!!!J!!#2%!!!!
+"!!!!F!!!!#F!!!&3!!!c-!!!#08!'!!"rpMri!!35NC*4J!"!J%!5!")!!$rrJ!
+Q4QPXC5"hFQPdG'9Z)'*j)%&NEf*P)&"SEh4[FfK[F+JJ05ibrqi!$N&NEf*P!'5
+!!!!!!IrE!)3!$!J)#!N)$!N*$"%,#JX4&3m-$!m9'"-6&4-6'"%-N!B4$*!F!3d
+,#`d1$4!1$K!8$Ji1&"31N!38%3b3"4%4$*!'%3b3(2r!!"%)!#F!F!-")J!#%3%
+$%3(rh3!%!!Ira!%r!!!""3'3"J#3"`-!!3)%"3B(#!N+#`%!!38"N!B!N!F"!!)
+$"!8'"`J*#JX3!!%%!3-#"!)&"`B)"3---`%!!K%$"#%5-39"8@%6)R'"-JB8ND'
+a3L-N&9,"BM-dFS,43`FPNP2`iI&MFc8@SV+$*N569'4&`U0d0KI59H*PmV1%`p0
+eir0'*j5NKE59a06Np+@eaGAPp9CQGSD@TVE'eZEf0dGAChH(PkHhapIRpa%!!J)
+"!J3%!`3&"JF("J8e!3!#%3-K-4)%39&KF5)6"6+"N45KX8)M`9,4m$-NBZ&bJT*
+$8a9MFc6a*3B@SV+$"bBe`Y*%Ne5M&f4&96CdCH,bXi6$dhAMmdD8T)@dPF68j25
+PYFA9jI9@CRD'PUDfaYEQpLFh4eGRGiHATlI(rpS!$!-"!!)4!a%!2`$e3URGeVT
+12DDEmh(UYESkYpV!i(cCZh+iHbmqqUh5XAUh8-Sj&8iGE6FfUYcU`(A[0P'ep*T
+GqMVVZpLG')0Np"EAjM21%m@1%4+@8b(U*!M`$qUpR6ecT14N-aFE,T[[Y$LbZYi
+FiKSh2qK1hEr+5IehSV(&Mmr'DjTKc6F`%(`GlPRjA5ZMG+k4e,*`k'cpQZ&QplV
+G`Damd1IHkhE@jrdkeMI92S1"e$&[YcDh@98[E65!pp3'eJIFrE5qVkAU06CEe(m
+8(,Q%S3U"R)5ND-Z#-B[99GDk6FA#R-SX&BDAZEBdY'rIkF["fqldE%ApTB(r!(*
+Tr`#h'rhUMq`qLiq-hC6'24[Z!$h%1*'jePMbjclIDhf1XIl'+Kd,Tf0QeffC9Hj
+V5eV)FjX1MGD*V,0h,&@bCX`baaaM$eh`m4PqKqmk'(&!i6Nb'3-+iq!$KZ4p-BF
+6d9&p14@,DA#bYdlAYe"Jl6rdJL,*ZkJDEfp0kG8eec'klY+UQJIRl2HlfrQTZRG
+8c,ZSAB18b[G8eaQZH@PSr1,YcAHTr)rmJmFa(LM%kNRJ-SMpAlYFA"a,ICP`Q3d
+!((8L2FpVp'I!kk5al1VCQ6NfBr5kkhLRkGeT1dNc!BeTErBrdRp6p)SBA9qTC'H
+c%XTVB"ZpB$F50QMi1lCr1E@rRrm!'*[hV&B(U2&,JM,K2"+@hTNRlYNSNd1'2(+
+*N!$MM(qilD5b(G8cFR,YaX!8Y&%qTCGZ)F3GRXE84lGrq%9M&bmTZ)qrU6@BjUF
+lF@Q4XEqIblk6[S*mFd*(5k(&kkp(SqEe,CBT4!*VL0HLr`"CkrPp,I5@%rV(8Ri
+cml(UUVa!lDheYcV(5ldpqaKBaVGafEGkdqQjEXc$Vb(0$(2"PSe%JZCrdYU8-m*
+biBhI$aLaA&$pk+CiC`Ma5VjZ!dE-Cr0`bIr3p$qX18F6SfCG*$K8jV#2hl2d02m
+!i,BZ9qVhe9`ZUi6VmPpV"AF@8YB@"VQ-EAlM[VYGr1qSaG9ehT6qUiBaQArCb,'
+@&aCkM6X1lBpQk[m!1phde2SR64d[Te@$kKZp)Zr5&SEZhZ0[d"ZrIfTiP85!GfT
+PjIhHCM,*%5a3aN#rmj+ArHZ2pBkF6T2eDCdc%BDUE,+k+`$2,MPC"HjhqNE9G[m
+!q-92Sre1kGe2Tf2RjaZp6)E[06A"V0KFieYrQr9E[Tfl[d[p4E2eKk"EeNBiCPI
+CIXqmN!"CkJFAKVGfhe+YYPHhf2m!q%HY,"a@iH(4L-*Fc(VC8eaJ%KM@eJRElIc
+9'BkV[B%XaP1)-)a%-Im!dTHPTp8p2&k4C45eYE!aY06'qeSDIdBBa[jZbT3k0'2
+dRepZV[8Y,H$T,@Mr!$DPCkPdr`#h8XV&[TE(Km`(6SjNFYrH4FE%E4Leia2U-VE
+XPdHi4(Z!pUJpZCjJj#+L-I"!r`"D4p@MI%i$PaM(c(*abrZ4f$JG(CQf[[YalDf
+A1$I8XXDA%&jGD6@d(ElRI59jf%cTI6mUeYKYc,@`qik1Pjf"cIm!4YhZhT9p#Za
+lR2a-ep$($D@l!il4p&ZkGVY[jMR-hU`hSp!alkRf@@@j)(UC&Kh2PTh9%IQl+Rr
+3V9I&Jb4K`bKqX!R@5FZ+!P2Lp@1,2Qc`PNiSc(Yb-,K'05p($kFKrGD(6,QiA53
+qYVAAC&TVafI[2%990rU-f2YHSr9d0qdhAZ)1bX6B6c[G[HphrE1jAqRG'U`hqYB
+relK)BmMDeJ1M[5Vh2f[IqIBJdr9pY9'4MrD(PQ3eV"l3)DdlQlqI9rFIr0lkdSB
+-`1!Q1Q)5p&pDqDAqdNQHI#II!PVP-IAA6Lp8Im#$5kMJj'"P(,aRN9[HA#aTpeE
+RRGkErTEkl(IpE41VjYPh6m*cKY&i0YS'J*B'acp*QprUX9T[4,lDfBq9Q[[a@%%
+90B'6YqLeeXZXfUcRp+SbkQ-*p*eAmdj[jSJ0,0[dI6pVIBJHAbF1AJ"J-J(kU8V
+pIkI$*3jM&aBM-LCab2kf-6(dIj2Li[QNdUqQCH9M88hhXCL-De`UUDGlK%YGCDj
+hdrGleXd-VC8aYB!VDd"J"NE3)E"rUV,Vk,N'NBpqGCCMFHN`#XEIp'jr[Yp2q4[
+@Y@aPE'eX'eM!'YD1!"S!V@#"MG`-$3eP,MQDkDIS0I22LS#BQ!C(KK(fi4i[lh$
+a6Ir4p95AbUNNTqUNPmUT*+IUT*I+U55RkU5AbUNNTqUNPmUT*+IUT*I+U55RkU5
+AbUNNTrrC!!!"!!!!)I`!!#$m!!!"$J9Ee0`KE!!!!"`"$J!&8e45)!!!!$*3580
+8!!!!2R"ZEh3!!!"+D@0X1!!!!&C*3diM!!!!BMK#58d!#J"Z[r6rr`#3"!9`"#4
+pl2rr!!!!(J#3"[rr!!!4@J9`"$brZIrr!!!4E!9`"%brZIrr!!!9F!9`"'!$kIr
+r!!!@G!9`"&!$lIrr!!!@m!9[Fm3%$Irr!!!A"!9[G"J$mrrr!!!A$!9[F1J%#[r
+r!!!A'!9`"&3R%2rr!!!A(39Zi3`$pIrr!!!A+`9`!r`$q2rr!!!AG`9`!jJ%#2r
+r!!!Ak`9[FF`%&2rr!!!Ar`9`!j`%$2rr!!!B"`9`"%!KMJ:
diff --git a/externals/grill/flext/config-pd-cygwin.txt b/externals/grill/flext/config-pd-cygwin.txt
index ede2a3d9..491c7ffc 100644
--- a/externals/grill/flext/config-pd-cygwin.txt
+++ b/externals/grill/flext/config-pd-cygwin.txt
@@ -20,3 +20,6 @@ TARGDIR=./pd-cygwin
# (leave blank to omit installation)
INSTDIR=${PDPATH}/flext
+# additional compiler flags
+# (check if they fit for your system!)
+# UFLAGS=-mcpu=pentium3 -msse \ No newline at end of file
diff --git a/externals/grill/flext/config-pd-darwin.txt b/externals/grill/flext/config-pd-darwin.txt
index 71d746a1..a07cf62f 100644
--- a/externals/grill/flext/config-pd-darwin.txt
+++ b/externals/grill/flext/config-pd-darwin.txt
@@ -20,4 +20,6 @@ TARGDIR=./pd-darwin
# (leave blank to omit installation)
INSTDIR=/usr/local/pd/flext
-
+# additional compiler flags
+# (check if they fit for your system!)
+# UFLAGS=-maltivec \ No newline at end of file
diff --git a/externals/grill/flext/config-pd-linux.txt b/externals/grill/flext/config-pd-linux.txt
index d5060e1b..ad27fc35 100644
--- a/externals/grill/flext/config-pd-linux.txt
+++ b/externals/grill/flext/config-pd-linux.txt
@@ -26,5 +26,6 @@ TARGDIR=./pd-linux
INSTDIR=/usr/local/lib/pd/flext
# additional compiler flags
+# (check if they fit for your system!)
UFLAGS= -mcpu=pentiumpro # gcc 2.95
# UFLAGS= -mcpu=pentium3 -msse # gcc 3.2
diff --git a/externals/grill/flext/flext.cw b/externals/grill/flext/flext.cw
index 50331cb0..982353fe 100644
--- a/externals/grill/flext/flext.cw
+++ b/externals/grill/flext/flext.cw
Binary files differ
diff --git a/externals/grill/flext/flext.pbproj/project.pbxproj b/externals/grill/flext/flext.pbproj/project.pbxproj
index 6665b953..2f232c50 100755
--- a/externals/grill/flext/flext.pbproj/project.pbxproj
+++ b/externals/grill/flext/flext.pbproj/project.pbxproj
@@ -112,6 +112,14 @@
F55CED950383E50201A80AC9,
F55CED960383E50201A80AC9,
F55CED970383E50201A80AC9,
+ F504A66B03CE39F501A80AC9,
+ F504A66C03CE39F501A80AC9,
+ F504A66D03CE39F501A80AC9,
+ F504A66E03CE39F501A80AC9,
+ F504A66F03CE39F501A80AC9,
+ F504A67103CE39F501A80AC9,
+ F504A67203CE39F501A80AC9,
+ F504A67303CE39F501A80AC9,
);
isa = PBXGroup;
name = Source;
@@ -128,6 +136,354 @@
//F52
//F53
//F54
+ F504A66B03CE39F501A80AC9 = {
+ isa = PBXFileReference;
+ name = flatom_app.cpp;
+ path = source/flatom_app.cpp;
+ refType = 4;
+ };
+ F504A66C03CE39F501A80AC9 = {
+ isa = PBXFileReference;
+ name = flatom_part.cpp;
+ path = source/flatom_part.cpp;
+ refType = 4;
+ };
+ F504A66D03CE39F501A80AC9 = {
+ isa = PBXFileReference;
+ name = flitem.cpp;
+ path = source/flitem.cpp;
+ refType = 4;
+ };
+ F504A66E03CE39F501A80AC9 = {
+ isa = PBXFileReference;
+ name = flmeth.cpp;
+ path = source/flmeth.cpp;
+ refType = 4;
+ };
+ F504A66F03CE39F501A80AC9 = {
+ isa = PBXFileReference;
+ name = flmsg.cpp;
+ path = source/flmsg.cpp;
+ refType = 4;
+ };
+ F504A67003CE39F501A80AC9 = {
+ isa = PBXFileReference;
+ name = flprefix.h;
+ path = source/flprefix.h;
+ refType = 4;
+ };
+ F504A67103CE39F501A80AC9 = {
+ isa = PBXFileReference;
+ name = flproxy.cpp;
+ path = source/flproxy.cpp;
+ refType = 4;
+ };
+ F504A67203CE39F501A80AC9 = {
+ isa = PBXFileReference;
+ name = flqueue.cpp;
+ path = source/flqueue.cpp;
+ refType = 4;
+ };
+ F504A67303CE39F501A80AC9 = {
+ isa = PBXFileReference;
+ name = flstk.cpp;
+ path = source/flstk.cpp;
+ refType = 4;
+ };
+ F504A67403CE39F501A80AC9 = {
+ isa = PBXFileReference;
+ name = flstk.h;
+ path = source/flstk.h;
+ refType = 4;
+ };
+ F504A67503CE3BDE01A80AC9 = {
+ fileRef = F504A66B03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A67603CE3BDF01A80AC9 = {
+ fileRef = F504A66C03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A67703CE3BDF01A80AC9 = {
+ fileRef = F504A66D03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A67803CE3BE101A80AC9 = {
+ fileRef = F504A66E03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A67903CE3BE101A80AC9 = {
+ fileRef = F504A66F03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A67A03CE3BE201A80AC9 = {
+ fileRef = F504A67103CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A67B03CE3BE301A80AC9 = {
+ fileRef = F504A67203CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A67C03CE3BE801A80AC9 = {
+ fileRef = F504A66B03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A67D03CE3BE901A80AC9 = {
+ fileRef = F504A66C03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A67E03CE3BE901A80AC9 = {
+ fileRef = F504A66D03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A67F03CE3BEA01A80AC9 = {
+ fileRef = F504A66E03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68003CE3BEA01A80AC9 = {
+ fileRef = F504A66F03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68103CE3BEB01A80AC9 = {
+ fileRef = F504A67103CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68203CE3BEB01A80AC9 = {
+ fileRef = F504A67203CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68303CE3BF001A80AC9 = {
+ fileRef = F504A66B03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68403CE3BF001A80AC9 = {
+ fileRef = F504A66C03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68503CE3BF101A80AC9 = {
+ fileRef = F504A66D03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68603CE3BF101A80AC9 = {
+ fileRef = F504A66E03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68703CE3BF201A80AC9 = {
+ fileRef = F504A66F03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68803CE3BF201A80AC9 = {
+ fileRef = F504A67103CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68903CE3BF301A80AC9 = {
+ fileRef = F504A67203CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68A03CE3BF801A80AC9 = {
+ fileRef = F504A67003CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68B03CE3BFF01A80AC9 = {
+ fileRef = F504A67003CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68C03CE3C0601A80AC9 = {
+ fileRef = F504A67003CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68D03CE3C1101A80AC9 = {
+ fileRef = F504A67003CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68E03CE3C1301A80AC9 = {
+ fileRef = F504A66B03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A68F03CE3C1301A80AC9 = {
+ fileRef = F504A66C03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69003CE3C1401A80AC9 = {
+ fileRef = F504A66D03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69103CE3C1501A80AC9 = {
+ fileRef = F504A66E03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69203CE3C1501A80AC9 = {
+ fileRef = F504A66F03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69303CE3C1601A80AC9 = {
+ fileRef = F504A67103CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69403CE3C1701A80AC9 = {
+ fileRef = F504A67203CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69503CE3C1A01A80AC9 = {
+ fileRef = F504A67003CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69603CE3C1C01A80AC9 = {
+ fileRef = F504A66B03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69703CE3C1D01A80AC9 = {
+ fileRef = F504A66C03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69803CE3C1D01A80AC9 = {
+ fileRef = F504A66D03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69903CE3C1E01A80AC9 = {
+ fileRef = F504A66E03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69A03CE3C1E01A80AC9 = {
+ fileRef = F504A66F03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69B03CE3C1F01A80AC9 = {
+ fileRef = F504A67103CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69C03CE3C2001A80AC9 = {
+ fileRef = F504A67203CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69D03CE3C2301A80AC9 = {
+ fileRef = F504A67003CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69E03CE3C2501A80AC9 = {
+ fileRef = F504A66B03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A69F03CE3C2501A80AC9 = {
+ fileRef = F504A66C03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A6A003CE3C2701A80AC9 = {
+ fileRef = F504A66D03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A6A103CE3C2701A80AC9 = {
+ fileRef = F504A66E03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A6A203CE3C2801A80AC9 = {
+ fileRef = F504A66F03CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A6A303CE3C2901A80AC9 = {
+ fileRef = F504A67103CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F504A6A403CE3C2901A80AC9 = {
+ fileRef = F504A67203CE39F501A80AC9;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
F5128F2503864E5501A80AC9 = {
buildRules = (
);
@@ -298,6 +654,7 @@
};
F55CEDB50383E50D01A80AC9 = {
children = (
+ F504A67003CE39F501A80AC9,
F55CED7F0383E50201A80AC9,
F55CED810383E50201A80AC9,
F55CED860383E50201A80AC9,
@@ -309,6 +666,7 @@
F55CED910383E50201A80AC9,
F55CED920383E50201A80AC9,
F55CED940383E50201A80AC9,
+ F504A67403CE39F501A80AC9,
);
isa = PBXGroup;
name = Headers;
@@ -328,6 +686,7 @@
F55CEDD90383E79901A80AC9,
F55CEDDB0383E79B01A80AC9,
F55CEDDC0383E79B01A80AC9,
+ F504A68B03CE3BFF01A80AC9,
);
isa = PBXHeadersBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -348,6 +707,13 @@
F55CEDCF0383E79001A80AC9,
F55CEDD00383E79101A80AC9,
F55CEDD10383E79101A80AC9,
+ F504A67503CE3BDE01A80AC9,
+ F504A67603CE3BDF01A80AC9,
+ F504A67703CE3BDF01A80AC9,
+ F504A67803CE3BE101A80AC9,
+ F504A67903CE3BE101A80AC9,
+ F504A67A03CE3BE201A80AC9,
+ F504A67B03CE3BE301A80AC9,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -590,6 +956,7 @@
F55CEDFF0383F55201A80AC9,
F55CEE000383F55201A80AC9,
F55CEE010383F55201A80AC9,
+ F504A68C03CE3C0601A80AC9,
);
isa = PBXHeadersBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -670,6 +1037,13 @@
F55CEE0D0383F55201A80AC9,
F55CEE0E0383F55201A80AC9,
F55CEE0F0383F55201A80AC9,
+ F504A67C03CE3BE801A80AC9,
+ F504A67D03CE3BE901A80AC9,
+ F504A67E03CE3BE901A80AC9,
+ F504A67F03CE3BEA01A80AC9,
+ F504A68003CE3BEA01A80AC9,
+ F504A68103CE3BEB01A80AC9,
+ F504A68203CE3BEB01A80AC9,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -817,6 +1191,7 @@
F55CEE1C0383F57A01A80AC9,
F55CEE1D0383F57A01A80AC9,
F55CEE1E0383F57A01A80AC9,
+ F504A68A03CE3BF801A80AC9,
);
isa = PBXHeadersBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -897,6 +1272,13 @@
F55CEE2A0383F57A01A80AC9,
F55CEE2B0383F57A01A80AC9,
F55CEE2C0383F57A01A80AC9,
+ F504A68303CE3BF001A80AC9,
+ F504A68403CE3BF001A80AC9,
+ F504A68503CE3BF101A80AC9,
+ F504A68603CE3BF101A80AC9,
+ F504A68703CE3BF201A80AC9,
+ F504A68803CE3BF201A80AC9,
+ F504A68903CE3BF301A80AC9,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -1044,6 +1426,7 @@
F55CEE390383F59B01A80AC9,
F55CEE3A0383F59B01A80AC9,
F55CEE3B0383F59B01A80AC9,
+ F504A68D03CE3C1101A80AC9,
);
isa = PBXHeadersBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -1124,6 +1507,13 @@
F55CEE470383F59B01A80AC9,
F55CEE480383F59B01A80AC9,
F55CEE490383F59B01A80AC9,
+ F504A68E03CE3C1301A80AC9,
+ F504A68F03CE3C1301A80AC9,
+ F504A69003CE3C1401A80AC9,
+ F504A69103CE3C1501A80AC9,
+ F504A69203CE3C1501A80AC9,
+ F504A69303CE3C1601A80AC9,
+ F504A69403CE3C1701A80AC9,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -1308,6 +1698,7 @@
F59A5F9A0386DF3201A80AC9,
F59A5F9B0386DF3201A80AC9,
F59A5F9C0386DF3201A80AC9,
+ F504A69D03CE3C2301A80AC9,
);
isa = PBXHeadersBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -1388,6 +1779,13 @@
F59A5FA80386DF3201A80AC9,
F59A5FA90386DF3201A80AC9,
F59A5FAA0386DF3201A80AC9,
+ F504A69E03CE3C2501A80AC9,
+ F504A69F03CE3C2501A80AC9,
+ F504A6A003CE3C2701A80AC9,
+ F504A6A103CE3C2701A80AC9,
+ F504A6A203CE3C2801A80AC9,
+ F504A6A303CE3C2901A80AC9,
+ F504A6A403CE3C2901A80AC9,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -1534,6 +1932,7 @@
F5AAF61F038683E801A80AC9,
F5AAF620038683E801A80AC9,
F5AAF621038683E801A80AC9,
+ F504A69503CE3C1A01A80AC9,
);
isa = PBXHeadersBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -1614,6 +2013,13 @@
F5AAF62D038683E801A80AC9,
F5AAF62E038683E801A80AC9,
F5AAF62F038683E801A80AC9,
+ F504A69603CE3C1C01A80AC9,
+ F504A69703CE3C1D01A80AC9,
+ F504A69803CE3C1D01A80AC9,
+ F504A69903CE3C1E01A80AC9,
+ F504A69A03CE3C1E01A80AC9,
+ F504A69B03CE3C1F01A80AC9,
+ F504A69C03CE3C2001A80AC9,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
diff --git a/externals/grill/flext/makefile.pd-cygwin b/externals/grill/flext/makefile.pd-cygwin
index 42763c20..60cfa4f5 100644
--- a/externals/grill/flext/makefile.pd-cygwin
+++ b/externals/grill/flext/makefile.pd-cygwin
@@ -18,9 +18,9 @@ include $(CONFIG)
# compiler+linker stuff
INCLUDES=$(PDPATH)/src
-FLAGS=-DFLEXT_SYS=2
-CFLAGS=-O6 -fno-exceptions
-CFLAGS+=-mcpu=pentium3 -msse # cygwin gcc 3.2
+
+FLAGS=-DFLEXT_SYS=2 -fno-exceptions $(UFLAGS)
+CFLAGS=-O6
CFLAGS_D=-g
CFLAGS_T=-DFLEXT_THREADS
LIBS=
@@ -32,6 +32,7 @@ INSTDIR=$(PDPATH)/flext
# ----------------------------------------------
NAME=flext
+SRCDIR=source
# all the source files from the package
include make-files.txt
@@ -62,17 +63,17 @@ $(TARGDIR):
$(SRCS): $(HDRS) $(IHDRS) $(MAKEFILE) $(CONFIG)
touch $@
-$(TARGDIR)/%.o : source/%.cpp
- $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@
+$(TARGDIR)/%.o : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@
-$(TARGDIR)/%.do : source/%.cpp
- $(CXX) -c $(CFLAGS_D) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@
+$(TARGDIR)/%.do : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS_D) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@
-$(TARGDIR)/%.to : source/%.cpp
- $(CXX) -c $(CFLAGS) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@
+$(TARGDIR)/%.to : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@
-$(TARGDIR)/%.tdo : source/%.cpp
- $(CXX) -c $(CFLAGS_D) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@
+$(TARGDIR)/%.tdo : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS_D) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@
$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS))
ar rc $@ $^
@@ -101,7 +102,7 @@ $(INSTDIR):
install:: $(INSTDIR)
endif
-install:: $(TARGET) $(TARGET_D) $(patsubst %,source/%,$(HDRS)) # $(TARGET_T) $(TARGET_TD)
+install:: $(TARGET) $(TARGET_D) $(patsubst %,$(SRCDIR)/%,$(HDRS)) # $(TARGET_T) $(TARGET_TD)
cp $^ $(INSTDIR)
diff --git a/externals/grill/flext/makefile.pd-darwin b/externals/grill/flext/makefile.pd-darwin
index a776cdfe..62ac9864 100644
--- a/externals/grill/flext/makefile.pd-darwin
+++ b/externals/grill/flext/makefile.pd-darwin
@@ -10,13 +10,13 @@
CONFIG=config-pd-darwin.txt
-include $(CONFIG)
+include ${CONFIG}
# compiler+linker stuff
-INCLUDES=$(PDPATH) $(SNDOBJ)
-FLAGS=-DFLEXT_SYS=2 -Wno-unused -Wno-parentheses -Wno-switch -Wstrict-prototypes # -maltivec
-CFLAGS=-O6 -fno-exceptions
-CFLAGS_D=-g -Wshadow
+INCLUDES=${PDPATH}
+FLAGS=-DFLEXT_SYS=2 -Wno-unused -Wno-parentheses -Wshadow -Wno-switch -Wstrict-prototypes -fno-exceptions ${UFLAGS}
+CFLAGS=-O6
+CFLAGS_D=-g
CFLAGS_T=-DFLEXT_THREADS
LIBS=
@@ -26,16 +26,21 @@ LIBS=
# ----------------------------------------------
NAME=flext
+SRCDIR=source
# all the source files from the package
include make-files.txt
ifdef SNDOBJ
-_SRCS=$(SRCS) $(SRCS_SNDOBJ)
-_HDRS=$(HDRS) $(HDRS_SNDOBJ)
-else
-_SRCS=$(SRCS)
-_HDRS=$(HDRS)
+INCLUDES+=$(SNDOBJ)
+SRCS+=$(SRCS_SNDOBJ)
+HDRS+=$(HDRS_SNDOBJ)
+endif
+
+ifdef STK
+INCLUDES+=$(STK)
+SRCS+=$(SRCS_STK)
+HDRS+=$(HDRS_STK)
endif
MAKEFILE=makefile.pd-darwin
@@ -49,31 +54,31 @@ all: $(TARGDIR) $(TARGET) $(TARGET_D) $(TARGET_T) $(TARGET_TD)
$(TARGDIR):
mkdir $(TARGDIR)
-$(patsubst %,source/%,$(_SRCS)): $(patsubst %,source/%,$(HDRS)) $(patsubst %,source/%,$(IHDRS)) $(MAKEFILE) $(CONFIG)
+$(patsubst %,$(SRCDIR)/%,$(SRCS)): $(patsubst %,$(SRCDIR)/%,$(HDRS)) $(patsubst %,$(SRCDIR)/%,$(IHDRS)) $(MAKEFILE) $(CONFIG)
touch $@
-$(TARGDIR)/%.o : source/%.cpp
- $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@
+$(TARGDIR)/%.o : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@
-$(TARGDIR)/%.do : source/%.cpp
- $(CXX) -c $(CFLAGS_D) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@
+$(TARGDIR)/%.do : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS_D) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@
-$(TARGDIR)/%.to : source/%.cpp
- $(CXX) -c $(CFLAGS) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@
+$(TARGDIR)/%.to : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@
-$(TARGDIR)/%.tdo : source/%.cpp
- $(CXX) -c $(CFLAGS_D) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@
+$(TARGDIR)/%.tdo : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS_D) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@
-$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(_SRCS))
+$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS))
libtool -static -o $@ $^
-$(TARGET_D) : $(patsubst %.cpp,$(TARGDIR)/%.do,$(_SRCS))
+$(TARGET_D) : $(patsubst %.cpp,$(TARGDIR)/%.do,$(SRCS))
libtool -static -o $@ $^
-$(TARGET_T) : $(patsubst %.cpp,$(TARGDIR)/%.to,$(_SRCS))
+$(TARGET_T) : $(patsubst %.cpp,$(TARGDIR)/%.to,$(SRCS))
libtool -static -o $@ $^
-$(TARGET_TD) : $(patsubst %.cpp,$(TARGDIR)/%.tdo,$(_SRCS))
+$(TARGET_TD) : $(patsubst %.cpp,$(TARGDIR)/%.tdo,$(SRCS))
libtool -static -o $@ $^
.PHONY: clean install
@@ -88,7 +93,7 @@ $(INSTDIR):
install:: $(INSTDIR)
endif
-install:: $(TARGET) $(TARGET_D) $(TARGET_T) $(TARGET_TD) $(patsubst %,source/%,$(_HDRS))
+install:: $(TARGET) $(TARGET_D) $(TARGET_T) $(TARGET_TD) $(patsubst %,$(SRCDIR)/%,$(HDRS))
cp $^ $(INSTDIR)
ranlib $(INSTDIR)/*.a # have to rerun ranlib at install dir ?!
# chmod 755 $(patsubst %,$(INSTDIR)/%,$(notdir $^))
diff --git a/externals/grill/flext/makefile.pd-linux b/externals/grill/flext/makefile.pd-linux
index 6e1901bf..d1af3dc8 100644
--- a/externals/grill/flext/makefile.pd-linux
+++ b/externals/grill/flext/makefile.pd-linux
@@ -13,14 +13,16 @@ CONFIG=config-pd-linux.txt
include $(CONFIG)
# compiler+linker stuff
-INCLUDES=$(PDPATH) $(SNDOBJ) $(STK)
-FLAGS=-DFLEXT_SYS=2
+INCLUDES=$(PDPATH)
+
+# general compiler flags
+FLAGS=-DFLEXT_SYS=2 -fno-exceptions $(UFLAGS)
# compiler flags for optimized build
-CFLAGS=$(UFLAGS) -O6 -fno-exceptions
+CFLAGS= -O6
# compiler flags for debug build
-CFLAGS_D=$(UFLAGS) -g -fno-exceptions
+CFLAGS_D=-g
# additional flags for threading
CFLAGS_T=-DFLEXT_THREADS
@@ -33,16 +35,19 @@ LIBS=
# ----------------------------------------------
NAME=flext
+SRCDIR=source
# all the source files from the package
include make-files.txt
ifdef SNDOBJ
+INCLUDES+=$(SNDOBJ)
SRCS+=$(SRCS_SNDOBJ)
HDRS+=$(HDRS_SNDOBJ)
endif
ifdef STK
+INCLUDES+=$(STK)
SRCS+=$(SRCS_STK)
HDRS+=$(HDRS_STK)
endif
@@ -58,20 +63,20 @@ all: $(TARGDIR) $(TARGET) $(TARGET_D) $(TARGET_T) $(TARGET_TD)
$(TARGDIR):
mkdir $(TARGDIR)
-$(patsubst %,source/%,$(SRCS)): $(patsubst %,source/%,$(HDRS)) $(patsubst %,source/%,$(IHDRS)) $(MAKEFILE) $(CONFIG)
+$(patsubst %,$(SRCDIR)/%,$(SRCS)): $(patsubst %,$(SRCDIR)/%,$(HDRS)) $(patsubst %,$(SRCDIR)/%,$(IHDRS)) $(MAKEFILE) $(CONFIG)
touch $@
-$(TARGDIR)/%.o : source/%.cpp
- $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@
+$(TARGDIR)/%.o : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@
-$(TARGDIR)/%.do : source/%.cpp
- $(CXX) -c $(CFLAGS_D) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@
+$(TARGDIR)/%.do : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS_D) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@
-$(TARGDIR)/%.to : source/%.cpp
- $(CXX) -c $(CFLAGS) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@
+$(TARGDIR)/%.to : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@
-$(TARGDIR)/%.tdo : source/%.cpp
- $(CXX) -c $(CFLAGS_D) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@
+$(TARGDIR)/%.tdo : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS_D) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@
$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS))
ar rc $@ $^
@@ -101,7 +106,7 @@ $(INSTDIR):
install:: $(INSTDIR)
endif
-install:: $(TARGET) $(TARGET_D) $(TARGET_T) $(TARGET_TD) $(patsubst %,source/%,$(HDRS))
+install:: $(TARGET) $(TARGET_D) $(TARGET_T) $(TARGET_TD) $(patsubst %,$(SRCDIR)/%,$(HDRS))
cp $^ $(INSTDIR)
chmod 755 $(patsubst %,$(INSTDIR)/%,$(notdir $^))
chown root.users $(patsubst %,$(INSTDIR)/%,$(notdir $^))
diff --git a/externals/grill/flext/readme.txt b/externals/grill/flext/readme.txt
index e95e51f7..9bf15a4a 100644
--- a/externals/grill/flext/readme.txt
+++ b/externals/grill/flext/readme.txt
@@ -110,6 +110,8 @@ Version history:
- moved CLASS_MAINSIGNALIN to class scope (fixed "float method overwritten" warning)
- unix makefiles: CXX should be commented out if standard (to enable environmental settings)
- introduced default returns for the different flext::GetA* functions
+- pragma for Metrowerks compilers: enumsalwaysint on, bool on
+- MaxMSP: added assist string for attribute outlets
0.4.1:
- full port for Max@OSX
@@ -297,9 +299,10 @@ Restrictions in compatibility mode:
- Max allows only 9 float/int inlets
Porting to new compilers/platforms:
-- enums must be int-sized
+- enums must be int-sized!!!
- compiler must support bool type
- no need of C++ exceptions or RTTI (RTTI only for GUI objects)
+ BUT: some libraries could use RTTI and then need run-time type information from the library! (this is known for gcc compiles)
----------------------------------------------------------------------------
diff --git a/externals/grill/flext/source/flattr.cpp b/externals/grill/flext/source/flattr.cpp
index 014ffdcb..ffb6b6fd 100644
--- a/externals/grill/flext/source/flattr.cpp
+++ b/externals/grill/flext/source/flattr.cpp
@@ -22,8 +22,8 @@ WARRANTIES, see the file, "license.txt," in this distribution.
#endif
flext_base::attritem::attritem(const t_symbol *t,metharg tp,methfun f,int fl):
- item(t,0,NULL),argtp(tp),
- fun(f),flags(fl)
+ item(t,0,NULL),
+ flags(fl),argtp(tp),fun(f)
{}
flext_base::attritem::~attritem()
diff --git a/externals/grill/flext/source/flext.cpp b/externals/grill/flext/source/flext.cpp
index e54ad339..baf33c42 100644
--- a/externals/grill/flext/source/flext.cpp
+++ b/externals/grill/flext/source/flext.cpp
@@ -180,7 +180,10 @@ void flext_base::m_assist(long msg,long arg,char *s)
strcpy(s,arg < incnt && indesc[arg]?indesc[arg]:"");
break;
case 2: //ASSIST_OUTLET:
- strcpy(s,arg < outcnt && outdesc[arg]?outdesc[arg]:"");
+ if(arg < outcnt)
+ strcpy(s,outdesc[arg]?outdesc[arg]:"");
+ else
+ strcpy(s,arg == outcnt && procattr?"Attributes":"");
break;
}
#endif
diff --git a/externals/grill/flext/source/flitem.cpp b/externals/grill/flext/source/flitem.cpp
index ddcf570b..1e5a26a6 100755
--- a/externals/grill/flext/source/flitem.cpp
+++ b/externals/grill/flext/source/flitem.cpp
@@ -17,7 +17,7 @@ WARRANTIES, see the file, "license.txt," in this distribution.
flext_base::item::item(const t_symbol *t,int inl,attritem *a):
- inlet(inl),tag(t),attr(a),nxt(NULL)
+ tag(t),inlet(inl),attr(a),nxt(NULL)
{}
flext_base::item::~item()
diff --git a/externals/grill/flext/source/flprefix.h b/externals/grill/flext/source/flprefix.h
index c6e0a267..f12d1320 100755
--- a/externals/grill/flext/source/flprefix.h
+++ b/externals/grill/flext/source/flprefix.h
@@ -153,6 +153,11 @@ WARRANTIES, see the file, "license.txt," in this distribution.
#define FLEXT_OS FLEXT_OS_UNKNOWN
#endif
#endif
+
+ // This is important for method and attribute callbacks
+ #pragma enumsalwaysint on
+ // This is important for everything
+ #pragma bool on
#elif defined(__GNUG__)
// GNU C++
diff --git a/externals/grill/flext/source/flsupport.cpp b/externals/grill/flext/source/flsupport.cpp
index f8717d02..ecc39153 100644
--- a/externals/grill/flext/source/flsupport.cpp
+++ b/externals/grill/flext/source/flsupport.cpp
@@ -119,12 +119,12 @@ void flext::GetAString(const t_atom &a,char *buf,int szbuf)
#endif
}
-int flext::FoldBits(unsigned long h,int bits)
+unsigned int flext::FoldBits(unsigned long h,int bits)
{
if(!bits) return 0;
const int hmax = (1<<bits)-1;
- int ret = 0;
- for(int i = 0; i < sizeof(h)*8; i += bits)
+ unsigned int ret = 0;
+ for(unsigned int i = 0; i < sizeof(h)*8; i += bits)
ret = ret^((h>>i)&hmax);
return ret;
}
diff --git a/externals/grill/flext/source/flsupport.h b/externals/grill/flext/source/flsupport.h
index 14140c99..56c43bc6 100644
--- a/externals/grill/flext/source/flsupport.h
+++ b/externals/grill/flext/source/flsupport.h
@@ -173,7 +173,7 @@ public:
/*! \brief Fold value to a number of bits
\remark Good for hash generation
*/
- static int FoldBits(unsigned long h,int bits);
+ static unsigned int FoldBits(unsigned long h,int bits);
//! \brief How many bits are necessary to represent n
static int Int2Bits(unsigned long n);
diff --git a/externals/grill/xsample/license.txt b/externals/grill/xsample/license.txt
index 01baf51a..d59706ef 100644
--- a/externals/grill/xsample/license.txt
+++ b/externals/grill/xsample/license.txt
@@ -49,36 +49,3 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
In the official flext distribution, the GNU General Public License is
in the file gpl.txt
-
---- pd (pure data) --------------------------------------
-This software is copyrighted by Miller Puckette and others. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
-
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
-
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
-DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
-IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
-NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
-
-RESTRICTED RIGHTS: Use, duplication or disclosure by the government
-is subject to the restrictions as set forth in subparagraph (c) (1) (ii)
-of the Rights in Technical Data and Computer Software Clause as DFARS
-252.227-7013 and FAR 52.227-19.
diff --git a/externals/grill/xsample/maxmsp/xgroove~.help b/externals/grill/xsample/maxmsp/xgroove~.help
index da4820ba..ee8a244e 100644
--- a/externals/grill/xsample/maxmsp/xgroove~.help
+++ b/externals/grill/xsample/maxmsp/xgroove~.help
Binary files differ
diff --git a/externals/grill/xsample/maxmsp/xplay~.help b/externals/grill/xsample/maxmsp/xplay~.help
index 5f15beca..5a210f74 100644
--- a/externals/grill/xsample/maxmsp/xplay~.help
+++ b/externals/grill/xsample/maxmsp/xplay~.help
Binary files differ
diff --git a/externals/grill/xsample/maxmsp/xrecord~.help b/externals/grill/xsample/maxmsp/xrecord~.help
index d0e6da5c..b4a55d78 100644
--- a/externals/grill/xsample/maxmsp/xrecord~.help
+++ b/externals/grill/xsample/maxmsp/xrecord~.help
Binary files differ
diff --git a/externals/grill/xsample/maxmsp/xsample.help b/externals/grill/xsample/maxmsp/xsample.help
index 1c2ceb22..6af68c77 100755
--- a/externals/grill/xsample/maxmsp/xsample.help
+++ b/externals/grill/xsample/maxmsp/xsample.help
Binary files differ
diff --git a/externals/grill/xsample/source/groove.cpp b/externals/grill/xsample/source/groove.cpp
index b3779a04..241146c6 100644
--- a/externals/grill/xsample/source/groove.cpp
+++ b/externals/grill/xsample/source/groove.cpp
@@ -46,6 +46,8 @@ public:
V m_xzone(F xz);
V m_xsymm(F xz);
V m_xshape(I argc = 0,const t_atom *argv = NULL);
+ inline V ms_xshape(const AtomList &ret) { m_xshape(ret.Count(),ret.Atoms()); }
+ V mg_xshape(AtomList &ret) const;
V m_xkeep(BL k);
enum xs_loop {
@@ -62,6 +64,8 @@ protected:
I bidir;
F _xzone,xzone,xsymm;
+ I xshape;
+ F xshparam;
F znmin,znmax;
I xkeep;
S **znbuf;
@@ -70,8 +74,8 @@ protected:
outlet *outmin,*outmax; // float outlets
- V outputmin() { ToOutFloat(outmin,curmin*s2u); }
- V outputmax() { ToOutFloat(outmax,curmax*s2u); }
+ inline V outputmin() { ToOutFloat(outmin,curmin*s2u); }
+ inline V outputmax() { ToOutFloat(outmax,curmax*s2u); }
inline V setpos(F pos)
{
@@ -80,7 +84,7 @@ protected:
curpos = pos;
}
- V mg_pos(F &v) const { v = curpos*s2u; }
+ inline V mg_pos(F &v) const { v = curpos*s2u; }
private:
static V setup(t_classid c);
@@ -110,10 +114,13 @@ private:
FLEXT_CALLBACK_F(m_max)
FLEXT_CALLBACK(m_all)
- FLEXT_CALLBACK_F(m_xzone)
- FLEXT_CALLBACK_F(m_xsymm)
- FLEXT_CALLBACK_V(m_xshape)
- FLEXT_CALLBACK_B(m_xkeep)
+ FLEXT_CALLSET_F(m_xzone)
+ FLEXT_ATTRGET_F(_xzone)
+ FLEXT_CALLSET_F(m_xsymm)
+ FLEXT_ATTRGET_F(xsymm)
+ FLEXT_CALLVAR_V(mg_xshape,ms_xshape)
+ FLEXT_CALLSET_B(m_xkeep)
+ FLEXT_ATTRGET_B(xkeep)
FLEXT_CALLVAR_F(mg_pos,m_pos)
FLEXT_CALLSET_F(m_min)
@@ -128,7 +135,7 @@ FLEXT_LIB_DSP_V("xgroove~",xgroove)
V xgroove::setup(t_classid c)
{
-// DefineHelp(c,"xgroove~");
+ DefineHelp(c,"xgroove~");
FLEXT_CADDMETHOD_(c,0,"all",m_all);
FLEXT_CADDMETHOD(c,1,m_min);
@@ -140,15 +147,16 @@ V xgroove::setup(t_classid c)
FLEXT_CADDATTR_VAR_E(c,"loop",loopmode,m_loop);
- FLEXT_CADDMETHOD_F(c,0,"xzone",m_xzone);
- FLEXT_CADDMETHOD_F(c,0,"xsymm",m_xsymm);
- FLEXT_CADDMETHOD_(c,0,"xshape",m_xshape);
- FLEXT_CADDMETHOD_B(c,0,"xkeep",m_xkeep);
+ FLEXT_CADDATTR_VAR(c,"xzone",_xzone,m_xzone);
+ FLEXT_CADDATTR_VAR(c,"xsymm",xsymm,m_xsymm);
+ FLEXT_CADDATTR_VAR(c,"xshape",mg_xshape,ms_xshape);
+ FLEXT_CADDATTR_VAR(c,"xkeep",xkeep,m_xkeep);
}
xgroove::xgroove(I argc,const t_atom *argv):
loopmode(xsl_loop),curpos(0),
_xzone(0),xzone(0),xsymm(0.5),xkeep(0),pblksz(0),
+ xshape(0),xshparam(1),
znbuf(NULL),znmul(NULL),znidx(NULL),znpos(NULL),
bidir(1)
{
@@ -181,7 +189,7 @@ xgroove::xgroove(I argc,const t_atom *argv):
AddInFloat("Ending point"); // max play pos
for(I ci = 0; ci < outchns; ++ci) {
C tmp[30];
- sprintf(tmp,"Audio signal channel %i",ci+1);
+ STD::sprintf(tmp,"Audio signal channel %i",ci+1);
AddOutSignal(tmp); // output
}
AddOutSignal("Position currently played"); // position
@@ -270,7 +278,7 @@ BL xgroove::m_reset()
V xgroove::m_xzone(F xz)
{
bufchk();
- _xzone = xz < 0?0:xz/s2u;
+ _xzone = xz < 0?0:xz;
do_xzone();
s_dsp();
}
@@ -291,23 +299,24 @@ V xgroove::m_xsymm(F xs)
V xgroove::m_xshape(I argc,const t_atom *argv)
{
const F pi = 3.14159265358979f;
- I i,sh = 0;
- F param = 1;
- if(argc >= 1 && CanbeInt(argv[0])) sh = GetAInt(argv[0]);
+ xshape = 0;
+ xshparam = 1;
+ if(argc >= 1 && CanbeInt(argv[0])) xshape = GetAInt(argv[0]);
if(argc >= 2 && CanbeFloat(argv[1])) {
- param = GetAFloat(argv[1]);
+ xshparam = GetAFloat(argv[1]);
// clip to 0..1
- if(param < 0) param = 0;
- else if(param > 1) param = 1;
+ if(xshparam < 0) xshparam = 0;
+ else if(xshparam > 1) xshparam = 1;
}
if(znmul) delete[] znmul;
znmul = new S[XZONE_TABLE+1];
- switch(sh) {
+ I i;
+ switch(xshape) {
case 1:
for(i = 0; i <= XZONE_TABLE; ++i)
- znmul[i] = sin(i*(pi/2./XZONE_TABLE))*param+i*(1./XZONE_TABLE)*(1-param);
+ znmul[i] = sin(i*(pi/2./XZONE_TABLE))*xshparam+i*(1./XZONE_TABLE)*(1-xshparam);
break;
case 0:
default:
@@ -316,6 +325,14 @@ V xgroove::m_xshape(I argc,const t_atom *argv)
}
}
+V xgroove::mg_xshape(AtomList &ret) const
+{
+ ret(2);
+ SetInt(ret[0],xshape);
+ SetFloat(ret[1],xshparam);
+}
+
+
V xgroove::m_xkeep(BL k)
{
xkeep = k;
@@ -324,7 +341,7 @@ V xgroove::m_xkeep(BL k)
V xgroove::do_xzone()
{
- xzone = _xzone;
+ xzone = _xzone/s2u;
I smin = curmin,smax = curmax,plen = smax-smin; //curlen;
if(xsymm < 0) {
// crossfade zone is inside the loop (-> loop is shorter than nominal!)
@@ -632,7 +649,7 @@ V xgroove::m_help()
#ifdef FLEXT_DEBUG
post("compiled on " __DATE__ " " __TIME__);
#endif
- post("(C) Thomas Grill, 2001-2002");
+ post("(C) Thomas Grill, 2001-2003");
#if FLEXT_SYS == FLEXT_SYS_MAX
post("Arguments: %s [channels=1] [buffer]",thisName());
#else
diff --git a/externals/grill/xsample/source/inter.cpp b/externals/grill/xsample/source/inter.cpp
index aeee7e9d..42221e1c 100644
--- a/externals/grill/xsample/source/inter.cpp
+++ b/externals/grill/xsample/source/inter.cpp
@@ -19,12 +19,15 @@ WARRANTIES, see the file, "license.txt," in this distribution.
#include "inter.ci"
#endif
+void xinter::setup(t_classid c)
+{
+ FLEXT_CADDATTR_VAR_E(c,"interp",interp,m_interp);
+}
xinter::xinter():
doplay(false),outchns(1),
interp(xsi_4p)
{
- FLEXT_ADDMETHOD_E(0,"interp",m_interp);
}
I xinter::m_set(I argc,const t_atom *argv)
diff --git a/externals/grill/xsample/source/main.h b/externals/grill/xsample/source/main.h
index 77d02772..8f9d15dc 100644
--- a/externals/grill/xsample/source/main.h
+++ b/externals/grill/xsample/source/main.h
@@ -61,6 +61,13 @@ WARRANTIES, see the file, "license.txt," in this distribution.
#define S t_sample
+#ifdef __MWERKS__
+ #define STD std
+#else
+ #define STD
+#endif
+
+
class xsample:
public flext_dsp
{
@@ -120,10 +127,10 @@ protected:
BL bufchk() { if(buf->Update()) { m_refresh(); return true; } return false; }
V mg_buffer(AtomList &l) { if(buf) { l(1); SetSymbol(l[0],buf->Symbol()); } else l(); }
- V ms_buffer(const AtomList &l) { m_set(l.Count(),l.Atoms()); }
+ inline V ms_buffer(const AtomList &l) { m_set(l.Count(),l.Atoms()); }
- V mg_min(F &v) const { v = curmin*s2u; }
- V mg_max(F &v) const { v = curmax*s2u; }
+ inline V mg_min(F &v) const { v = curmin*s2u; }
+ inline V mg_max(F &v) const { v = curmax*s2u; }
private:
static V setup(t_classid c);
@@ -250,7 +257,7 @@ protected:
class xinter:
public xsample
{
- FLEXT_HEADER(xinter,xsample)
+ FLEXT_HEADER_S(xinter,xsample,setup)
public:
xinter();
@@ -261,7 +268,7 @@ protected:
virtual V m_start();
virtual V m_stop();
- V m_interp(xs_intp mode = xsi__) { interp = mode; s_dsp(); }
+ inline V m_interp(xs_intp mode = xsi__) { interp = mode; s_dsp(); }
I outchns;
BL doplay;
@@ -282,8 +289,10 @@ protected:
virtual V s_dsp();
private:
+ static V setup(t_classid c);
- FLEXT_CALLBACK_1(m_interp,xs_intp)
+ FLEXT_CALLSET_E(m_interp,xs_intp)
+ FLEXT_ATTRGET_E(interp,xs_intp)
};
#ifdef TMPLOPT
diff --git a/externals/grill/xsample/source/play.cpp b/externals/grill/xsample/source/play.cpp
index f558e95d..50f32e75 100644
--- a/externals/grill/xsample/source/play.cpp
+++ b/externals/grill/xsample/source/play.cpp
@@ -75,7 +75,7 @@ xplay::xplay(I argc,const t_atom *argv)
AddInSignal("Messages and Signal of playing position"); // pos signal
for(I ci = 0; ci < outchns; ++ci) {
C tmp[30];
- sprintf(tmp,"Audio signal channel %i",ci+1);
+ STD::sprintf(tmp,"Audio signal channel %i",ci+1);
AddOutSignal(tmp);
}
@@ -100,7 +100,7 @@ V xplay::m_help()
#ifdef FLEXT_DEBUG
post("compiled on " __DATE__ " " __TIME__);
#endif
- post("(C) Thomas Grill, 2001-2002");
+ post("(C) Thomas Grill, 2001-2003");
#if FLEXT_SYS == FLEXT_SYS_MAX
post("Arguments: %s [channels=1] [buffer]",thisName());
#else
diff --git a/externals/grill/xsample/source/record.cpp b/externals/grill/xsample/source/record.cpp
index d138d4e5..c9faef65 100644
--- a/externals/grill/xsample/source/record.cpp
+++ b/externals/grill/xsample/source/record.cpp
@@ -42,10 +42,7 @@ public:
virtual V m_min(F mn);
virtual V m_max(F mx);
-// V m_mixmode(BL mx) { mixmode = mx; }
-// V m_sigmode(BL mode) { sigmode = mode; }
-// V m_loop(BL lp) { doloop = lp; }
- V m_append(BL app) { if(!(appmode = app)) m_pos(0); }
+ inline V m_append(BL app) { if(!(appmode = app)) m_pos(0); }
virtual V m_draw(I argc,const t_atom *argv);
@@ -59,8 +56,10 @@ protected:
outlet *outmin,*outmax; // float outlets
- V outputmin() { ToOutFloat(outmin,curmin*s2u); }
- V outputmax() { ToOutFloat(outmax,curmax*s2u); }
+ inline V outputmin() { ToOutFloat(outmin,curmin*s2u); }
+ inline V outputmax() { ToOutFloat(outmax,curmax*s2u); }
+
+ inline V mg_pos(F &v) const { v = curpos*s2u; }
private:
static V setup(t_classid c);
@@ -76,8 +75,10 @@ private:
recfun(n,in,out);
}
- FLEXT_CALLBACK_F(m_pos)
+ FLEXT_CALLVAR_F(mg_pos,m_pos)
FLEXT_CALLBACK(m_all)
+ FLEXT_CALLSET_F(m_min)
+ FLEXT_CALLSET_F(m_max)
FLEXT_CALLBACK_F(m_min)
FLEXT_CALLBACK_F(m_max)
@@ -98,9 +99,9 @@ V xrecord::setup(t_classid c)
{
DefineHelp(c,"xrecord~");
- FLEXT_CADDMETHOD_F(c,0,"pos",m_pos);
- FLEXT_CADDMETHOD_F(c,0,"min",m_min);
- FLEXT_CADDMETHOD_F(c,0,"max",m_max);
+ FLEXT_CADDATTR_VAR(c,"pos",mg_pos,m_pos);
+ FLEXT_CADDATTR_VAR(c,"min",mg_min,m_min);
+ FLEXT_CADDATTR_VAR(c,"max",mg_max,m_max);
FLEXT_CADDMETHOD_(c,0,"all",m_all);
FLEXT_CADDMETHOD_(c,0,"draw",m_draw);
@@ -143,8 +144,8 @@ xrecord::xrecord(I argc,const t_atom *argv):
buf = new buffer(NULL,true);
for(I ci = 0; ci < inchns; ++ci) {
- C tmp[30];
- sprintf(tmp,"Audio channel %i",ci+1);
+ C tmp[40];
+ STD::sprintf(tmp,ci == 0?"Messages/audio channel %i":"Audio channel %i",ci+1);
AddInSignal(tmp); // audio signals
}
AddInSignal("On/Off/Fade/Mix signal (0..1)"); // on/off signal
@@ -422,7 +423,7 @@ V xrecord::m_help()
#ifdef FLEXT_DEBUG
post("compiled on " __DATE__ " " __TIME__);
#endif
- post("(C) Thomas Grill, 2001-2002");
+ post("(C) Thomas Grill, 2001-2003");
#if FLEXT_SYS == FLEXT_SYS_MAX
post("Arguments: %s [channels=1] [buffer]",thisName());
#else
diff --git a/externals/grill/xsample/xsample.cw b/externals/grill/xsample/xsample.cw
index 83938005..d6db1838 100755
--- a/externals/grill/xsample/xsample.cw
+++ b/externals/grill/xsample/xsample.cw
Binary files differ