ER`PM?AppleApple_partition_map?PM@_disk imageApple_HFS_@3goonPM_Apple_FreeH+10.0½v&l½Z  ڑ4pppp77?? px7px mnm.xmul.helpstartup _FTM_.patͿ½Z½ZcAE E _FTM_.pat README.txt.disk_image_bg.jpgReleaseNotes.txt COPYING.LIB .DS_Store .DS_Storemnm.follower-example.patmnm.follower.database.patmnm.follower.graphs.patmnm.follower.gui.patmnm.follower.hmm.patmnm.follower.init.patmnm.follower.markers.pat mnm.follower.monitor.pat mnm.L2Rdecoding.pat mnm.makeL2R.pat> ` 4 ` ,  d8xN( Z0h B  h:FTjFlZ:$ftm.buffer.help#ŕ#ŕ½ZlVc s*ftm.class.bpf.help··½ZlVcj,ftm.class.dict.helpNnWNnW½ZlVcmaxb ,ftm.class.expr.helpRŊRŊ½ZlVcmaxb p,ftm.class.fmat.helpP[P[½ZlVcj  ,ftm.class.fvec.help½ZlVcl**ftm.class.mat.help··½ZlVc1F  T 2 b P F , vP,"FTM.2.2.0.BETA$ftm.buffer.help,ftm.class.midi.help ftm.mesh.mxb"ftm.tween.help6?ftm.editor-trackfmat.patO Archive.bom T Entries.Log \$fgabor.psola.pat n q gbr.ola~.help .gabor-objectlist.txt(mnm.mautocorr.mxb(mnm.winfilter.mxb .DS_Storemnm.help mnm.mmt.help mnm.svd.helpn@vjH&lB6,ftm.class.midi.help ½ZlVc 2.ftm.class.scoob.help!22½ZlVc3.ftm.class.track.help"··½ZlVcF4.ftm.class.tuple.help#22½ZlVc5I"ftm.clone.help$NoNo½ZlVcmaxbCJ  ftm.copy.help%$K$K½ZlVc K$ftm.editor.help&½ ½ ½ZlVcmaxbmax2;FLftm.help'½~½~½ZlVcmaxb ftm.help.jpg(22½ZlVcK,"ftm.inter.help)aa½ZlVc  ftm.iter.help*yy½ZlVc$ftm.jitter.help+*d*d½ZlVc!  ftm.list.help,22½ZlVc ftm.mesh.js-'8'8½ZlVc 6 | ^ D ( \4 ftm.mesh.mxb.'+'+½ZlVc!  ftm.mess.help/ŒGŒG½ZlVc *ftm.midiparse.help022½ZlVcb.ftm.midiunparse.help1Np,Np,½ZlVcmaxb$ftm.object.help2º_kº_k½ZlVc  ftm.play.help3 ½ZlVc "ftm.print.help4&ܾ&½ZlVc}$ftm.record.help522½ZlVc (ftm.schedule.help6b̽b½ZlVc  ftm.sdif.help7nh]nh]½ZlVcTEXTH*ftm.sdif.info.help8l l ½ZlVc,ftm.sdif.track.help9r{/r{/½ZlVc8,ftm.sdif.write.help:[[½ZlVcl$ftm.sqlite.help;SS½ZlVcU ^ : d@&HFS+ Private Data.Trashes .DS_StoreFTM.2.2.0.BETA-Max46ub .DS_Store½Y½\#½\#lVc@ FTM½T½T½Z½ZcA*FTM.2.2.0.BETA.pkgN½U#½U#½Z½ZcAGABORe½T½T½Z½ZcAinit½T½U½Z½ZcAMnM.BETA½T½T½Z½ZcAstartup½T½T½Z½ZcA .DS_StoreFTMhelp'½T½T½Z½ZcA inspectors?½T½T½Z½ZcA tutorialsG½T½T½Z½ZcAhelp&ftm.absargs.help* * ½ZlVcR &  r V6>z 4FlJ."ftm.tween.help<00½ZlVc"ftm.value.help=NoNo½ZlVcmaxbJ,ftm.vecdisplay.help>ᾂ½ZlVc0ftm.absargs.helpftm.buffer.helpftm.class.bpf.helpftm.class.dict.helpftm.class.expr.helpftm.class.fmat.helpftm.class.fvec.helpftm.class.mat.help ftm.class.midi.help!ftm.class.scoob.help"ftm.class.track.help#ftm.class.tuple.help$ftm.clone.help% ftm.copy.help&ftm.editor.help'ftm.help( ftm.help.jpg)ftm.inter.help* ftm.iter.help+ftm.jitter.help, ftm.list.help- ftm.mesh.js. ftm.mesh.mxb/ ftm.mess.help0ftm.midiparse.help1ftm.midiunparse.help2ftm.object.help3 ftm.play.help4ftm.print.help5ftm.record.help6ftm.schedule.help7 ftm.sdif.help8ftm.sdif.info.help9ftm.sdif.track.help:ftm.sdif.write.help;ftm.sqlite.help<ftm.tween.help=ftm.value.help>ftm.vecdisplay.help? inspectors*?ftm.editor-bpf.pat@»»½ZlVcmaxbmax2A6?ftm.editor-insp copy.patA¦#¦#½ZlVcmaxb,?ftm.editor-insp.patB»6»6½ZlVcmaxb x H $ j :  h 4 z@ `0Z.Rt<lF* 6?ftm.editor-trackfmat.patC»»½ZlVcmaxbmax2(?ftm.mess-insp.patDR*R*½ZlVcmaxb,?ftm.object-insp.patE22½ZlVc L4?ftm.vecdisplay-insp.patFŒGŒG½ZlVc]@?ftm.editor-bpf.patA?ftm.editor-insp copy.patB?ftm.editor-insp.patC?ftm.editor-trackfmat.patD?ftm.mess-insp.patE?ftm.object-insp.patF?ftm.vecdisplay-insp.patG tutorials G FTM.help.helpHb̽b½ZlVc Gftm.jpgI½ZlVcK, .GFTM.tutorial.1-7.patJŒGŒG½ZlVc;0GFTM.tutorial.8-14.patKŒGŒG½ZlVci<GFTM.tutorial.references.patLӰӰ½ZlVcc# G showscope.patMӰӰ½ZlVcHG FTM.help.helpIGftm.jpgJGFTM.tutorial.1-7.patKGFTM.tutorial.8-14.patLGFTM.tutorial.references.patMG showscope.patNFTM.2.2.0.BETA.pkgNContentsO½U#½U)½Z½ZcAONContents>vJ l @ & vRd,`> T Entries.Log]½½½ZlVc*TFTM.2.2.0.BETA.bom^½Z½Z½Z½Zcslnkrhap0TFTM.2.2.0.BETA.pax.gz_½Z½Z½Z½Zcslnkrhap.TFTM.2.2.0.BETA.sizes`½U)½U)½ZlVc$0 $Tpackage_versiona½U)½U)½ZlVc$ T postflightb½½½ZlVcj T Repositoryc`3`3½Z½Zc2 TRootd`3`3½Z½Zc3 UTBundleVersions.plistVT English.lproj"Vbackground.jpgW]]½ZlVcmZ(VDescription.plistX½U)½U)½ZlVc$C,VFTM.2.2.0.BETA.infoY½U)½U)½ZlVc$&V License.txtZ2.2.½ZlVcmgV Welcome.txt[]A`½ZlVcmWVbackground.jpgXVDescription.plistYVFTM.2.2.0.BETA.infoZV License.txt[V Welcome.txtx@  j N "rH$  O Archive.bomP½U$½U$½ZlVc$;"OArchive.pax.gzQ½U$½U(½ZlVc$L 1O Info.plistR½U)½U)½ZlVc$yOPkgInfoS½U)½U)½ZlVc$O Resources T½U#½U)½Z½ZcAPO Archive.bomQOArchive.pax.gzRO Info.plistSOPkgInfoTO Resources.TBundleVersions.plistU½U$½U$½ZlVc$ T English.lprojV½U#½U*½Z½ZcATEntries\½%½%½ZlVc-D6pP*bT@$  $fgabor.psola.patlŒ9Œ9½Z½ZcO),fgabor.psolastic.patmŒ9Œ9½Z½ZcY."fgabor.sing.patn¯¯½Z½Zcqn4&fgabor.ststst.patoŒ9Œ9½Z½ZcM<f Olivier.aiffpVV½Z½Zc-HAgfgabor.cepsmooth.pathfgabor.granular.patifgabor.harmonics.patjfgabor.logceps.patkfgabor.partials.patlfgabor.psola.patmfgabor.psolastic.pattT,P* ^ dBLnR, nfgabor.sing.patofgabor.ststst.patpf Olivier.aiffqehelpq gabor.helprŒ9Œ9½Z½ZcN $qgbr.addenv.helpsŒ9Œ9½Z½ZcI .qgbr.addpartials.helptŒ9Œ9½Z½ZcG "qgbr.bands.helpuŒ9Œ9½Z½ZcA0 " q gbr.copy.helpvŒ9Œ9½Z½ZcE '$qgbr.dline~.helpwŒ9Œ9½Z½ZcD ,$qgbr.drain~.helpxŒ9Œ9½Z½ZcC 1q gbr.fft.helpyŒ9Œ9½Z½ZcZ! 6"qgbr.fire~.helpzŒ9Œ9½Z½ZcT < q gbr.gen=.help{¯¯½Z½ZcCY B"qgbr.harms.help|Œ9Œ9½Z½ZcGF G q gbr.ifft.help}Œ9Œ9½Z½ZcZ  L"qgbr.morph.help~Œ9Œ9½Z½Zcq R  ~`B( n<  q gbr.ola~.helpŒ9Œ9½Z½Zcn ["qgbr.paste.helpŒ9Œ9½Z½ZcVb b"qgbr.peaks.helpŒ9Œ9½Z½ZcGr h q gbr.psy~.helpŒ9Œ9½Z½ZcE m(qgbr.resample.helpŒ9Œ9½Z½Zc r $qgbr.slice~.helpŒ9Œ9½Z½ZcE> }$qgbr.tapin~.helpŒ9Œ9½Z½ZcHH &qgbr.tapout~.helpŒ9Œ9½Z½ZcNa "qgbr.trace.helpŒ9Œ9½Z½Zc "qgbr.wind=.helpŒ9Œ9½Z½ZcG q gbr.yin.helpŒ9Œ9½Z½ZcG rq gabor.helpsqgbr.addenv.helptqgbr.addpartials.helpuqgbr.bands.helpvq gbr.copy.helpwqgbr.dline~.helpxqgbr.drain~.helpyq gbr.fft.helpzqgbr.fire~.help{q gbr.gen=.help|qgbr.harms.help}q gbr.ifft.help~qgbr.morph.helpq gbr.ola~.helpqgbr.paste.helpqgbr.peaks.helpq gbr.psy~.helpqgbr.resample.helpqgbr.slice~.helpR&pD b 2  n H 0 z`D( \TEntries]T Entries.Log^TFTM.2.2.0.BETA.bom_TFTM.2.2.0.BETA.pax.gz`TFTM.2.2.0.BETA.sizesaTpackage_versionbT postflightcT RepositorydTRooteGABOReexamples f½T½T½Z½ZcAehelpq½T½T½Z½ZcAe tutorials ½T½T½Z½ZcAfeexamples,fgabor.cepsmooth.patgŒ9Œ9½Z½ZcM*fgabor.granular.pathŒ9Œ9½Z½ZcB,fgabor.harmonics.patiŒ9Œ9½Z½ZcSa(fgabor.logceps.patjŒ9Œ9½Z½ZcGD*fgabor.partials.patkŒ9Œ9½Z½ZcRP#jF $~X2V. qgbr.tapin~.helpqgbr.tapout~.helpqgbr.trace.helpqgbr.wind=.helpq gbr.yin.helpe tutorials001.01 - sine wave.patŒ9Œ9½Z½ZcRz J"01.02 - sine wave with overlap.patŒ9Œ9½Z½ZcUm :01.03 - my 1st formant.patŒ9Œ9½Z½ZcY @01.04 - different windows.patŒ9Œ9½Z½ZcUi *01.05 - la FOF.patŒ9Œ9½Z½ZcS 801.06 - my 1st vowels.patŒ9Œ9½Z½ZcV_ 801.07 - stolen vowels.patŒ9Œ9½Z½Zcs @01.08 - recomposed vowels.patŒ9Œ9½Z½Zc~] 401.09 - your vowels.patŒ9Œ9½Z½Zc[F 01.01 - sine wave.pat"01.02 - sine wave with overlap.pat01.03 - my 1st formant.pat01.04 - different windows.pat01.05 - la FOF.pat01.06 - my 1st vowels.pat01.07 - stolen vowels.pat01.08 - recomposed vowels.pat01.09 - your vowels.patinit*ftm-objectlist.txtOO½Z½Zc nT @ x " ~LDp>.gabor-objectlist.txtl 1l 1½Z½ZcF *mnm-objectlist.txt……½Z½Zch ftm-objectlist.txtgabor-objectlist.txtmnm-objectlist.txtMnM.BETA abstracts½T½U½Z½ZcAexamples½Tlmlm½ZcAhelp)½T½T½Z½ZcA abstracts,mnm.alphafilter.mxb®|®|½Z½Zc[ &mnm.derivate.mxb®|®|½Z½Zc (mnm.fftfilter.mxb®|®|½Z½Zc Q  mnm.fstd.mxb®|®|½Z½Zc (mnm.integrate.mxb®|®|½Z½Zc &mnm.list2col.mxb®|®|½Z½Zc' (mnm.list2fvec.mxb®|®|½Z½ZcZ &mnm.list2row.mxb®|®|½Z½ZcL &mnm.list2vec.mxb®|®|½Z½Zc9 "mnm.matmap.mxb®|®|½Z½ZcU  t R 2 l"Z6(mnm.mautocorr.mxb®|®|½Z½Zc  mnm.mm.mxb®|®|½Z½Zc#  mnm.mmt.mxb®|®|½Z½Zc  mnm.mtm.mxb®|®|½Z½Zc  mnm.mv.mxb®|®|½Z½Zc8 (mnm.normalize.mxb®|®|½Z½Zc1 *mnm.normalizer.mxb®|®|½Z½Zc  mnm.pca.mxb®|®|½Z½Zc   mnm.q.mxb®|®|½Z½Zc#  mnm.ring.mxb®|®|½Z½Zc ,mnm.standardize.mxb®|®|½Z½Zc_ .mnm.standardizer.mxb®|®|½Z½Zc "mnm.svmmap.mxb®|®|½Z½Zc? &mnm.vec2list.mxb®|®|½Z½Zc t X 0 pZD0 mnm.hmmL2R-ez.helpmnm.hmmL2R-ez.mxbhelp.mnm.alphafilter.help®}®}½Z½Zc)] (mnm.derivate.help®}®}½Z½Zc)  mnm.diag.help®}®}½Z½Zc) *mnm.fftfilter.help®}®}½Z½Zc0   mnm.fstd.help®}®}½Z½Zc( "mnm.gmmem.help®}®}½Z½Zc&  T .  J  X  rP4xDmnm.help®}®}½Z½Zc i " mnm.hist.help®}®}½Z½ZcK #*mnm.integrate.help®}®}½Z½Zc*  ((mnm.list2col.help®}®}½Z½Zc(Z +*mnm.list2fvec.help®}®}½Z½Zc( .(mnm.list2row.help®}®}½Z½Zc(Y 1(mnm.list2vec.help®}®}½Z½Zc( 4 mnm.lu.help®}®}½Z½Zc+ 7.mnm.mahalanobis.help®}®}½Z½Zc* :$mnm.matmap.help®}®}½Z½ZcD =*mnm.mautocorr.help®}®}½Z½ZcqY B&mnm.meanstd.help®}®}½Z½Zc.B Z$mnm.minmax.help®}®}½Z½Zc0 ] mnm.mm.help®}®}½Z½Zc-R a f B $~\8 mnm.mmt.help®}®}½Z½ZcH3 d mnm.mtm.help®}®}½Z½ZcH3 i mnm.mv.help®}®}½Z½Zc* n mnm.nmf.help®}®}½Z½Zc/& q*mnm.normalize.help®}®}½Z½ZcP t,mnm.normalizer.help®}®}½Z½Zc( z mnm.pca.help®}®}½Z½Zc/q } mnm.q.help®}®}½Z½Zc)  mnm.qr.help®}®}½Z½Zc+   mnm.ring.help®}®}½Z½Zc) .mnm.standardize.help®}®}½Z½Zc,~ 0mnm.standardizer.help®}®}½Z½Zc( $mnm.submat.help®}®}½Z½Zc'  mnm.sum.help®}®}½Z½Zc,  d :  lT>&/ mnm.svd.help®}®}½Z½Zc:Y $mnm.svmmap.help®}®}½Z½Zc> *mnm.transpose.help®}®}½Z½Zc( (mnm.vec2list.help®}®}½Z½Zc( *mnm.winfilter.help®}®}½Z½Zc2 $mnm.xdist2.help®}®}½Z½Zc,  mnm.xmul.help®}®}½Z½Zc+  mnm.alphafilter.helpmnm.derivate.help mnm.diag.helpmnm.fftfilter.help mnm.fstd.helpmnm.gmmem.helpmnm.help mnm.hist.helpmnm.integrate.helpmnm.list2col.helpmnm.list2fvec.helpmnm.list2row.helpmnm.list2vec.help mnm.lu.helpmnm.mahalanobis.helpmnm.matmap.helpmnm.mautocorr.helpmnm.meanstd.helpmnm.minmax.help mnm.mm.help mnm.mmt.help mnm.mtm.help mnm.mv.help mnm.nmf.helpmnm.normalize.helpmnm.normalizer.help mnm.pca.help mnm.q.help mnm.qr.help mnm.ring.helpmnm.standardize.helpmnm.standardizer.helpmnm.submat.help mnm.sum.help mnm.svd.helpmnm.svmmap.helpmnm.transpose.helpmnm.vec2list.helpmnm.winfilter.helpmnm.xdist2.helpj:j@ p D  ^ 4 ` . f 2 ^ 2 T hD& "FTM.2.2.0.BETA½Z½\ ½\ ½ZnFTM.2.2.0.BETA*.disk_image_bg.jpg''½Z$lVcb9P .DS_Store½Z oolVc@0d.Trashes½Z ll½Z cB@ COPYING.LIB2.2.½ZKlVcg]2FTM.2.2.0.BETA-Max46ub½T½Y½Z½ZcA README.txt)MS½ZA½Z;cZ &ReleaseNotes.txt:½Y½Z9½Z(c].W0HFS+ Private Data½Z½Z½Z½Z@PWW:4t^  .DS_Storelxlxlxlxc@|6mnm.follower-example.pat„DYo/llcmaxb<~8mnm.follower.database.patio%llcmaxb4mnm.follower.graphs.pat„DYollcmaxb*.mnm.follower.gui.pat„DYollcmaxb).mnm.follower.hmm.pat„DYo llcmaxb d0mnm.follower.init.patiSollcmaxb6mnm.follower.markers.pat„DYollcmaxbG`6mnm.follower.monitor.pat „DYnllcmaxb!,mnm.L2Rdecoding.pat ionllcmaxb$mnm.makeL2R.pat „DYnllcmaxb X . b 0  X 2 | R  Z*P hmm*mnm.hmmL2R-ez.help®}®}½Z½Zc! (mnm.hmmL2R-ez.mxb®}®}½Z½Zc  D &Vd$lJ&(mnm.winfilter.mxb®|®|½Z½Zc mnm.alphafilter.mxbmnm.derivate.mxbmnm.fftfilter.mxb mnm.fstd.mxbmnm.integrate.mxbmnm.list2col.mxbmnm.list2fvec.mxbmnm.list2row.mxbmnm.list2vec.mxbmnm.matmap.mxbmnm.mautocorr.mxb mnm.mm.mxb mnm.mmt.mxb mnm.mtm.mxb mnm.mv.mxbmnm.normalize.mxbmnm.normalizer.mxb mnm.pca.mxb mnm.q.mxb mnm.ring.mxbmnm.standardize.mxbmnm.standardizer.mxbmnm.svmmap.mxbmnm.vec2list.mxbmnm.winfilter.mxbexamples .DS_Storelmlslslmc@z&gesture_follower ½Tll½ZcA hmm½T½U½Z½ZcAgesture_follower&tF ^(~X$^,h0JFIFHH_ExifMM*bj(1r2iHHAdobe Photoshop 7.02004:06:30 18:49:21j(&1HHJFIFHH Adobe_CMAdobed            ["?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)%Oݝ27#6z_;]`{=S%_.[ _hc5ճ)R߳dX?֔,^_zVWF-Ycc+vI)I$JRI$I$$I)I$JTI%,bTlYzT.~cr͵> n+-gF~=^z7\=#<֛CwzZ׻ec}/I9j//?u}5>6=ޫ}xh-cDW>Y֪c=L.jsK2]]6R?*|o߰}hXL:}6:,i}~ϫ=V۲N=JOR8ĺV.ZXWuVWjJl$I)I$JRI$I$$I)UU_W.ƷPҲOsvUy;]CKͭ?ou>WF4*ƹޯUѲV܏S]/;)A[xn?Qӆ;5^FNѯStNm8Yfv>C Gg}S(-k:scCAh5z~?IJ~JV׶+etSle8Af:߫ه֧[sWG\W_5ץ>I$$I)I$JRI$I$U\'F}ah߷_gwܬ$KiSAךM/cĮ+u!$F=gYzu^.yA{iUhe{`y7Ogsz96Uꋊm~Wb݁U}.X^퍽w dIOjI$$I)I$JRI$I$TI%,Z #$~IIJI$RI$I%)$IJI$STI%)$IJI$RI$I%)$IJI$RI$+`Photoshop 3.08BIM%8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2004-06-29T11:59:34Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2004-06-29T11:59:34Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2004-06-29T11:59:34Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2004-06-29T11:59:34Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2004-06-29T11:59:34Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 734 576 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2004-06-30T16:46:22Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 774 594 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2004-06-30T16:46:22Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName na-letter com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 734 576 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2004-06-29T11:59:34Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 774 594 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2004-06-29T11:59:34Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName US Letter com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH@Rg(HH(dh 8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM8BIM8BIM@@8BIM8BIMOj disk_image_bgjnullboundsObjcRct1Top longLeftlongBtomlongjRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongjRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM 8BIM M[1JFIFHH Adobe_CMAdobed            ["?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)%Oݝ27#6z_;]`{=S%_.[ _hc5ճ)R߳dX?֔,^_zVWF-Ycc+vI)I$JRI$I$$I)I$JTI%,bTlYzT.~cr͵> n+-gF~=^z7\=#<֛CwzZ׻ec}/I9j//?u}5>6=ޫ}xh-cDW>Y֪c=L.jsK2]]6R?*|o߰}hXL:}6:,i}~ϫ=V۲N=JOR8ĺV.ZXWuVWjJl$I)I$JRI$I$$I)UU_W.ƷPҲOsvUy;]CKͭ?ou>WF4*ƹޯUѲV܏S]/;)A[xn?Qӆ;5^FNѯStNm8Yfv>C Gg}S(-k:scCAh5z~?IJ~JV׶+etSle8Af:߫ه֧[sWG\W_5ץ>I$$I)I$JRI$I$U\'F}ah߷_gwܬ$KiSAךM/cĮ+u!$F=gYzu^.yA{iUhe{`y7Ogsz96Uꋊm~Wb݁U}.X^퍽w dIOjI$$I)I$JRI$I$TI%,Z #$~IIJI$RI$I%)$IJI$STI%)$IJI$RI$I%)$IJI$RI$8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:1c484b4c-cc58-11d8-a7e9-8776a5171770 Adobed            j" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$TI%)$IJI$RI$I%)$ҔM)RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$TI%)$IJI$RI$I%,t?:jt*F.˳`^$<^ G,l{ ՟F, r.k{h D )t)HIKBDI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$TI%)$IJI$RI$I%0q0y^96z5C>T|~]gSfV`)VswI k\j'M zx 4y?Xu=k%8蒟l =r廼9 掋z>uy4uo~N7mw=)ީupcɆx.VfN[͹68ΦQGNe(] 1IO쵯f8DEFSn@nѥפ1ۀ))!:I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)TI%)$IJI$RI$I%-"yI)IHX"^!3:F[<77 A+)Sp`>%? )uYi"%M g&\ ~W}_F#js%UwبshZ4X"N˲Imn🺶u?"ϫS^6|z6ySt'L%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJI$RI$LM1')RBӯ̺}:x焔o>0Y: -|wLS΂ wFs? -`OJK3v+6*H3+]>Wx V^f|4W5nUyt#w )/'I=m&ct?e- t@kFagNgX?ؒI w;U=m&嶾ƾj$Y˫&VS`p2tI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%?TI%)$IJI$RI$IJ\?Mt9ÿ4Y%;VG֞ѯc e{Cu$_%?8uCFC&0&4'GQĶϹx?W=;߈IYYC :T )G7cul!=eV햴t?R3F'XmDl 쒚Zz}XmP"[{/Է\ΏEvv//Ofj^qUUJv [alO͍҂!?Ef\i򒞷'DtYkA}fZ 澤ΝY_Pˤ>춭U雽B;IM>7>* {߬WKwzS/G}M4c;4h??^:o]ش m>;S/Ta "WCҰp?GR7E6WYcJlumU*Uvdy >}`g,|R׼ uXza8IM 'I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$TI%)$IJI%S<>r,IIMwUUA$ M"k=Kg;.SKf >adWKM2^J|f]f=ml yYY8vy,,!}ޒ6O#Պn/k@L|SIJ)>#D$Lt.|p+;6c^%ǸE$ }jtFskw:+/H>Km0{u#P}yZg l np02$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$TI%)$ILHGkGH[&g˺1 )un?>x"WѲl,h'XcT_R fǕS>ןyzy-i=u[4dammWŮiW1W їc#)gho[ƪޛ[8+ecn=v+o)%-dIOܛ@Z8VV*d:5̯iV 8{CDIO?XٶVJwƿ0;]$q ]83?}'>m1;? #wG/ZWeMoM)) ЎW_hg?yon8?+.{{w+ϱ:N^k.47IOѽ7778A +U-õU1rJ\JJf4N $I$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$STI%)$IK e5 q>JnphpSgHn%O~NxwIO 1> I|$')BJY$R];,eՒ2B^z.{[]=wV`蝮S?T鶰:Wu &o`9Հ+ IK&J~D-.T}\įuGf+\s$I&N%>wN+m']9S3;I)bceU{ǰ{Lͣ/-c050 tSgt,ښ9=> )S7Q̌sA%):`%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$TI%)$IMl,ʻFT ϭX~u;2-Ҫ[S|{|GäŖ7CۅQ=S -R9 58h͞P}7܆SѺ7Vkw}ֱZ;[Rͩͺ'%>t>).gkDnn?ԔH IK$I)I'R'L 98y zLNutA%'o_@gHeӫ g`))"tRI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IHi<iy`.=&-tZchhQXVΠ'%"D﩮쉪F{$):\K94>)xVX 31`[Yy|{"O)jut?\o10 Wn\rwW'Whs.U='qJjj Qy0>u\x gySϵq\|#ZΩh 'ԌMs7?yl}Y}VTѸ@- )%o?`u_sK58oQ:y;' )`53WR}/4y;@ԯJM|RT$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$TI%)$IJI$RI$Jt; c!_6u[ٓo7Xc+kk_9Uޝb\4⒟\҅}gSk}Z5a!O]F$ގ  .xLY|tV $7[pt1QM -"Ĥ3զu^cZ I^ =l< ʝwЯxt`4RRV?#cftV:>Ǻy| C+ձķF!%7BtÄ)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$TI%)$IJI$RI$E)P2X!%<}V/ v^S5[;=V٘^)$=^3%>*!SUI$I$$I)KzX ~WRR~ Χ J~s9l?|/.Mwk 4~@slX+c/sn\5Jze:>RIJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%?TI%)$IJI$RI$I0^G1u5ƶ2[sW<" t^{\Ws̸@RS╴s?L}TR:Vf~ @@IMFLtI%)$IJI$SǎO׶5L,x^`%x\];2Yp.%%>i;PtӹsT4k.K}C'4dkaյ%6 Bt@)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$$I)I$JRI$I$TI%)$IJI$RI$cRV;"4pJRI$I$$I)d7rS$ ƬPI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$TI%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$I%)$IJI$RI$************************************************* * * FTM * real-time object system for Max/MSP * * Copyright 2004 IRCAM - Centre Pompidou * _________________ RELEASE NOTES for FTM 2.2.0 BETA (July 13, 2007) FTM classes: - normalized messages to FTS objects (fill, clear, zero, set, get) - completed set-methods between classes fmat, fvec, mat, dict, bpf and sequence - The expression "(info functions)" now prints a complete list of functions with a short description. - ftm.editor object added (editor for ftm classes: at the moment just bpf and track of fmat); VERY EXPERIMENTAL!!! FTM expression evaluator changes: - The functionalities in expressions for the following cases have been unified: - assignment of objects and expression-private variables, e.g. ($x = ...) - assignment of object elements, e.g. ($x[0] = ...) - increment of objects with '+=', '-=', '*=' and '/=' of objects and expression-private variables, e.g. ($x += ...) or ($x -= ...) - increment of object elements, e.g. ($x[0] += ...) or ($x[0] += ...) - binary operators, e.g. ($1 * 0.5 + 3 / 2) - In all cases apply the following rules: - the '+' and '+=' operators concatenate symbols - binary division '/' always has a float result - objects can be assigned (implemented using the "set" methods), e.g. ($myfmat = $yourfmat) - fmats can be incremented ('+=', '-=', '*=', '/=') (implemented using the methods "add", "sub", etc), e.g. ($myfmat += $yourfmat) - fmats can be used in binary operators ('+', '-', '*', '/') (implemented using the methods for "add", "sub", "bus", etc), e.g. ($myfmat + $yourfmat * $hisfmat) Gabor: - Added MFCC to gabor: - gbr.bands modified: there is now several mel bands modes - gbr.dct added: discrete cosine transform - gbr.lifter added Bug fixes: - fixed clear method for fmat (was declared for number argument instead of void) - vecdisplay: fixed crash on fvec input - fixed gbr.paste and gbr.ola~ for fvec _________________ RELEASE NOTES for FTM 2.1.4 BETA (June 8, 2007) Gabor: - addpartials: added amp and phase inlets also with @format fa and ifa. - new tutorial patches. Gabor known bug: - At the moment the interpolation (option "@interp on") of gbr.paste (with gbr.drain~) and gbr.ola~ generated clicks (will be fixed as soon as possible). _________________ RELEASE NOTES for FTM 2.1.3 BETA (June 1, 2007) - ftm.vecdisplay: fixed memory leak (for vecdisplay running when not visible) - new object mnm.fftfilter - new example in MnM: gesture_follower - other several minor bug fixes _________________ RELEASE NOTES for FTM 2.1.2 BETA (May 4, 2007) - fixed major java bug. - other several minor bug fixes _________________ RELEASE NOTES for FTM 2.1.1 BETA (April 24, 2007) - This is a "very experimental", but complete (with Gabor and MnM), release. - Installation has changed, so please read at README for more details _________________ RELEASE NOTES for FTM 2.1.0 BETA (April 20, 2007) - This is a "very experimental" release. This release contains FTM externals only (not Gabor and MnM). - Java and JavaScript support has to be installed with the FTMJava.mpkg installer. _________________ RELEASE NOTES for FTM 2.0.0 BETA (November 17, 2006) Misc changes - objects are now send with a ftm_object message instead of "ftm.obj" (permitting JavaScript support) - new functions "getid" and "getobj" (permitting JavaScript support) - print outs of unnamed objects to the Max console don't use pointer addresses any more but always object ids (generated on the fly when necessary) - more objects (still not all) have assist strings for inlets and outlets (see FTM external API below) - FTM externals (using the FTM external API) accept full FTM expressions as arguments - externals with an invalid argument expression show an error message instead of the assist string when passing over the inlets or outlets - in case of an error in the argument expression, the external will be instantiated without any arguments - all arguments are reevaluated each time the definition of a name used by the expression (with $-suffix) changes - loadbang now works properly in new patches (see ) - old patches work as before (using delayed loadbangs or ftm.mess with loadbang flag set) - loadbang of old patches work properly after having been saved and re-loaded ones using this new version of FTM - ftm.mess automatically tries to add missing parentheses and slightly cleans up the message description - several FTM external have been re-implemented - the ftm.mess initialization arguments (set via the inspector) are now parsed correctly (concerning abstraction arguments and name definitions) - added ftm.guilistener object: listener for click/selection events in java editors _____________________________________ FTM external API - positional external arguments are now declared in the class definition - arguments can be declared one by one with a default value - alternatively a single varargs method can be declared to set and update the arguments - all fts_init_arg_... functions have been removed (code using the old API has to be updated) - standard FTM externals should not have a variable number of inputs or outputs (can not depend upon expressions using names) - all declarations in the class definition now require a doc string as last argument (code using the old API has to be updated) - doc string of argument, attribute, and message declarations are not retrievable and not used yet (automatic documentation planned) - inlet and outlet declarations are used by a hidden mechanism implementing a generic "assist" method _____________________________________ Max/MSP file format concerning FTM externals - descriptions of FTM externals now include a special syntax concerning the scope using "<--" (permitting a correct functioning of the loadbang) - "_#aa" messages have been replaced by a single "_#absargs" message (after _#scope begin) BUG FIXES: - fixed bug opening files with special characters (as , , , ...etc.) in name or path. - ftm.vecdisplay: fixed bug resizing vecdisplay with history open, history_height is now clipped to the vecdisplay height. This fix corrupted vecdisplay generation saving patch. _________________ RELEASE NOTES for FTM 1.7.7 (August 1, 2006) - added ftm.sqlite external for database access - added fvec fill with list and expression - fmat setrow, setcol, append now accept tuple BUG FIXES: - ftm.mess: fixed crash on #set when ftm.mess is in a closed sub-patcher - final fix for marker tracks and events - fixed fmat/fvec env interpolation with fmat - fixed undo bug in track editor - fixed scroll problem adding an event in track - fixed popup trigger with right button - BETA MACINTEL: fixed editing bug in ftm.mess MnM: - added mnm.hist external to calculate histogram of matrix elements KNOWN BUGS for Gabor - gbr.trace crashes KNOWN BUGS for FTM 1.7.7 BETA for Max 4.6 PPC: - The gabor objects in this release only work in MAX 4.6. Everything else works in MAX 4.5 and 4.6. KNOWN BUGS for FTM 1.7.7 BETA for Max 4.6 MACINTEL: - gbr.psy~ crash at dsp on... _________________ RELEASE NOTES for FTM 1.7.6 (July 5, 2006) - java client is no more loaded at startup, but at first opening of a java editor. - fmat editor can deal with very long sound files. - several minor bug fixes KNOWN BUGS for FTM 1.7.6 BETA MACINTEL: - gbr.psy~ crash at dsp on... - ftm.mess, ftm.object editing bug. KNOWN BUGS for FTM 1.7.6 BETA PPC: - The gabor objects in this release only work on MAX 4.6. Everything else works in MAX 4.5 and 4.6. _________________ RELEASE NOTES for FTM 1.7.5 (May 5, 2006) - scoob track chordseq import/export in SDIF - MnM. New mnm.nmd object (OSX version only): Non-Negative Matrix Decomposition (NMD) using Sparseness Constraints: This object is destined for realtime decomposition of an incoming vector (fmat, first inlet) using known template structures (matrix fmat, second inlet) with a normalization factor that can be controlled in realtime (number, 3rd inlet). It can be used for mapping of an incoming signal to "known" templates that are shown once to the object in the second inlet as a matrix. Note that both the input vector and templates should contain non-negative values. Other controllable parameters include: @sH : between 0 and 1, the sparsity measure @criteria : the error criteria (default is 0.01) @maxiter : Maximum number of iteration used at each instance (default is 100) As application examples, the object can be used to recognize instrumental templates or multiple-pitches of known pitches of an instrument in realtime. One application is described in: Arshia Cont, "Realtime Audio to Score Alignment for Polyphonic Music Instruments Using Sparse Non-negative constraints and Hierarchical HMMs", in IEEE International Conference in Acoustics and Speech Signal Processing (ICASSP), May 2006. - bug fixes: - ftm.mess and ftm.object: editing bugs in windows version _________________ RELEASE NOTES for FTM 1.7.4 (April 19, 2006) - expressions: - added tail reference $| (remove first from list) - added binary and/or - added logical "not" function, because (! ...) is a syntax error - added function checkversion to test for minimal ftm version - added fmat method find - added mat row method to change number of rows - SDIF support: - added ftm.sdif.write, ftm.sdif.info objects - track import/export complete for float, fmat, dict, marker tracks - first sdif help patches and summary ftm.sdif.help - bug fixes: - fixed editing bug when java editors opened (after close and reopening editors) - ftm.record.c: fixed bug: events right after start didn't record - ftm.vecdisplay: fixed bounds change bug on windows platform - fixed bug on post with marker (track) - externals now have the bundle bit set (on some installations, they showed up as directories) Gabor Version 2 Release Notes: - Gabor can now run without "Scheduler in Audio Interrupt"!!! - added object gbr.fire~ (gabor synced metronome) - added gbr.mask object - added gbr.morph and gbr.trace _________________ RELEASE NOTES for FTM 1.7.3 (February 01, 2006). - introduced fvec java editor - this release replace the previous release in which some MnM objects were missing. _________________ RELEASE NOTES for FTM 1.7.2 (January 13, 2006). - introducing: FTMlight: - shouldn't change anything for the full FTMlib (to be verified in detail) - has only the "most important" services of FTM (to be discussed) - all file access removed and concentrated into separate C-modules (.c/.h) - "connects" to another running FTMlib or FTMlight (of the same major version) via the new sharing mechanism (to be perfectionized) - towards a "modular" and light FTM - introduced global FTM system values $FTM.audio.sr and $FTM.audio.vs, which are automatically updated when runtime environment (e.g. Max/MSP) changes the sample rate or signal vector size - removed sample rate field and "sr" access methods from fmat/fvec - made fmat and fvec methods that use log 0-safe (no more NaN or underflow) - fmat soundfile import: complete import arguments (channel ignored for the moment) no arg or 0 or string mean: all/as is - cumsum method: cumulative sum on fmat/fvec in place - changed FTMInit.sh script to deal also with paths containing spaces... _________________ RELEASE NOTES for FTM 1.7.1 (December 14, 2005). - ftm.mess: on evaluation error, print expression and containing patcher - mat, fmat, fvec: methods "set" to copy from track with columns time, content - completed fvec methods (copy function, change onset, size, sr) - mat: added initialisation from atom list _________________ RELEASE NOTES for FTM 1.7.0 (December 2, 2005). - introduced shared pointers between multiple versions of FTM loaded - added FTM startup/splash_screen - fixed crash on reopening patch after loading corrupt sdif file: - fvec: - new method prod to get product of all values - changed init arg parsing: no argument gives empty column fvec - added messages get (gets referenced fmat), sort and sortrev to fvec class _________________ RELEASE NOTES for FTM 1.6.4 (September 29, 2005). - fixed very bad bug in messages dispatcher, responsible of recurrent crashes difficult to reproduce. - fix in gbr.slice~ init. - other several minor bug fixes _________________ RELEASE NOTES for FTM 1.6.3 (August 03, 2005). - multitrack editor: - fixed save track editor state in multitrack; - delete of events from table view (with Apple+BACKSPACE); - track editor: - range is saved in float/int track; - range max and min moved to float; - all actions on track properties, moved from popup menu to a track inspector dialog. The inspector is opened from the track popup menu. - dict & mat editors: DoubleClick on the cell is needed to open editors of objetcs contained in a dict or mat. - gabor: - added new objects gbr.autox, gbr.cossx and gbr.bands (to be documented) - gbr.fft, gbr.ifft: introduced new (altivec implemented) FFT routines - other several minor bug fixes _________________ RELEASE NOTES for FTM 1.6.2 (June 28, 2005). - fixed bug of missing local scope in abstractions (scope was surrounding top level patcher) - track: fixed bug in methods importas/exportas (didn't work properly for files without extension) - track editor: several bug fixes concerning markers - ftm.copy works now for track - ftm.print works as before - SDIF support is progressing: - new object sdif.info gives the duration, a summary of the data, and header information from an SDIF file (set , print, bang) - import/export SDIF to fmat track - import SDIF into track of dict of matrices per frame - import labels and frame times to marker track - give definition of private types at end of export message - non-crashing when importing corrupt sdif files (\n -> \r\n) - files are found on max path - later: scoob track: import chordseq from audiosculpt float or int track: import first selected matrix element _________________ RELEASE NOTES for FTM 1.6.1 (June 10, 2005). - this release works on OSX 10.4 - several bug fixes in ftm.mess and ftm.object editing _________________ RELEASE NOTES for FTM 1.6.0 (May 12, 2005). - new features for FTM message box (ftm.mess): - multiple inlets - loadbang - initialization values for $-arguments ($1 $2 ...) - trigger mode (left inlet / all inlets) - bug fix in text import for fmat - code restructuring for portability _________________ RELEASE NOTES for FTM 1.5.2 (April 25, 2005). - ftm.vecdisplay finalized. - minor adjustments to the FTM API - fixed bug in recursive saving - track: implemented methods markers to get and set marker track (replaces getmarkers message) - fixed multitrack dump - other several minor bug fixes _________________ RELEASE NOTES for FTM 1.5.1 (April 13, 2005). - import/export distinguishes file types by extension, importas/exportas take an extension or type as first argument to force a type - use import - args... to choose a file interactively and pass arguments to the import handler - libsndfile is used for audio import/export to fmat - SDIF import/export fixed, files are found in Max search path or on absolute path - introduced track and channel selection for MIDI file import - use new fmat messages colref, rowref, diagref to get fvec references - use new fmat messages setrow, setcol to set an fmat row/col from a list, fvec, or fmat - fmat messages col, row are deprecated - renamed fmat/fvec ee message to more common eq, leave ee for now as deprecated - added fvec message to set/get sample rate and persistence for sample rate - new functions: mod (modulo), case, if (n.b.: all arguments are evaluated!) - the usual bug fixes _________________ RELEASE NOTES for FTM 1.4.1 (March 21, 2005). - object.c: fixed argument passing in impot/export via file chooser - seqmidi.c: now deleting scoobs with 0-duration in MIDI import - added channel and track selection to MIDI file input - extended dict to accept anything as key - removed unused equal functions of several classes (everything but primitives and tuple is hashed by its pointer) - renamed "sequence" class to "multitrack" (addidng "sequence" alias) - fixed tuple representation in Java table editor (removed name) - added mehods next and prev to ftm.tween - other several minor bug fixes _________________ RELEASE NOTES for FTM 1.4.0 (March 01, 2005). - the classes fcol and frow have been replaced by a new fvec class (see help patches) (the related fmat methods and externals should work as before) - fixed problem of import of MIDI files into track objects - this release contains the Gabor package and the first externals of MnM - several minor bug fixes - updated help patches _________________ RELEASE NOTES for FTM 1.3.3 (February 14, 2005). - fixed text parsing bug in ftm.mess (bug introduced in the previous release) - various bug fixes in fmat object: --> fixed access to empty matrix: no error, just return 0 --> fixed row index wraparound --> zero rest of partially initialised fmat _________________ RELEASE NOTES for FTM 1.3.2 (February 10, 2005). - allow multiple indexing syntax, e.g. $mydict[a][0 1][2 3] - access marker track of a scoob track with markers method - import text labels (as exported by audacity) into marker track - fixed crashes in ftm.mess during multi-lines text editing and paste of very long text - fmat, mat, dict: fixed bug in editor refresh when using ftm.copy _________________ RELEASE NOTES for FTM 1.3.1 (February 4, 2005). - implemented mat method set from other mat - removed bogus error messages from SDIF import/export, fixed framespec bug - bug fixes in ftm.mess and Mat editor _________________ RELEASE NOTES for FTM 1.3.0 (January 25, 2005). - introduced ftm.buffer object, fmat interface to Max/MSP buffer~ (see ftm.buffer.help) - removed fmat format from fmat and all related modules -> removed difference between complex vectors and matrices of two columns -> several fmat methods don't handle complex vectors as before -> introduced dedicated complex methods with leading 'c' (cabs, cexp, clog, etc.) -> method "polar" converts two-column matrices from complex rectangular to polar format -> method "rect" converts two-column matrices from complex polar to rectangular format - various minor bug fixes _________________ RELEASE NOTES for FTM 1.2.1 (January 20, 2005). - fixed ftm.list version confusion - various minor bug fixes _________________ RELEASE NOTES for FTM 1.2.0 (January 18, 2005). - first FTM release in Mach-0 format - import and export of SDIF matrices to a track of type fmat with messages import [filename] [frame-specification...] export filename frame-specification - added ftm.tween and ftm.inter externals (doc missing) - revised and added help and first tutorial patches _________________ RELEASE NOTES for FTM 1.1.0 - added sqrt and pow functions _________________ RELEASE NOTES for FTM 1.0.1 (October 25, 2004) - implemented "append bar" and "make_trill from scoobs" in track - several minor bugs have been fixed - added ftm.class help patches _________________ RELEASE NOTES for FTM 1.0.0 (October 15, 2004) - added persistency of markers in track - implemented tempo change in markers - several minor bugs have been fixed _________________ RELEASE NOTES for FTM 0.12.1 (BETA, October 4, 2004) - several minor bugs have been fixed in ftm.vecdisplay - fixed persistency bug for objects containing tuples (mat, dict...) _________________ RELEASE NOTES for FTM 0.12 (BETA, September 30, 2004) - some basic objects doubling functionalities of the message box have been removed (ftm.get, ftm.invoke, ftm.send) - ftm.tolist has been renamed to ftm.list - ftm.live has been renamed to ftm.schedule (no doc yet) - ftm.iter init syntax is now @mode (elem|row|col|frow|fcol|tuple) - the outlet of ftm.vecdisplay have been finalized - editors of mat, dict now display included objects correctly - several minor bugs have been fixed (This version of FTM is meant to be the last version of FTM in Carbon CFM binary format - future releases will use the Mach-O native OS X binary format) _________________ RELEASE NOTES for FTM 0.11 (BETA, August 30, 2004) - ftm.object now defines as well constants (any expression) and can refer to any (locally or globally defined) name - ftm.define is deprecated (please use ftm.object instead) - FTM now implements a complete object serialization for ftm.object and the objects contained by and FTM object defined with ftm.object: when marked as persistent (save with patcher) the content of an FTM object is properly saved/loaded, copied/pasted and restored by undo - the file format for Max patches containing FTM objects changed (compatibility with older FTM Max patches will be provided for some month) - abstraction arguments (#0, #1, #2, etc) in ftm.object (expression and name) and ftm.mess are replaced when loading a patch as abstraction - names defined with ftm.object stay local by default - the scope of a ftm.object name definition can be toggled between local and global with alt-shift-click on the name field in the right of the object box in an unlocked patcher - the ftm.object name definition can be edited directly in the display field on the right of the object box - ftm.object persistence can be toggled with alt-shift-click on the left side of an ftm.object box in an unlocked patcher - the FTM objects dict, mat and fmat have a simple editor allowing to access contained objects recursively (double click on ftm.object) - copy and paste of text between any Max/MSP object and ftm.object or ftm.mess is fixed - new functions int (or i), float (or f), print, floor and ceil were added - unicode accents in ftm.object and ftm.mess are now displayed correctly - several bug have been fixed (fmat aiff import, closing Java editor windows with command-w, etc.) _________________ RELEASE NOTES for FTM 0.9 (BETA, June 15, 2004) Changes mainly introduce several new methods for fmat and track classes and minor bug fixes. The track now can display bars and tempo changes (import from standard MIDI files for scoob tracks). FTM externals from now on check for a specific FTM version. 9.1 : bug fixes in fmat methods (exp, log) 9.2 : bug fix in gui communication (was crashing on certain GUI actions such as deleting scoobs from a track) _________________ RELEASE NOTES for FTM 0.8 (BETA, April 15, 2004) - FTM supports now global and local scopes for names. - For ftm.object the scope of a named FTM object is set via the inspector (see help patch ftm.object.help). - With ftm.define a new object was included to the set of FTM externals. This object allows the definition of constants (simple values and tuples associated to an FTM name in local or global scope - see help patch ftm.define.help) and mainly was introduced as a straight forward way to define FTM names from the arguments of an abstraction (#1, #2, #3, etc). - Numerous minor fixes and extensions are not mentioned in these release notes. _________________ RELEASE NOTES for FTM 0.7 (BETA, March 16, 2004) Yes, it's already number 7 but actually the second one released to the public. While the first public release (6) was labeled "version I" this one is correctly marked as BETA. The following releases will stay BETA until we think one really serves to be I. The only but important change of this release is that the FTS message box (ftm.mess) references the arguments (elements of the incoming list) starting from 1 ($1, $2, $3, etc.) just like the traditional Max message box and not from 0 as is was still in release 6. GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary Lesser General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our Lesser General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU Lesser General Public License. This license, the GNU Lesser Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary Lesser General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary Lesser General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" Lesser General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary Lesser General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU Lesser General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU Lesser General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU Lesser General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary Lesser General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! pmaxqv2r#Nsvpatcherrabt#PuoriginVtvwindowwsetfontxSans Serif$AtvylinecountRtzcomment[d {ignore|this}track~forthe1LCD1exampletvyQt1newexa2 1t1l1t1PP 1speedlimZt1S$Q 1loadmess1localPt1toggle=_Pt1S2 1s11_Startt1user1ftm.messyG_SYPPPQRPP1-->P1#T1_#ftm1 versionRR11!_#scope1"begin11#_#absargs$0_%1_&2_'3_(4_)5_*6_+7_,8_-9_11._#line1/_($1 div 256.)rsXtuPtvwx$AtvyQt1?: 10sel11Updatet1*l 12r131_FollowerDatabase14#B15colorUt1S2 116b16t1|S 17mnm.winfilterTt1S 17Tt1~ 18*$?t19flonum PYPPPSPPPPPPt1:inlet(_Pt19#YPPPSPPPPPPt1 1;>$t11XY_SYPPPQRPP1Q11.1<_(($1 sqrabs)sum)r1=ftm.copy1>fmat1Qt1?newobjCI 1=1>t1j, 1@ftm.listtzMF 1Afiltered1Bdatatza 1C1st1Dderivate1Eof1Bt1|K 111t10; 111t1i 1Fgatet1 1Ft1Z 1Gmnm.derivate$ At1Hmessageh  1Icleart1Joutlet_Pt1Ji_Pt1:|+_PtvyRtz(n 1Kstop1B1Lflow1Mif1B1Nvariation1Ois1Plower1Qthan1Ra1Sgiven1Tthresholdt1Ufasten_PWPnt1VconnectWPRPt1VTPPt1VQPPt1VPYPt1UYPWQ))t1VPPt1VPPt1VPTPt1U_PVPt1VVPSPt1VYQUPt1VTPUPt1VUPPt1VTPPt1VPXPt1VXPVQt1VXQ]Pt1V]P^Pt1V^P\Pt1V\PPt1VP_Pt1VP_Qt1VPPt1VPPt1Wpopt1?Y 1Xp1Ypreprocesst1$ 121Zlcdt1dI 1[mnm.list2rowt1_ 101\StartLearn1]StartDecodet1_J 121^1_WhatToDot1H$# 1IrsYtvwx$AtvyQt1vK 1$BtvyPt1B? 1$@@tvyQtzA 15r1_comlet1`Liste1aX1b,1cYt1:*0_Pt1*e2 1dunpack1ei1et1fnumberud#YPPPSPPPPPPr1_1gCouleurt1:0_Pt1H* 1hPaintOval1i$11j$21k$31l$41m$5t1* 1npack1e1e1e1e1etvw1oHelvetica$At1R 1p-t1z 1q+t1* 1pt1 1qt1f#YPPPPPPPPPr1_1rMessage1ht1J*_Pr1_1sTaillet1:u0_Ptvwx$AtvyPtz'  1tcopied1ufrom1R1vpatch1wby1xEmmanuel1yFlty1z!tzUA 1{size1E1|circlet1V^P]Pt1V]PVPt1VVPYPt1VYPZPt1VZPSPt1V\PVQt1V]QXPt1VXPYQt1V\PXQt1VRP\Pt1VP\Pt1U]PWP/t1VWPYRt1V\PWQt1U]QUPWt1VUPYSt1V\PUQt1U[PTPt1VPTPt1VTPYTt1Wt1?$I 1X1}DrawCirclet11Z7PQPPPtzm 1~using1velocities1in|1tvwx$`Atz :~1use11or...141frgbPPtvwx$Atzo 1normalized1betweenP1andQ141PPrs.rtvwx$@AtvyPtz^ 1The1v1requires1FTM1(http://ftm.ircam.fr/index.php/Download)tzl 1more1on1http://ftm.ircam.fr/index.php/Gesture_Followertvwx$AtvyRtz 1remarks:1p1section1f1allows1you1to1record1R1different1set1E1gestures1(and1recall1them)1(the1decoding11sections1are1totally1independent)tz' $@@1display1real time warping1directlyshowsthe1results1E1time-warping1E1gesture11likeliest1tz'g $@11"index"1shows1where you are in the gesture1b1like1R1(vertical)1progress1bar.1(try1first1~1only1one1gesture)tvyQtz&L 11highest1bar1corresponds1thus111tvyRtz&0 $?111"likelihood"11values1which1indicate1how1near1performed11O11each1recorded1reference1tvyQtz& $@1Start...Stoptz& $?1red1button1should1be1offtvwx$@Atz_ 12)11recognize/follow1tvwx$Atz( $@@1change1phrase number11repeat|1step1with1another1gesture.tvyStz1y 1Attention:111~11b1start/stop1O1automated11mouse1up/down1u11ztvyQtz'h $@1press1start1b1play111stop.tvwx$@AtvyPtz]5 11)11R1gesturetvwx$Atz'X 11-1111(learn).1This1arms1recording1(it1doesn't11anything1yet)tvwx$@AtvyQtz& 11see11b1activate1all1displays1b1there1111w1defaultt1Wt1? 2 1X1help1415Utvwx$`Atzo1HERE141PPtvwx$At1nI 1[tvwx$`Atzo1input1list1(any1length)141PPt1bpatcheru?1mnm.follower.graphs.patPQQRPt1 1mnm.follower.markers.patPQQRPt11aH2_SYPPPQRPQ1P11.1_$initt11ftm.objectG SY1P11_#objQ1dict11_#messQ11_LHthreshold$11Q11_SectionP11Q11_Contrast$?11Q11_StdDev$=11Q11_PhraseP11Q11_CyclicQ11Q11_Resample$@11_#defQ2_dict2init1tvwx$At1a\w 2mnm.follower.initQt1a3y 2mnm.follower.databaseQt1 11Zt11aa_SYPPPQRPP1P11.2_(($1 add 1.) div 2.)t1/ 1@t11I_SYPPPQRPP1P11.2_($1 mul 256.)r1=1>1P11!2endt1?J 1=1>t1ay 2mnm.follower.hmmQ1415Vt1a6@2mnm.follower.monitor.patPQt1 6AP2 mnm.follower.gui.patPQt12 panel^x2 #X2 brgb2 1PPP2 2 borderP2 2roundedP2 2shadowP2 2donetz(\ 2Frederic2Bevilacqua12collaborators1b2Real2Time2Musical2Interactions2Teamt2backgroundtz (m 2Gesture2Follower2v0.2t2tz(n 2http://ftm.ircam.fr/t2t1VYP[Pt1VPPt1VPPt1VQPt1VPPt1UPP44t1V$PPt1VP%Pt1V%PPt1VP!Pt1V!P Pt1V PWPt1VWPXPt1VXPYPt1V QZPt1VZP&Pt1VP&Pt1V&PVPt1V_P]Pt1VPPt1VR#Pt1V#P"Pt1V&QPt1V&QPt1Wpmaxqv2r#Nsvpatcher=3t#Puoriginhtvuserwftm.mess>_SYPPPQRPPx-->Py#Tz_#ftm{versionRRy|_#scope}beginy~_#absargs0_1_2_3_4_5_6_7_8_9_y1_#line1_($1 set $2)t1window1setfont1Sans Serif$At1newexk2 1t1 l1!bt12 1"ftm.clonetvwj_SYPPPQRPPxPy11#_$emptygestures[0 0]tv1$ftm.objectd SYxPy1%_#objQ1&maty1'_#messQ1(sizeQRy1%R1&y1'R1(QQy1%S1)dicty1%T1*fmaty1'T1(QRy1'T1+setPP$?$?y1'S1+1,_markers1-_#4y1%U1*y1'U1(QRy1'U1+PP$$y1'S1+1._enveloppes1/_#5y1%V1*y1'V1(QQy1'V1+PP$?y1'S1+10_Pi11_#6y1'S1+12_NQy1%W1*y1'W1(QQy1'W1+PP$>y1'S1+13_Bstddev14_#7y1'S1+15_MQy1%X1*y1'X1(QQy1'X1+PP$y1'S1+16_Bmean17_#8y1'S1+18_Pself$?y1'R19rowP1:_#3y1%Y1*y1'Y1(QQy1'Y1+PP$y1'Q19P1;_#21<_#9y1=_#defQ1>_mat1?emptygestures1@localt1Anumber5#YPPPSPPPPPPtvwTSYPPPRTPPxPy11B_($gestures[$2 0] rows ($4 + 1));y11C_($gestures[$2 0] set $3 0 $1)tv1$d SYxPy1%Z1&y1'Z1(QRy1%[1&y1'[1(QQy1%\1)y1%]1*y1']1(QRy1']1+PP$?$?y1'\1+1,1D_#13y1%^1*y1'^1(QRy1'^1+PP$$y1'\1+1.1E_#14y1%_1*y1'_1(QQy1'_1+PP$?y1'\1+101F_#15y1'\1+12Qy1%1*y1'1(QQy1'1+PP$>y1'\1+131G_#16y1'\1+15Qy1%1*y1'1(QQy1'1+PP$y1'\1+161H_#17y1'\1+18$?y1'[19P1I_#12y1%1*y1'1(QQy1'1+PP$y1'Z19P1J_#111K_#18y1=Q1>1Lgestures1@rsot1Moutlet_Pt111$At1Nmessageg3! 1+Ptvw2qu_SYPPPQRPPxQy11O_((new fmat 1 $1) fill 1)t12G2 1Pchanget1A2\#YPPPSPPPPPPtvw222_SYPPPQRPPxQy11Q_($1 [N])t1Rinletg_Pt1R2_Pt1M2_Pt1SconnectQPSPt1SWPUPt1SSPUPt1SUPTPt1STPVPt1SVPPPt1SRPWPt1STPXPt1Tpopt1Unewobj Y 1Vp1Winit_weightt13f" 1P1!rst1M6#_Pt111$At1A#YPPPSPPPPPPt1R#K_Pt11XlinecountPt16{2 1YiPt1R^M_Pt1R~M_Pt11XQt162 1Ptvw|_SYPPPQRPPxQy11Z_(($gestures[$2 0] rows) - 1)t1N~z^ Pt1A6#YPPPSPPPPPPt16r 1[if1\$i11]>1^$i21_then1\t1`comment\C 1aphrasespt1RN_Pt1SPPYPt1SYPRPt1STPSPt1SRPSPt1SSPVPt1SVP\Pt1SXPYQt1SWPTPt1SPPUPt1SUPRQt1bfastenSPRQ;t1STPRQt1SUP[Pt1SZPUQt1Tt1Uu 1V1csize_phrasers"bzt1M6_Pt1RGO_Pt111$At1Am#YPPPSPPPPPPt11XPt16{2 1YPt1R^M_Pt1RN_Pt11XQt162 1Ptvw|r_SYPPPQRPPxQy11d_(($gestures rows) - 1)t1N|^ Pt1A6#YPPPSPPPPPPt16r 1[1\1]1^1_1\t1`C 1esectionspt1RN_Pt1SPPYPt1SYPRPt1STPSPt1SRPSPt1SSPVPt1SVP\Pt1SXPYQt1SVPZPt1SWPTPt1SPPUPt1STPRQt1bSPRQ;t1SUPRQt1Tt1U&N 1V1fsize_sectiont1|Q 1gsh1_Gestures1i#B1jcolorUt1@a0 11!1!1!1!t1@JV 1ksel1lUpdate1mbangtvww_SYPPPQRPPxPy11n_($gestures set $2 1 $1)tvw\_SYPPPQRPPxPy11o_($gestures[$1 1])t1A 1gp1_Weight1i1jUt13H 1gq1_Phrase1i1jUt1=H 1gr1_Section1i1jUt1J 1srp1i1jUt13Oa 1k1tCleart1`* 1u1st1v=Pt1=A 1k1tt137A 1sq1i1jUt1=)H 1sr1i1jUt1@2q 1sw1_FollowerDatabase1i1jUt11XRt1`<a 1xclearing1a1y(emptyHMMs)t11XQt1`* 1zphraset1`* 1{sectiontvwU_SYPPPQRPPxPy11|_($gestures[$2 0] rows 1)t1=X" 1P1!tvwUx_SYPPPQRPPxPy11}_($gestures set $emptygestures)t11XRt1`oX+ 1x1{t1A#YPPPSPPPPPPt11XQt1`* 1u1vPt1O 1s~1_newHMM1i1jUtvwV\_SYPPPQRPPxPy11_($gestures[$1 0])y|1endt1A 1gс1_HMMs1i1jUt1A#YPPPSPPPPPPt1S^PPt1SPXPt1SXPPt1SXQWPt1bXPUPBqqt1SQUPt1SQUPt1bUPPt1lcolorXt1SPPt1SPPt1SPPt1bUPQzt1Xt1bUPRPt1Xt1SRPQPt1S!PQPt1S'PQPt1SSPPt1bUPPt1Xt1SXQQt1Tt1SSRt1SQQt1_t1SXQQt1Tt1SQSt1SSP!Pt1bUP!Q*t1Xt1S_PPt1SPPt1SPPt1]t1SPPt1SPP!Rt1bPPP8t1SQPPt1SPPPt1SPPPt1SP"Pt1S"P!St1SQQt1_t1SXQQt1Tt1SQYPt1_t1SYP&Pt1S&P'Pt1SRRt1S&Q$Pt1S$P%Pt1S%P'Qt1bUPSt1Xt1bUPYQ.t1Xt1S]PPt1SPPt1SQ Pt1SR Pt1S PPt1Tpmaxqv2r#Nsvpatchert#Puorigin3tvsetbglockQtwwindowxsetfontySans Serif$Atzhidden{newex_!2 |r1_Init~#BcolorUtz1flonum#YPPPSPPPPPPtz1user1ftm.mess+/`_SYPPPQRPP1-->P1#T1_#ftm1versionRR11_#scope1begin11_#absargs0_1_2_3_4_5_ 6_!7_"8_#9_11$_#line1%_(($1 / 600.) * $2)tz11/`_SYPPPQRPP1P11$1%tz1&number+#YPPPSPPPPPPtz1&#YPPPSPPPPPPtz{+w 1'unpackrs,,tuV(t1(inletQ_Ptwxy$At1&f#YPPPSPPPPPPt11'L2_SYPPPQRPQ1Q11$1)_600tw1*linecountPt{Rb2 1+t1,b1-itw1*Qt{ 1.*rsJBnt1(jA_Pt1/outletn_Pt1/_Pt1(D_Ptwxy$At{oL 10gateRt11connectPPSPt11QPPPt11TPPQt11PQRPt12popt13newobj5 14p10RrsZ;itwxy$At{s 15+Qt1/s7_Pt1(sI_Pt{s 16/Rt{s 15Qt{s4 15t{ 1.St{s2 17changet{sm^ 18modifierst11VPPPt11PPSPt11SPTPt11TPUPt11UPXPt11XPQPt11QPWPt11PRRPt11RPSQt12t13< 1418t{ 1+1,1-t{S 1+1,1-t{, 1.t{M 19!-t{ L 1:clipPt{ 1;-t{' 19t{zL 1:PrsJBnt1(jA_Pt1/n_Pt1/_Pt1(D_Ptwxy$At{oL 10Rt11PPSPt11QPPPt11TPPQt11PQRPt12t13 y 1410Rt{  1;t{z3 15t{ 3 15t{U' 19t{-2 1_Pt1/n_Pt1/_Pt1(;_Ptwxy$At{o 10St11PPSPt11QPPPt11PQRPt11TPPQt11PRUPt12t13+ 1410St{+ 1+1-1,rst1/v _Pt1(<_Pt1(UB_Pt1=buttonq_Ptwxy$At1>message^ Pt1>v^ Qt{vt 10t11SPQPt11QPPPt11RPPPt11PPVPt11PPRPt11UPSPt11TPPQt12t13z2 141?oneshott112_2YPPPQRQQ1Q11$1@_0t1/9_Pt{+P 1;Rt{+Y 1+1-1-t11 _YPPPQRQQ1Q11$1A_clear, paintrect ($1 + 1) 0 ($2 + 2) 10 128 128 128t1/ 9_Pt1(R_Pt1(+Q_Pt1BtogglezQ_Pt{ze 15Qt11 P_PYPPPQRQQ1Q11$1C_(($2 + $1) / 2)t{z:H 1D>=t{2 1EselQPt{2 17t{+1( 1't{ y 1Fpackt11XPQPt11QP]Pt11]PPt11P\Pt11\PPt11QPt11PPt11PPt11PPt11QPt11PQt11PQt11PQt11QPt11PRt113PQt11Q%Pt11%P)Pt11P"Pt11)P"Pt11P"Pt11"PPt11PPt11_PPt11PPPt111PPPt11PPUPt11PP[Pt11[PZPt11Q+Pt11+P)Qt11Q"Qt11Q*Pt11*P)Rt11&P1Pt11Q*Qt11\QPt11PTPt11TPWPt11WPVPt11VP%Qt11%Q&Pt11P#Pt11Q#Pt111Q#Pt113PPt11#PPt11QPt11PPQt11PP^Pt11Q-Pt11Q(Pt11-P(Pt11(P&Qt11Q.Pt11.P,Pt11,PQt11SPQt11Q#Qt11-Q(Qt11UPTQt11Q'Pt11'P&Rt113P'Qt11YPRPt11RPSPt11,QQt11RPt11P/Pt110PPt11/PPt11Q$Pt11$PQt11VP/Qt11/Q0Pt11QPt11Q$Qt11Q Pt11 PRt11Q!Pt11!P Qt11PPt113P!Qt112P3Pt114P3Pt12tz13+C 141Grangedrivet11HlcdxrXZPQPPPtz1>D2 1Ixmax1J$1tz1>+C/ 1Kxmin1Jtz1>[C 1LminvalQ1Jtz1>Y@@ 1MmaxvalQ1Jtz1>X C 1LP1Jtz1>X@ 1MQ1Jtz1>XC 1LQ1Jtz1>[z@ 1MQ1Jt1Ncommentc0 1Och.t1Nb 1Otz11/2_SYPPPQRPQ1P11$1@tz1102_SYPPPQRPQ1P11$1P_1t1&X<!YPPPSPPPPPPtz11F=2_SYPPPQRPP1P11$1Q_#4t1&X!YPPPSPPPPPPtz11G2_SYPPPQRPP1P11$1R_#3t1Xd!YPPPSPPPPPPt1X!YPPPSPPPPPPtz1>XC 1LP1Jtz1>[g@ 1MP1Jt11Sftm.vecdisplayxdX\$$$?PUQ$$?UPQ$$?PPPQ$$?PS$$?PPPS$$?a{t1X!YPPPSPPPPPPt1X !YPPPSPPPPPPtz1>YC 1LQ1Jtz1>X@ 1MP1Jt11SxX\$$$?PUQ$$?PQ$$?PPPQ$$?PS$$?PPPS$$?a{t1X!YPPPSPPPPPPt1Xd!YPPPSPPPPPPtz1>[oC 1LP1Jtz1>Y.@ 1MP1Jt11SxX\$$$?PUQ$$?PQ$$?PPPQ$$?PS$$?PPPS$$?a{tz11>2_SYPPPQRPQ1P11$1T_500t1NnU= w1Usizet1&T#YPPPSPPPPPPt1&X!YPPPSPPPPPPt1NT) 1Vdisplaytwxy$@At1N:Q 1Wreal-time1Xtime1Ywarping1Z(following)t1BxT_Ptwxy$Ars^_tut1/1_Ptwxy$Atw1*Pt{Dr< 1[loadmessQt1&1#YPPPSPPPPPPt1&u#YPPPSPPPPPPrstwxy$Atw1*Pt{Z2 1E1\Cleartw1*Qt{F |]1_Likeliest~Ut{EF |^1_Phrase~Ut{@W< 1[Qt{~p" 10tw1*Rt1N0 1_pattern1&t1&\#YPPPSPPPPPPt1(~V_Pt1/~_Pt11TPRPt11QPTPt11UPTPt11WPPPt11TPPPt11VPXPt11XQTQt12t13qQ 141`phrasenumberrs<t1B}_Ptwxy$At{/ 10t{ 10t{} 10t11B_SYPPPQRPP1R11$1a_(($ch3 rotate -1) set 0 0 $1)t11_SYPPPQRPP1R11$1b_(($ch2 rotate -1) set 0 0 $1)t11}_SYPPPQRPP1R11$1c_(($ch1 rotate -1) set 0 0 $1)t11mT_SYPPPQRPP1R11$1d_($1[0 ($2 - 1)])t11fg_SYPPPQRPP1R11$1e_($ch3 append $1 $2)t11OT_SYPPPQRPP1R11$1dt112T_SYPPPQRPP1R11$1dt11&Rg_SYPPPQRPP1R11$1f_($ch1 append $1 $2)t11Gng_SYPPPQRPP1R11$1g_($ch2 append $1 $2)t1(_Pt1(_Pt1(_Pt1(_Pt1(&_Pt1(d_Pt11QPWPt11QPVPt11QPZPt11PPPt11P_Pt11_P\Pt11XPWQt11RPXPt11XP_Qt11PPt11P]Pt11YPVQt11RPYPt11YPQt11PPt11P^Pt11[PZQt11RP[Pt11[PQt11SPXQt11TPYQt11UP[Qt12t13@ 141hch123rsFt11_SYPPPQRPP1R11$1i_(($ref3 setcol 0 $1) setcol 1 $2)t11sg_SYPPPQRPP1R11$1j_($1 colref ($2 - 1))t113SYPPPTRPP1R11$1k_($ref1 size $1 2);11$1l_($ref2 size $1 2);11$1m_($ref3 size $1 2);11$1n_(($indices size $1 1) fill (new expr '($row)'))twxy$At1&#YPPPSPPPPPPt{WA |o1_HMMs~Ut{c 1+1,1-t11y;_SYPPPQRPP1R11p_#init1q_bang11$1r_($1[$2 0])t118_SYPPPQRPP1R11$1s_($1 rows)t11F_SYPPPQRPP1R11$1t_($1 [Bmean])t11|_SYPPPQRPP1R11$1u_(($ref2 setcol 0 $1) setcol 1 $2)t11Ugg_SYPPPQRPP1R11$1jt11P_SYPPPQRPP1R11$1v_(($ref1 setcol 0 $1) setcol 1 $2)t119;g_SYPPPQRPP1R11$1jt1(X_Pt1(W_Pt1(X_Pt1(H_Pt1(H_Pt1/_Pt11QP\Pt11]P\Pt11^P\Pt11\PZPt11ZP[Pt11[P_Pt11_PPPt11RP]Pt11_PPt11PWPt11]Q\Qt11PYPt11PPt11ZPVPt11VPWQt11ZPXPt11XPYQt11ZPPt11PQt11SPVQt11TPXQt11UPQt12t13 141wref123t{@ 10t1B@_Pt11W'SYPPPSRPP1Q11$1x_($ref1 size 0 2),11$1y_($ref2 size 0 2),11$1z_($ref3 size 0 2)t1(:_Pt11bY'SYPPPSRPP1Q11$1{_($ch1 size $2 1),11$1|_($ch2 size $2 1),11$1}_($ch3 size $2 1)t{Hx  1EQt{Hb 1~==Pt{  1+1,1-t{ 1+1,1-t{ 1+1,1-t1>a^ Pt1>Da^ Qt1&u#YPPPSPPPPPPt1( 8_Pt11ftm.objectBSY1Q11_#objQ1fmat11_#defP1_fmat 500 21ref31localt11BSY1Q11R111P1_fmat 500 11ch31t112_SYPPPQRPP1Q11$1_$ch3t1/_Pt112_SYPPPQRPP1Q11$1_$ref3t1/_Pt1(7_Pt1(7_Ptw1*Qt1>8!2 1I1Jt1>842 1range1Jt{sr3 1+1,1,1,1,1,1,t112_SYPPPQRPP1Q11$1_$ref2t11t2_SYPPPQRPP1Q11$1_$ref1t11BSY1Q11S111P11indices1t11a2_SYPPPQRPP1Q11$1_$ch2t11%2_SYPPPQRPP1Q11$1_$ch1t{ 10t1>a^ Qt1>a^ Qt{L 1E1StartLearn1StopLearn1StartDecode1StopDecodet{8O |є1_WhatToDo~Ut11BSY1Q11T111P11ref11t11BSY1Q11U111P11ref21t1/_Pt1/a_Pt1(@6_Pt1Bu~_Pt{tT4 1metro7t1&S#YPPPSPPPPPPt11u4_SYPPPQRPP1Q11$1_size $1 1t11BSY1Q11V111P11ch11t11BSY1Q11W111P11ch21t1(i7_Pt1/t_Pt1/%_Pt11S'SYPPPSRPP1Q11$1_($ch1 size 0 2),11$1_($ch2 size 0 2),11$1_($ch3 size 0 2)t{Y5 1;Qt11@;_SYPPPQRPP1Q11p1_(new fmat 0 0) 011$1rt{S> |џ1_Index~Ut{@, 1ftm.listt{@J# 1.$?t11_P5Pt1lcolorRt115P6Pt116PSPt11SPQPt11QPPPt11PP8Pt11PP0Pt110P1Pt11RP6Qt117PTPt11TPPQt11XP8Qt11*P9Pt1Xt119PSQt11/P7Pt11.P7Pt11-P7Pt11-Q8Rt119P7Qt11.Q8St11!P-Pt11-Q7Rt11/Q8Tt11"P.Pt11.Q7St11*P8Ut1Xt11)P/Pt11/Q7Tt117P;Pt11;P=Pt11;P Pt11;PPt11]PPt11^P]Pt11P]Pt11PPt11PWPt11 PWPt11PWPt1fasten_P^PEuzut1Rt11^PPt11PPt11P4Pt11^P4Pt11PPt11P:Pt11P:Pt11:PQt11QPt11PPt11 PPt11PPt11R$Pt11$P#Pt11P#Pt11 P#Pt11RPt11RUPt111PUPt1^t11R,Pt11,P*Pt11+P*Pt11_Pt1!b?_Pt1b-K 1"enable1#recordtvyRt1&" 1$start/stoptvyQtzl^< 1%loadmessPt1&togglew_Ptzb {Qt1&by_PtzbV 1'gateRtq ; 1(StopDecodetzb) }QPtz) }QPt 3 1)StopLearnt7 1*StartLearntb? 1t1+connect^PYPt1+YPPt1+QPt1+PPt1+]PWPt1+ZPWPt1+WPXPt1+XPVPt1+VPTPt1+TPPPt1+RP_Pt1+QP_Pt1+UP_Pt1+PP_Pt1+TQUPt1+PVQt1+VQSPt1+SPQPt1+SQRPt1,popt1-newobj\P 1.p1/WhatToDotz2 10pipe$Ptz2 11delay$tzr2 10$Ptzu? 11 12ltz? 13zl14regtzs2 10$Ptz);N 15pvar16PhraseInctz&L 1517SectionInct18user19incdeccPPt1:objectname16tvwx$@At1cp1 1;phrasetvwx$AtzXZ2 101settzB? 1=1>tz,A 111Utz-A 111Ut1?flonumc#Y$'7PQSPPPPPPt1:1@Resampletz? 151Aupdatet1> 1B(0=1Cdisable)t0$ 1t1:1AtzI2 1D*$Btz2 1E/$Bt181Fhslider[_2QPPt1:1GctrasttzrX 151Gtz]F 1=1>t1Hhidden1[ @tz? 151Iopentz? 151Jsavetz? 151Kloadtzu 111UtzV? 151LLearntzX? 151MStarttz2 101NO.PtzQ 1O1_Contrast11Utz3Q 1O11Utz2 101NPtzc 11P1_LHthreshold11Utz; 1=1>tz] 1P11Utz` 151QLHthresholdtz= 1R1_Cyclic11Utz= 1=1>tz= 1R11Utz= 151SCyclictzP2 101tzA 1W11Utz;? 151XPhrasetz0 1~tzyZ 151YClearSectiontz2 101tz9R 1[11Utz? 151\SectiontzP 1]1_Resample11UtzI; 1=1>tz5Q 1]11Utz^K 151@tzQ 1^1_StdDev11UtzI= 1=1>tz6Q 1^11Utz^= 151_StdDevrs,eCtvwx$AtvyPtz21 11212tvyQt2 1`size1a$1tzb 1DRtz22 131brevtzZw {Qt181cftm.messH3_SYPPPQRPP1d-->Q1e#T1f_#ftm1gversionRR1e1h_#scope1ibegin1e1j_#absargsk0_l1_m2_n3_o4_p5_q6_r7_s8_t9_1e1u_#line1v_($1 cols)1e1h1wendtz2: 131xgrouptz22 1ypack$Ptz2Yh 1zftm.iter1{@mode1|coltz2? 1=1>t1!2_Pt12:_Pt1+QP[Pt1+[PSPt1+SPTPt1+TPXPt1+XPUPt1+UPRPt1+RPPPt1}fastenZPPP/7/t1+SQWPt1+WPTQt1}VPYPgàt1+YPUQt1+[QVPt1+VPZPt1,t1-I< 1.1~set_listtzE 1mnm.list2rowtzA 1р1_Weight11Utz4? 1р11Ut0$ 1#opent1:1It1button"\_Pt1:1tvwx$At10[1decodingt1![_Ptvwx$At1N. 1contrastt1/ 1offt1/ 1ont1  1cyclict1uf 1channel1weightst181multiSlider$$$?Qy /PRZUP1#M1frgbPPP11brgb11rgb211rgb3PPP11rgb4%4[11rgb5Ji11rgb6p11rgb7n11rgb8Yɠ11rgb9>%11rgb10Wrt1:1Zt1819\PPt1:17t\" 1#savet1:1Jt\" 1#loadt1:1Kt181ledcYPdt1:1Lt1?#YP$RSPPPPPPt1:1Qt1N. 1std1devt1?[#Y$'7PQSPPPPPPt1:1_t1N  1resett1c_Pt1:1Vtvwx$@At1numbers!\QPQSPPPPPPt1:1Xt1\QPQSPPPPPPt1:1\t1\_Pt1:1Ytvwx$At12 1T1Ut10^' 1t1&[YPt1:1Mtvwx$@At1YI' 1startt1`I/ 1learnt1[p1 1sectiont1&_Pt1:1Stvwx$At1Z0d1learn/playtvwx$At1c3 1resampletvyUt1 101is1added1to1put1the1interaction1in11same1thread1as11data1stream1(to1avoid1bug11multiprocessor)t181panel01#X111PPP11borderP11roundedP11shadowR11donet1backgroundt181Q01111PPP11P11P11R11t1t1H1+]PPt1H1+P]Pt1H1+^PePt1H1+eP^Pt1H1+PPSPt1H1+PPPt1+4P5Pt1+:P;Pt1+7PwPt1+{P8Pt1+8P6Pt1+6P=Pt1+=PxPt1+xP9Pt1+;P9Pt1+vQzPt1+zP0Pt1+0P.Pt1+.P3Pt1+3PyPt1+yP1Pt1+5P1Pt1+wQ{Pt1+/PvPt1+0PfPt1+8PgPt1+'P(Pt1+(P&Pt1+&PhPt1+hP)Pt1+?P@Pt1+@P>Pt1+>PFPt1+FPAPt1+[P]Pt1+]PKPt1+KPaPt1+aP`Pt1+XPLPt1+OPLPt1+NPLPt1+MPLPt1++P,Pt1+,P*Pt1+*PkPt1+kP-Pt1+CPDPt1+DPBPt1+BPmPt1+mPEPt1+ZP\Pt1+\PJPt1+JP^Pt1+^P_Pt1+bPcPt1+cPuPt1+uPtPt1+"P%Pt1+%P2Pt1+2PjPt1+jPlPt1+lPiPt1+iP$Pt1+$P#Pt1+pPnPt1+nPrPt1+jQiQt1+qPnQt1+nQoPt1+GPUPt1+UPQPt1+QPRPt1+RPIPt1+IPTPt1+TPHPt1,pmaxqv2r#Nsvpatcher,}t#PuoriginPtvwindowwsetfontxSans Serif$AtynewexN zr1_WhatToDo|#B}colorUty< ~s1_LH|}UtybvL ~1_IndexMax|}Uty? ~1_LHmax|}UtyL ~1_Likeliest|}UtyV z1_LHthreshold|}UtyP ~|}UrsAtvwx$Atv1linecountPty# 1gatety#  1selQt1inlet66_Pt1user1ftm.mess6w;_SYPPPQRPP1-->Q1#T1_#ftm1versionRR11_#scope1begin11 _#absargs!0_"1_#2_$3_%4_&5_'6_(7_)8_*9_11+_#init1,_bang11-_#line1._($1[$2 0])tv1Qty6, 1/ftm.listtv1Pt10message#? 11StartDecodet12outlet5_PtyZ 1tv1QtyG 13<$t12#1_Pt125_Pt16_Pt14flonum#YPPPSPPPPPPtyZ# 1$ty  1Qty, 13$ r15mnm.minmax16@type17float1Qt18newobjXT 151617t16_Pt19connectYPPt19PPt19TP\Pt19SP\Pt19P\Pt19\PXPt19_P^Pt19^P]Pt19]PQt19UPYPt1:fastenPPQPN]Nt19YPZPt19ZPTPt1:QS^Qqlqt19QRZQt19ZPRPt19RPSPt19VPUPt19UPRQt1:QR[Pjjt19QSWPt1;popt18< 1t1?l1?1?t12(_Ptv1Qr1@ftm.copy1Afmat1Qt18J 1@1Atv1Pr1@1A1Qt18!?J 1@1At11{P6_SYPPPQRPP1Q11-1B_(exp($1))t14{gLYPPPSPPPPPPt1{&_Pt1!)_Pt11d2_SYPPPQRPQ1Q11+1C_111-1Ct11U3_SYPPPQRPP1Q11-1D_($1 sum)t11!2_SYPPPQRPP1Q11-1E_($1 exp)t11!>_SYPPPQRPP1Q11-1F_($1 div $2)t11!@_SYPPPQRPP1Q11-1G_($1 mul $2)111Hendt12!!_Pt19VPZPt19ZPQPt19QPSPt19SP]Pt19]PRPt19RPPPt19]QTPt19TPRQt19UPQQt19XPQQt19WPYPt19YPXPt19]R[Pt19[P\Pt1;t18Ih 1<1InormalizelikelihoodtyJ zJ1_Contrast|}UtyIF ~K1_LHnorm|}UtyQw; ~L1_State|}Uty)F? zM1_Weight|}UtyN ~N1_newHMM|}UtymF< zO1_HMMs|}UtyF< zP1_Cyclic|}Uty&K zQ1_Resample|}UtyFF zR1_StdDev|}Utyu< ~S1_Index|}Utys 1Tmnm.makeL2RrsottuP\tvwx$At10Z  1Udumpt10bZ^ Pt10Z^ Qty 1t10Z^ Pt1VbuttonI\_Pr1Wcomlet1Xbang1Ywhen1Zstartrecognizet12I_Pt1[#_Pr1W1[data1\(reconize1]mode)t12&_Pr1W1^learning1[t12_Pt10Z  1_cleart10&[^ Qty& 1ty& 1`mnm.qty&< 1111aStopDecode1bStartLearn1cStopLearnr1W1dmessage:1estartlearn1fstoplearn1Z1gstoprecognizet1&!_Pt19PPQPt19QPTPt1:^PSPgs+st19TPSPt19SPWPt1:XPSQ>t19QPZPt19ZPYPt19QQ^Pt19QR]Pt1:[P\Pqqt19]P\Pt19_PRPt19\PRPt19UPRPt19QRUPt1:XP\Qt19RQVPt19QS_Pt19QS[Pt1;t18Qw 1<1hroutingtyQ` 1imnm.L2Rdecodingt1Q__Pt1jcomment_ 1kFrederic1lBevilacqua1mand1ncollaborators1o,1pReal1qTime1rMusical1sInteractions1tTeamt1ubackgroundt1jPt 1vGesture1wFollower1xv0.22t1ut1jP" 1y2006-20071zIrcam1{-1|Centre1}Pompidout1ut19SPUPt19UPTPt19TP^Pt19UQTQt19TQPt19PPt19URVPt19VP\Pt19XPTRt19PUQt19TRQt19QPt19PRt19RPt19ZPTSt19TRWPt19YPVQt19]PTTt19TQPt19P_Pt19[PTUt19TSPt19PQt19QPt1;pmaxqv2r#Nsvpatcherv_it#Puorigin9tvwindowwsetfontxSans Serif$Atynewex3P zs1_Init|#B}colorUty3 ~tbt1user1ftm.messj_SYPPPQRPP1-->P1#T1_#ftm1versionRR11_#scope1begin11_#absargs0_1_2_3_4_5_6_ 7_!8_"9_11#_#line1$_$emptygestures[0 0]tyS z%1_HMMs|}Ut11&ftm.object SY1P11'_#objQ1(mat11)_#messQ1*sizeQR11'R1(11)R1*QQ11'S1+dict11'T1,fmat11)T1*QR11)T1-setPP$?$?11)S1-1._markers1/_#411'U1,11)U1*QR11)U1-PP$$11)S1-10_enveloppes11_#511'V1,11)V1*QQ11)V1-PP$?11)S1-12_Pi13_#611)S1-14_NQ11'W1,11)W1*QQ11)W1-PP$>11)S1-15_Bstddev16_#711)S1-17_MQ11'X1,11)X1*QQ11)X1-PP$11)S1-18_Bmean19_#811)S1-1:_Pself$?11)R1;rowP1<_#311'Y1,11)Y1*QQ11)Y1-PP$11)Q1;P1=_#21>_#911?_#defQ1@_mat1Aemptygestures1Blocalt11[vG_SYPPPQRPP1P11#1C_($init set $1)t1DinletD_Pty3\2 ~1Elt1D3@_Pt1D,C_Pt1Fbutton3_Pt11N_SYPPPQRPP1P11#1G_$init[Contrast]t11\_SYPPPQRPP1P11#1H_$init[LHthreshold]t11Q_SYPPPQRPP1P11#1I_$init[Resample]t11<C_SYPPPQRPP1P11#1J_$init[Cyclic]t11F_SYPPPQRPP1P11#1K_$init[Phrase]ty? zL1_Phrase|}Ut11G_SYPPPQRPP1P11#1M_$init[StdDev]t11OH_SYPPPQRPP1P11#1N_$init[Section]t1Omessage,j' 1Pexportt1Qobjectname1Rsave[1]t1O,Y' 1Simportt1Q1Tload[1]t11& SY1P11'Z1+11?P1U_dict1Vinit1B111WendtyQ zX1_Contrast|}Utyc zY1_LHthreshold|}Uty<= zZ1_Cyclic|}UtyOS z[1_Section|}UtyP z\1_Resample|}UtyQ z]1_StdDev|}Ut1OF" 1^#opent1Q1_opent1Oj" 1`#savet1Q1asavet1OY" 1b#loadt1Q1cloadt1dconnectPPt1dPPt1dPPt1dPPt1dPPt1dQPt1dQPt1dPTPt1dR]Pt1d]PSPt1dSPt1dPVPt1dTPt1dPWPt1dPYPt1d[PYPt1dZPYPt1dRPYPt1dQPYPt1dPPYPt1dUPt1dPXPt1dV\Pt1d\PUPt1dW_Pt1d_P^Pt1dXPt1dPPt1epoppmaxqv2r#NsvpatcherVOt#PuorigintvsetbglockQtwwindowxsetfontySans Serif$Atzhidden{newexV;2 |r1_Init~#BcolorUtwxy$@At1commentCu 1markers1and1enveloppestwxy$Atz1messageC 1maxvalR1$1tz1@@ 1minvalR1tz1user1ftm.mess@|?_SYPPPQRPP1-->P1#T1_#ftm1versionRR11_#scope1begin11 _#absargs!0_"1_#2_$3_%4_&5_'6_(7_)8_*9_11+_#line1,_($1 / 100.)tz11}?_SYPPPQRPP1P11+1,tz11i_SYPPPQRPP1P11+1-_(($1 / 600.) * 127.)tz1.number@h#YPPPSPPPPPPtz1.j#YPPPSPPPPPPtz{@QZ 1/unpackrs~,~,tuP|t11E2_2YPPPQRQQ1Q11+10_100t11L2_2YPPPQRQQ1Q11+11_0t11_YPPPQSQQ1Q11+12_clear, paintrect 0 (($3 - 1) - $2) 10 ($3 - $1) 128 128 128twxy$At{p2 13+Rt11R2_SYPPPQRPQ1Q11+10t{z 2 14t15b16it{> 17*rsJBnt18inletjA_Pt19outletn_Pt19_Pt18D_Ptwxy$At{oL 1:gateRt1;connectPPSPt1;QPPPt1;TPPQt1;PQRPt1p1:RrsZ;itwxy$At{s 13Qt19s7_Pt18sI_Pt{s 1?/Rt{s 13Qt{s4 13t{ 17St{s2 1@changet{sm^ 1Amodifierst1;VPPPt1;PPSPt1;SPTPt1;TPUPt1;UPXPt1;XPQPt1;QPWPt1;PRRPt1;RPSQt11At{d 141516t{~S 141516t{Tz 17t{uz 1B!-t{3L 1CclipPt{z 1D-t{z' 1Bt{L 1CPrsJBnt18jA_Pt19n_Pt19_Pt18D_Ptwxy$At{oL 1:Rt1;PPSPt1;QPPPt1;TPPQt1;PQRPt11:Rt{4z 1Dt{D3 13t{3D3 13t{}d' 1Bt{Uz2 1Eminimumt{> 17t{5 141616t{L 1Ct18_Pt{[ 1/t{z' 1Bt{tz 17t{SL 1CPt{S2 141616t{S 2 1Dt{S[ 141616t{c3 141616t{3b3 141616rsJht19_Pt18d>_Pt19n_Pt19_Pt18;_Ptwxy$At{o 1:St1;PPSPt1;QPPPt1;PQRPt1;TPPQt1;PRUPt11:St{S@ 141615rst19v _Pt18<_Pt18UB_Pt1Fbuttonq_Ptwxy$At1^ Pt1v^ Qt{vt 1:t1;SPQPt1;RPPPt1;QPPPt1;PPVPt1;PPRPt1;UPSPt1;TPPQt11Goneshott19_Pt{S' 1Bt{SeY 141616t193_Pt18_Pt18*_Pt1Htoggle_Pt{ 13Qt113P_PYPPPQRQQ1Q11+1I_(($2 + $1) / 2)t{H 1J>=t{c2 1KselQPt{M2 1@t{*3 1/t{3y 1Lpackt1;XPQPt1;QQ\Pt1;\P_Pt1;_P[Pt1;[PPt1;QPt1;PPt1;PPt1;PPt1;0P1Pt1;1P\Qt1;QPt1;PQt1;^PQt1;PQt1;QPt1;PRt1;0PQt1;PP2Pt1;Q#Pt1;#P'Pt1;P Pt1;'P Pt1;P Pt1;3PPt1;PPt1; PPt1;/PPPt1;PPPt1;PPUPt1;2PZPt1;Q)Pt1;)P'Qt1;Q Qt1;Q(Pt1;(P'Rt1;$P/Pt1;Q(Qt1;[Q^Pt1;^PTPt1;TPWPt1;WPVPt1;VP#Qt1;#Q$Pt1;Q!Pt1;P!Pt1;/Q!Pt1;4PPt1;QPt1;!PPt1;PPQt1;PP]Pt1;Q+Pt1;Q&Pt1;+P&Pt1;&P$Qt1;_Q,Pt1;,P*Pt1;SP^Qt1;*P^Qt1;Q!Qt1;+Q&Qt1;UPTQt1;Q%Pt1;%P$Rt1;0P%Qt1;YPRPt1;RPSPt1;*QQt1;RPt1;P-Pt1;-PPt1;.PPt1;0P2Rt1;Q"Pt1;"PQt1;VP-Qt1;-Q.Pt1;QPt1;Q"Qt1;QPt1;PRt1;QPt1;PQt1;PPt1;0PQt11Mrangedrivet11Nlcd:ZdPQPPPtz11ci_SYPPPQRPP1P11+1-tz1.|#YPPPSPPPPPPtz1.c{#YPPPSPPPPPPtz{Qw 1/rs,,tuV(t18Q_Ptwxy$At1.f#YPPPSPPPPPPt11'L2_SYPPPQRPQ1Q11+1O_600tw1PlinecountPt{Rb2 141516tw1PQt{ 17rsJBnt18jA_Pt19n_Pt19_Pt18D_Ptwxy$At{oL 1:Rt1;PPSPt1;QPPPt1;TPPQt1;PQRPt11:RrsZ;itwxy$At{s 13Qt19s7_Pt18sI_Pt{s 1?Rt{s 13Qt{s4 13t{ 17St{s2 1@t{sm^ 1At1;VPPPt1;PPSPt1;SPTPt1;TPUPt1;UPXPt1;XPQPt1;QPWPt1;PRRPt1;RPSQt11At{ 141516t{S 141516t{, 17t{M 1Bt{ L 1CPt{ 1Dt{' 1Bt{zL 1CPrsJBnt18jA_Pt19n_Pt19_Pt18D_Ptwxy$At{oL 1:Rt1;PPSPt1;QPPPt1;TPPQt1;PQRPt11:Rt{  1Dt{z3 13t{ 3 13t{U' 1Bt{-2 1Et{S 17t{<5 141616t{L 1Ct18`R_Pt{`i[ 1/t{m' 1Bt{L 17t{+L 1CPt{,72 141616t{+P2 1Dt{+[ 141616t{z3 141616t{ 3 141616rsJht19_Pt18d>_Pt19n_Pt19_Pt18;_Ptwxy$At{o 1:St1;PPSPt1;QPPPt1;PQRPt1;TPPQt1;PRUPt11:St{+ 141615rst19v _Pt18<_Pt18UB_Pt1Fq_Ptwxy$At1^ Pt1v^ Qt{vt 1:t1;SPQPt1;QPPPt1;RPPPt1;PPVPt1;PPRPt1;UPSPt1;TPPQt11Gt112_2YPPPQRQQ1Q11+11t199_Pt{+P 1DRt{+Y 141616t11 _YPPPQRQQ1Q11+1Q_clear, paintrect ($1 + 1) 0 ($2 + 2) 10 128 128 128t19 9_Pt18R_Pt18+Q_Pt1HzQ_Pt{ze 13Qt11 P_PYPPPQRQQ1Q11+1It{z:H 1Jt{2 1KQPt{2 1@t{+1( 1/t{ y 1Lt1;XPQPt1;QP]Pt1;]PPt1;P\Pt1;QPt1;PPt1;PPt1;PPt1;\PPt1;QPt1;PQt1;PQt1;PQt1;QPt1;PRt1;3PQt1;Q%Pt1;%P)Pt1;P"Pt1;)P"Pt1;P"Pt1;"PPt1;PPt1;_PPt1;PPPt1;1PPPt1;PPUPt1;PP[Pt1;[PZPt1;Q+Pt1;+P)Qt1;Q"Qt1;Q*Pt1;*P)Rt1;&P1Pt1;Q*Qt1;\QPt1;PTPt1;TPWPt1;WPVPt1;VP%Qt1;%Q&Pt1;P#Pt1;Q#Pt1;1Q#Pt1;3PPt1;#PPt1;QPt1;PPQt1;PP^Pt1;Q-Pt1;Q(Pt1;-P(Pt1;(P&Qt1;Q.Pt1;.P,Pt1;,PQt1;SPQt1;Q#Qt1;-Q(Qt1;UPTQt1;Q'Pt1;'P&Rt1;3P'Qt1;YPRPt1;RPSPt1;,QQt1;RPt1;P/Pt1;0PPt1;/PPt1;Q$Pt1;$PQt1;VP/Qt1;/Q0Pt1;QPt1;Q$Qt1;Q Pt1; PRt1;Q!Pt1;!P Qt1;PPt1;3P!Qt1;2P3Pt1;4P3Pt11Mt11NCXZPQPPPt1g1 1Renveloppet1H g_Ptz1.v#YPPPSPPPPPPtz{ +2 1BQtz1 >2 1Sset1tz{=,2 1BQtz1=@2 1S1tz19@_Ptz{2 1?$Btz18(_Pt1w1 1Trealtimet1H w_Ptz11&2_SYPPPQRPQ1P11+11t1 w. 1Tt1Hw_Ptz18'_Pt1ew3 1Uclear1Venv.t1FTw_Ptz19W_Pt1g1 1t1Hg_Ptz19W_Pt1."YPPQSPPPPPPt1."YPPQSPPPPPPt1."YPPQSPPPPPPtwxy$@At1#u 1Wch.twxy$At1hw7 1Xdelete1Yallt1FWw_Ptz1C 1Q1tz1@@ 1Q1tz1C 1P1tz1@@ 1P1tz1c2 1Zxmax1tz1/ 1[xmin1t1g7 1\delete:1]'d'twxy$@At1Cer 1^learning1_exampletwxy$ArsXg(!tuPtwxy$Atw1PQt{P |`1_IndexMax~Ut{: |a1_Index~Ut{)F |b1_Phrase~Ut10N^ Pt{01 1cpipePPtw1PRt1-1 1drealtimenveloppet180_Ptw1PPt{~2 1cPPtw1PQt{1 1cPPt{{0 1c$Pt{,4 1c$Pt1] 1extw1PPt1B 1U1Rt11 1fenable1Rtw1PQt11 1gclockt1eS 1f1Ttw1PPrsWltwxy$Atw1PQt11" 1Ut11" 1hstartt11" 1ion/offt11" 1et1s1" 1jyt18F_Pt18D_Pt11" 1gt{I/ 1:t1#1N 1f1Tt11kftm.objectG$SY1R11l_#objQ1mfmat11n_#defP1o_fmat1penvtemp1qlocalrs>(<twxy$At{2 1?Qtw1PQt{] |r1_Resample~Ut{!2 1@t11Q_SYPPPQRPP1S11+1s_(($1 + 1) * $2)t{2 1?dt116k_SYPPPQRPP1S11+1t_($envtemp size $1 1)t18C_Ptw1PPt{]2 1KQt{k 1:t1.2#YPPPSPPPPPPt11oSYPPPRRPP1S11+1u_($envtemp size $1 1);11+1v_($envtemp fill 0);t1.#YPPPSPPPPPPt11s2_SYPPPQRPQ1S11+10t11lv_SYPPPQRPP1S11+1w_($envtemp set $1 0 $2)t{ 1415r1xcounter1y#X1zflagsPPt1=c 1xt1^ Pt18_Pt18_Pt1;QPYPt1;YPZPt1;ZPTPt1;TPSPt1;SPPt1;PUPt1;PPZQt1;_PPt1;P]Pt1;P^Pt1;^P_Pt1;PQt1;YPRPt1;RPSRt1;VP^Qt1;VP_Qt1;\PUQt1;YP[Pt1;[PVPt1;VPWPt1;WPXPt11{realtime_envt{( 1:t11_SYPPPQRPP1R11|_#init1}_bang11+1~_(($1 colref 0) set $envtemp)t18II_PrsVtwxy$At1.V#YPPPSPPPPPPt{D 1415tw1PQt{M2 1@Ptw1PPt{D  16t{2 1@tw1PQt{kC 1speedlimZt{> 1LPȠt{32 1linePQtw1PPt{2 1:t{2 1<_t19_Pt18/_Pt{2 1absPt{2 1DPt{w2 141616t1;SP^Pt1;^PPPt1;PQQPt1;QPRPt1;RPUPt1;UPVPt1;VPXPt1fasten[PWPI++t1;XPWPt1;WP\Pt1;\PYPt1;YPTPt1;PPQQt1;^PVQt1UPZP!٠t1;ZR]Pt1;]P[Pt1;^P[Qt11t{,< 1sх0-reset~Ut{ 141515t1` 1U1t1F_Pt11:_SYPPPQRPP1R11+1_($2 fill 0.)t11V_SYPPPQSPP1R11+1_($3 set $1 0 $2)t{ 14151ft{$ 1:t18mA_Pt18C_Pt18B_Pt18rB_Pt18C_Ptw1PPt1Z07 1t1;TPVPt1;VPWPt1;\P]Pt1;WP]Pt1;WQXPt1;QP^Pt1;^PVQt1;RPXQt1;UPXRt1lcolorZt1;_PPt1;PPt1;RPQt1;PQt1;PRt1;_PPt1;PPt1;UPQt1Zt1;SPZPt1;ZP\Pt1;\QYPt1;UPYQt1Zt11rs4tu@twxy$Atw1PPt{= 13Qt{=| 1:Rtw1PQt{ < 1х~Ut{Z < 1х~Utw1PPt1P4N 1f1Tt11k$SY1R11lR1m11nP1o1markerstemp1qt1P- 1t11 1erstwxy$Atw1PQt{2 1?Qt{] |r~Utw1PPt{2 1@t11Q_SYPPPQRPP1S11+1st{2 1?dt182_Pt{]2 1KQt{k 1:t1.2#YPPPSPPPPPPt11SYPPPRRPP1S11+1_($markerstemp size $1 1);11+1_($markerstemp fill 0);t1.#YPPPSPPPPPPt11u2_SYPPPQRPQ1S11+10t11(_SYPPPQRPP1S11+1_($markerstemp size $1 1)t112t_SYPPPQRPP1S11+1_($markerstemp set $1 0 1)t{ 1415r1x1y1zPPt1=c 1xt1^ Pt{2UX 16Pt18_Pt18_Pt1;^PRPt1;RPVPt1;QP[Pt1;[P\Pt1;\PUPt1;UPTPt1;TPPt1;PRQt1;PPt1;PWPt1;P_Pt1;_PPt1;PP\Qt1;PQt1;[PSPt1;SPTRt1;XP_Qt1;XPQt1;[P]Pt1;]PXPt1;XPYPt1;YPZPt11realtime_markingt{N( 1:t{N9 14151lt11}_SYPPPQRPP1R11|1}11+1_(($1 colref 0) set $markerstemp)t{=< 1х~Ut1flonumG,YPPPSPPPPPPt{( 14151515r1ftm.value1Rt1=Lz5 1tw1PRt1ZT3 1X1t1I3 1add1tw1PQrstwxy$At{2 141516t{2, 1zl1nthQt{2^ 14115t1Cs^ Pt1122E_SYPPPQRPP1S11+1_($1 colref 0)r1ftm.copy1m1St1=2GJ 11mt{2/ 1accumPt112V_SYPPPQSPP1S11+1_($3 set $2 1 $1)t{2e 1ftm.iter1@mode1rowt182_Pt1;PPUPt1;UPTPt1;TPWPt1;WPQPt1;QPXPt1;XPYPt1;YPSPt1;VPSPt1;SPRPt1;WQVPt1;YQSQt1;QQRQt1;PPRRt11createstepst12\ 1U1Y1t1F_Pt11A:_SYPPPQRPP1R11+1t1[#&YPPPSPPPPPPt1F_Pt{=) 16Pt1x+#YPPPSPPPPPPt1^ 1dt{Zq( 1key~Ut{Z: 1selectdt1FZ_Pt{Z 16Pt{Z( 1415151t{=( 1415151t11x@P_SYPPPQRPP1R11+1_($2 set $1 0 0)t11[8P_SYPPPQRPP1R11+1_($2 set $1 0 1)t{e( 1~Ut{{3 1 t13 1space1bart18T/_Pt181_Pt18?_Pt182_Pt18=2_Pt18 1_Pt1 " 1gt1;RP,Pt1;,P+Pt1;+PPt1;P\Pt1;\P Pt1;"PPt1;QPt1;]QPt1;\QPt1;PPt1;\RPt1;PZPt1;PQt1;VPQt1Zt1;VPZQt1Zt1;YPXPt1;XPPt1;P+Qt1;+Q$Pt1;SP$Qt1;QP$Rt1;RP#Pt1;#P"Pt1;VP#Qt1Zt1;"Q!Pt1;UPPt1;PPt1;P_Pt1;_P^Pt1;^P]Pt1;]P)Pt1;P^Qt1;]RPt1;P[Pt1;VP[Qt1Zt1;TPPt1;PPt1;P*Pt1;RPt1;VPQt1Zt11tw1PQt{I |Ѧ1_Likeliest~Utw1PPrs2tuPtwxy$Atw1PQt1(K6 1Indext1`L6 11Maxt18@\_Pt18{\_Pt1N: 1t11H_SYPPPQRPP1R11+1_($1 colref 0)t1 #YPPPSPPPPPPt11;_SYPPPQRPP1R11+1_($2[$1 0])t11H_SYPPPQRPP1R11+1_($1 colref 1)t{@xE 1mnm.mm1mult11@Z_SYPPPQRPP1R11|1}11+1_($1[$2 0])t1!#YPPPSPPPPPPt11;_SYPPPQRPP1R11+1_($2[$1 1])t18__Pt18__Pt18[_Pt195_Pt194_Ptw1PPt1L- 1likeliestt1N/ 1t1;PZPt1;ZPYPt1;PZQt1;TPYQt1;YPWPt1;WPXPt1;XPSPt1;UP[Pt1;[PWQt1;YP\Pt1;\P]Pt1;]PRPt1;VP^Pt1;^P\Qt11output_markers_envrs Et11kh$SY1R11lS1m11_#messS1sizeQQ11S1SPP$11nQ1o1zero1qtwxy$At{4 14151t{< 1х~Ut11C_SYPPPQRPP1R11|1_($emptyHMMs[0 0])11+1_($1[Bmean])t{D 14151t{ 14151t11Di2_SYPPPQRPP1R11+1_$zerot11i2_SYPPPQRPP1R11+1t{DO+ 1routePt{O+ 1Pt{4O+ 1Pt114i2_SYPPPQRPP1R11+1t1.D5#YPPPSPPPPPPt{e 141516t11g_SYPPPQRPP1R11+1_($1 colref ($2 - 1))t1.45#YPPPSPPPPPPt1.5#YPPPSPPPPPPt{ 141516t{U 141516t11g_SYPPPQRPP1R11+1t11Zg_SYPPPQRPP1R11+1t18_Pt18D!_Pt18!_Pt184!_Pt19U_Pt19_Pt19E_Pt1;PWPt1;SP\Pt1;\PPt1;PPt1;PPt1;WPPPt1;QPPt1;QYPt1;YQWQt1;PXPt1;TP[Pt1;[PPt1;PPt1;PPt1;PPt1;PPt1;PPt1;^PPt1;ZPPt1;YPPt1;XPQPt1;QQPt1;QZPt1;ZQXQt1;P]Pt1;UP_Pt1;_PPt1;PPt1;PPt1;]PRPt1;QRPt1;Q^Pt1;^Q]Qt1;VPPt11to_vecdisplayt18~_Pt18_Pt{)< |х~Utw1PQt1ib= 1t1b` 1U1tw1PRt1e0 1clearall1tw1PQt{EV 1Ѽ1_Enveloppes~Ut{L 1ѽ1_Markers~Ut18_Ptw1PPt1L3 1t1"M7 1Rt19:5_Pt1u] 1jt1,] 1et18{_Pt193_Pt11H_SYPPPQRPP1Q11+1t11hW_SYPPPQRPP1Q11+1_($1[enveloppes])t18_Pt196_Pt{= |ѿ1_HMMs~Ut{*F |Ѧ~Ut{< 1loadmessQtw1PQt1 1ch3t1h 1ch2t1N 1ch1t192_Pt18_Pt1.0b#YPPPSPPPPPPt1.a#YPPPSPPPPPPt1mM^ Qt{ 1:t18h_Pt18O_Pt1N^ Pt1N^ Qt1,,YPPPSPPPPPPt18f_Pt{5$ 141516t1,,YPPPSPPPPPPt1*YPPPSPPPPPPt118_SYPPPQRPP1Q11+1_($1 rows)t{,l 1expr1($f1/127.)*$f2t11H_SYPPPQRPP1Q11+1t11lL_SYPPPQRPP1Q11+1_($1[markers])t11P;_SYPPPQRPP1Q11|1}11+1t{9 1K1StartLearn1StopLearn1StartDecode1StopDecodet{%n |1_WhatToDo~Ut18,_Pt192_Pt19t2_Pt19P2_Ptw1PRt1)G 1pattern1.t1;P5Pt1;5PQPt1;P5Qt1;5QRPt1;P5Rt1;WP5St1;5RPt1;2PWPt1; PWPt1;^PWPt1;WPXPt1;XPYPt1;YPSPt1;PPt1;PPt1;P^Pt1;P^Pt1;GPQt1;^QWQt1;XP8Pt1;4PBPt1;BP8Qt1;UPVPt1;VPPt1;PPt1;PPt1;P8Rt1VQPJt1;3P8St1;TP?Pt1;?PPt1;PZPt1;ZP]Pt1;]P8Tt1;VRFPt1;FPPt1PPr[t1;_P8Ut1;VSPt1XP[Pt1;[P\Pt1;\PZQt1WP#Pfft1#P$Pt1;$P%Pt1;#P9Pt1;"PAPt1;AP9Qt1]P9R1t1;CPEPt1;EP9St1P9TNt13P9Ugt1;&P@Pt1;@P9Vt1;,P9Wt1;HP6Pt1;6P!Pt1;6P-Pt1;IP6Qt1;7P6Rt1XP6S#t1;#P6Tt1;6Q)Pt1;6Q.Pt11t11ftm.vecdisplayCXd$$$BPUQ$$UPQ$$PQ$$PS$$?PPPS$$?a{t1VgJ 1add:111,tz11^2_SYPPPQRPP1P11+1_#4tz11^2_SYPPPQRPP1P11+1_#3tz11^2_SYPPPQRPP1P11+1_#2111endt1 1hold1the1'shift'11to1@11ranget11panelb1y1brgb1y1frgbPPP1y1borderP1y1roundedP1y1shadowR1y1donet1backgroundtz1;=PRPtz1;=PSPtz1;=PTPtz1;RPPtz1;SPPtz1;TPPtz1;3P2Ptz1;3Q4Ptz1;4P6Ptz1;6P9Ptz1;9P\Ptz1;9P^Ptz1;9P:Ptz1;2P3Ptz1;PWPtz1;;PVPtz1;:PVPtz1;WPVPtz1;ZPVPtz1;[PVPtz1;\PVPtz1;]PVPtz1;^PVPtz1;_PVPtz1;-P,Ptz1;PWQtz1;2R3Qtz1;PWRtz1;PWStz1;4Q5Ptz1;5P8Ptz1;8P_Ptz1;8P]Ptz1;8P;Ptz1;PWTtz1;VSWUtz1;PWVtz1;)PWWtz1;WQVQtz1; PWXtz1;WUPtz1;,P-Ptz1;-Q.Ptz1;.P0Ptz1;0P7Ptz1;7PZPtz1;"PWYtz1;VTWYtz1;,R-Qtz1;'PPtz1;PPtz1;PWZtz1;WVPtz1;P&Ptz1;&P%Ptz1;.Q/Ptz1;/P1Ptz1;1P[Ptz1;WRVRtz1;*P)Ptz1;&P)Ptz1;VS#Ptz1;#P$Ptz1;WSVStz1;*P(Ptz1;(P'Ptz1;P*Ptz1;%P*Ptz1;P Ptz1;WTVTt1<pmaxqv2r#Nsvpatcherq/Tt#PuoriginPtvwindowwsetfontxSans Serif$AtvylinecountQtzhidden{newex2 |+Qt}commentX ~(nonormalization)tz{>F 1r1_Markers1#B1colorUt1number5(YPPPSPPPPPPt}5/ 1markerst}hg3 1likelihoodtz{Q, 1ftm.listtz{iR 1gatetz{Q4 11_LH11Ut}fF 1likelyhoodt}xf+ 1displayt1togglehf_Pt1user1multiSliderixS$$?Uy _PPRPPP1#M1 frgbPPP11!brgb11"rgb211#rgb3PPP11$rgb4%4[11%rgb5Ji11&rgb6p11'rgb7n11(rgb8Yɠ11)rgb9>%11*rgb10Wrtz11+ftm.mess[f2_SYPPPQRPQ1,-->P1-#T1._#ftm1/versionRR1-10_#scope11begin1-12_#absargs30_41_52_63_74_85_96_:7_;8_<9_1-1=_#line1>_0tvwx$At},K[1?monitortvwx$At}h! 1@indext}h. 1t1f_Ptz{7 1tz{6: 1A1_Index11Utz{7, 1t11xQ$$?Uy_PPRPPP11 PPP11!11"11#PPP11$%4[11%Ji11&p11'n11(Yɠ11)>%11*Wrtz11+f2_SYPPPQRPQ1,P1-1=1>t1Bflonum-)YPPPSPPPPPPt}-H p1tz{3@ 1C1_LHmax11Utz{F 1D1_Likeliest11Ut1(YPPPSPPPPPPtz{P7, 1t};g+ 1t1-f_Ptz{/8 1tz{~7D 1E1_LHnorm11Ut}* 1Flikeliestt11-xQ$$?Uy _PPRPPP11 PPP11!11"11#PPP11$%4[11%Ji11&p11'n11(Yɠ11)>%11*Wrtz11+f2_SYPPPQRPQ1,P1-1=1>1-101Gendt11HpaneldJ1I#X1!1I1 PPP1I1JborderP1I1KroundedP1I1LshadowR1I1Mdonet1Nbackgroundt11H%J@1I1!1I1 PPP1I1JP1I1KP1I1LR1I1Mt1Ntz1OconnectRPWPtz1OVPSPtz1O\P^Ptz1OWPVPtz1OYPVQtz1OUPYPtz1O%PZPtz1O[P%Ptz1O_PPtz1OPPtz1OPPtz1OPQtz1OPPtz1O#P"Ptz1OPPtz1OPPtz1OPPtz1OPQtz1OPPt1Ppoppmaxqv2r#Nsvpatcher5t#PuorigintvwindowwsetfontxSans Serif$@AtvylinecountStzcomment+D {total|number}of~statestvwx$AtvyQrftm.copy1fmat1-->P1#T1_#ftm1versionRR11_#scope1begin11_#absargs0_1_2_3_4_5_6_7_ 8_!9_t1"newobjJ 1t1#toggle_PrsZ;bt1$user1%ftm.mess2N:_SYPPPQRPP1Q11&_#line1'_$statemaxt1$1%h\_SYPPPQRPP1Q11&1(_($alpha size $1 1)t1$1%SZ_SYPPPQRPP1Q11&1)_(($weight size 1 (($HMMs[0 0]) [N]))fill 1)t1$1%G,_SYPPPQRPP1Q11&1*_($statemax set $2 0 (($1[M]) - 1));tvwx$At1+newex225 1,t1-b1-1.lt1$1%G2_SYPPPQRPP1Q11&1/_$HMMst1+Gn 10ftm.iter11@mode12rowt1$1%g_SYPPPQRPP1Q11&13_($state size $1 (($HMMs[0 0]) [N]))t1$1%ht_SYPPPQRPP1Q11&14_($stateindex size $1 1)t1$1%gvo_SYPPPQRPP1Q11&15_($likelihood size $1 1)t1$1%\]8_SYPPPQRPP1Q11&16_($1 rows)t1$1%go_SYPPPQRPP1Q11&17_($statemax size $1 1)t1$1%\IS_SYPPPQRPP1Q11&18_($HMMs set $1)t19inlet2_Pt1:outlet2b_Pt1;connectQPZPt1;ZP^Pt1;^PPPt1;ZQYPt1;YPXPt1;XP[Pt1;ZRRPt1;RPTPt1;TPUPt1;TPSPt1;TPWPt1;TP]Pt1;TPVPt1;XQ[Qt1initt1+` 1,1-1-rsWNt1$1%2`SYPPPRRPP1Q11&1?_($alpha set $2 0 ((new fmat) set $1[Pi]));11&1@_($likelihood fill 0.)t1$1%222_SYPPPQRPP1Q11&1/tvwx$At1+2Hr 101112t192_Pt1;PPRPt1;RPQPt1;QPSPt1;QQSQt1_SYPPPQRPP1R11M_#init1N_0 111&1O_($1 div $2)t19@_Pt19Z_Pt1:Z_Pt1:e_Pt1:2_Pt1;SPXPt1;XPRPt1;XPUPt1;UPPPt1;TPXQt1;XPVPt1;VPWPt1;WQQPt1;WQUQt1_SYPPPQRPP1R11&1Or11Rt1"hJ 1t1$1%h:_SYPPPQRPP1R11&1T_$likelihoodt19+_Pt1Umessage^ Qt19h._Pt19h,_Pt1$1%Z_SYPPPQRPP1R11&1V_(($likelihood rowref $2) add $1)r1Wcounter1X#X1YflagsPPt1"yB 1Wt1:h _Pt19._Pt1;UP[Pt1;[PXPt1;XPYPt1;YPZPt1;ZPQPt1;[QRPt1ZfastenWPVP||t1;VPRRt1;RPZQt1;PP\Pt1;\PSPt1;TPSQt1  1=1[likelihoodrs:t19*_Ptvwx$AtvyQr11Rt1"#3v 1t1$1%YJ5_SYPPPQRPP1R11&1\_$1[Pself]tvyPt1+G 1]+Qt19)_Pt1$1%F_SYPPPQRPP1R11&1^_($1 rotate 1)t1$1%J_SYPPPQRPP1R11&1__($1 set 0 0 0)t1+& 1`gateRt1$1%#?_SYPPPQRPP1R11&1a_($1 add $2)t1:#V_Pt19Y+_Pt19#+_Pt1+! 1b!-$?r11Rt1"{I 1t1$1%@_SYPPPQRPP1R11&1Jt1$1%#@_SYPPPQRPP1R11&1Jtz+u 1c1=1dcyclicP1e=1fnon1dt1;UPQPt1;QPXPt1;XP_Pt1;_PWPt1;RPXQt1;VP^Pt1;^PQQt1;P_Qt1;\P]Pt1;]PYPt1;YPZPt1;ZPRPt1;YQRPt1ZUPSP(oot1;SP[Pt1;[PYQt1;TPRQt1Z^PTP^d&dt1V_SYPPPQRPP1P11M1_((new fmat 1 1)fill 1)11&1_($weight set $1)tvwx$@AtzBZ P1=non1dr1w1c1dP1e1f1dt19>g_Ptz<S= 1weightst1$1}$SY1P11~S111S1QQ11S1PP$?11Q1_fmat1weight1t1$1}$SY1P11~T111T1QQ11T1PP$11Q11|1r1w1y1z1{1|t1:_Pr1w1y1z1{1|t1:_Pt1$1}$SY1P11~U111U1QQ11U1PP$11Q11stateindex1t1$1}$SY1P11~V111V1QQ11V1PP$11Q11[1r1w1c1dP1e1f1dt19g_PtzS= 1c1dtvyRtz#D 1HMM1[tvyStz X 1||1with1highest1[tz ) 1most1likely1|tvyQtzc 1y1format:tzv 1each121corresponds1to1a1given1tz]? 1HMMs1>r1w11t19q_PtzS) 1datatz^S/ 1Ar1w1bang1e1At19`g_Pt1$1}v$SY1P11~W111W1QQ11W1PP$11Q11statemax1t1$1}` SY1P11~X111X1QQ11X12PP11Q111111endr1w1y1z1{1|t1: _Pr1w1test1t19g_Ptvwx$Atz1left11right11ut1;QP!Pt1;!PPt1;UP#Pt1;#P!Qt1;#Q"Pt1;!QRPt1;P Pt1Z P!Rՠt1;P%Pt1;P%Pt1Z%P!SǠt1;!RPt1;PPt1;XP$Pt1;$P&Pt1;&PPt1<pmaxqv2r#Nsvpatchert#Puuservftm.mess2_SYPPPQRPQw-->Px#Ty_#ftmzversionRRx{_#scope|beginx}_#absargs0_1_2_3_4_5_6_7_8_9_x1_#line1_1t1window1setfont1Sans Serif$At1commentQ 1self1trans.1 probt1!flonum#YPPPSPPPPPPtuvI_SYPPPQRPPwPx11"_(1 - (1 / $1))r1#gbr.resamplewPt1$newobj8 1#t111$@At1KTS 1%output1&matt1'outlet8T_Pt11(linecountRt1[-? 1)training1*examplet111$At11(QrsmDt1'=y_Ptuv={SYPPPZSPPwQx1+_#init1,_0 1 0.25 10. 0x11-_(new dictx11._ M ($1 rows)x11/_ N ($1 cols)x110_ Pself $3x111_ Bmean ((new fmat) set $1)x112_ Bstddev ((new fmat ($1 rows) ($1 cols)) fill $2)x113_ Pi ((new fmat ($1 rows) 1) set 0 0 1)x114_ markers ((new fmat ($1 rows) 2) fill 0.)x115_ enveloppes((new fmat ($1 rows) 2) fill 0.)x116_)x{17endt111$At1<:@ 1)1*t18inlet=U_Pt1!#YPPPSPPPPPPt1!#YPPPSPPPPPPt1?* 19std1:devt1>Q 11;transition1 t18W_Pt18W_Pt1p1?initt1!#YPPPSPPPPPPt111$@At1-F 1@resampler1Acomlet111 t18S_Pr1A1)1*t188S_Pt111$At1!5YPPPSPPPPPPt1P1#T1_#ftm1 versionRR11!_#scope1"begin11#_#absargs$0_%1_&2_'3_(4_)5_*6_+7_,8_-9_11._#line1/_($1 div 256.)rsXtuPtvwx$AtvyQt1?: 10sel11Updatet1*l 12r131_FollowerDatabase14#B15colorUt1S2 116b16t1|S 17mnm.winfilterTt1S 17Tt1~ 18*$?t19flonum PYPPPSPPPPPPt1:inlet(_Pt19#YPPPSPPPPPPt1 1;>$t11XY_SYPPPQRPP1Q11.1<_(($1 sqrabs)sum)r1=ftm.copy1>fmat1Qt1?newobjCI 1=1>t1j, 1@ftm.listtzMF 1Afiltered1Bdatatza 1C1st1Dderivate1Eof1Bt1|K 111t10; 111t1i 1Fgatet1 1Ft1Z 1Gmnm.derivate$ At1Hmessageh  1Icleart1Joutlet_Pt1Ji_Pt1:|+_PtvyRtz(n 1Kstop1B1Lflow1Mif1B1Nvariation1Ois1Plower1Qthan1Ra1Sgiven1Tthresholdt1Ufasten_PWPnt1VconnectWPRPt1VTPPt1VQPPt1VPYPt1UYPWQ))t1VPPt1VPPt1VPTPt1U_PVPt1VVPSPt1VYQUPt1VTPUPt1VUPPt1VTPPt1VPXPt1VXPVQt1VXQ]Pt1V]P^Pt1V^P\Pt1V\PPt1VP_Pt1VP_Qt1VPPt1VPPt1Wpopt1?Y 1Xp1Ypreprocesst1$ 121Zlcdt1dI 1[mnm.list2rowt1_ 101\StartLearn1]StartDecodet1_J 121^1_WhatToDot1H$# 1IrsYtvwx$AtvyQt1vK 1$BtvyPt1B? 1$@@tvyQtzA 15r1_comlet1`Liste1aX1b,1cYt1:*0_Pt1*e2 1dunpack1ei1et1fnumberud#YPPPSPPPPPPr1_1gCouleurt1:0_Pt1H* 1hPaintOval1i$11j$21k$31l$41m$5t1* 1npack1e1e1e1e1etvw1oHelvetica$At1R 1p-t1z 1q+t1* 1pt1 1qt1f#YPPPPPPPPPr1_1rMessage1ht1J*_Pr1_1sTaillet1:u0_Ptvwx$AtvyPtz'  1tcopied1ufrom1R1vpatch1wby1xEmmanuel1yFlty1z!tzUA 1{size1E1|circlet1V^P]Pt1V]PVPt1VVPYPt1VYPZPt1VZPSPt1V\PVQt1V]QXPt1VXPYQt1V\PXQt1VRP\Pt1VP\Pt1U]PWP/t1VWPYRt1V\PWQt1U]QUPWt1VUPYSt1V\PUQt1U[PTPt1VPTPt1VTPYTt1Wt1?$I 1X1}DrawCirclet11Z7PQPPPtzm 1~using1velocities1in|1tvwx$`Atz :~1use11or...141frgbPPtvwx$Atzo 1normalized1betweenP1andQ141PPrs.rtvwx$@AtvyPtz^ 1The1v1requires1FTM1(http://ftm.ircam.fr/index.php/Download)tzl 1more1on1http://ftm.ircam.fr/index.php/Gesture_Followertvwx$AtvyRtz 1remarks:1p1section1f1allows1you1to1record1R1different1set1E1gestures1(and1recall1them)1(the1decoding11sections1are1totally1independent)tz' $@@1display1real time warping1directlyshowsthe1results1E1time-warping1E1gesture11likeliest1tz'g $@11"index"1shows1where you are in the gesture1b1like1R1(vertical)1progress1bar.1(try1first1~1only1one1gesture)tvyQtz&L 11highest1bar1corresponds1thus111tvyRtz&0 $?111"likelihood"11values1which1indicate1how1near1performed11O11each1recorded1reference1tvyQtz& $@1Start...Stoptz& $?1red1button1should1be1offtvwx$@Atz_ 12)11recognize/follow1tvwx$Atz( $@@1change1phrase number11repeat|1step1with1another1gesture.tvyStz1y 1Attention:111~11b1start/stop1O1automated11mouse1up/down1u11ztvyQtz'h $@1press1start1b1play111stop.tvwx$@AtvyPtz]5 11)11R1gesturetvwx$Atz'X 11-1111(learn).1This1arms1recording1(it1doesn't11anything1yet)tvwx$@AtvyQtz& 11see11b1activate1all1displays1b1there1111w1defaultt1Wt1? 2 1X1help1415Utvwx$`Atzo1HERE141PPtvwx$At1nI 1[tvwx$`Atzo1input1list1(any1length)141PPt1bpatcheru?1mnm.follower.graphs.patPQQRPt1 1mnm.follower.markers.patPQQRPt11aH2_SYPPPQRPQ1P11.1_$initt11ftm.objectG SY1P11_#objQ1dict11_#messQ11_LHthreshold$11Q11_SectionP11Q11_Contrast$?11Q11_StdDev$=11Q11_PhraseP11Q11_CyclicQ11Q11_Resample$@11_#defQ2_dict2init1tvwx$At1a\w 2mnm.follower.initQt1a3y 2mnm.follower.databaseQt1 11Zt11aa_SYPPPQRPP1P11.2_(($1 add 1.) div 2.)t1/ 1@t11I_SYPPPQRPP1P11.2_($1 mul 256.)r1=1>1P11!2endt1?J 1=1>t1ay 2mnm.follower.hmmQ1415Vt1a6@2mnm.follower.monitor.patPQt1 6AP2 mnm.follower.gui.patPQt12 panel^x2 #X2 brgb2 1PPP2 2 borderP2 2roundedP2 2shadowP2 2donetz(\ 2Frederic2Bevilacqua12collaborators1b2Real2Time2Musical2Interactions2Teamt2backgroundtz (m 2Gesture2Follower2v0.2t2tz(n 2http://ftm.ircam.fr/t2t1VYP[Pt1VPPt1VPPt1VQPt1VPPt1UPP44t1V$PPt1VP%Pt1V%PPt1VP!Pt1V!P Pt1V PWPt1VWPXPt1VXPYPt1V QZPt1VZP&Pt1VP&Pt1V&PVPt1V_P]Pt1VPPt1VR#Pt1V#P"Pt1V&QPt1V&QPt1Wpmaxqv2r#Nsvpatcher=3t#Puoriginhtvuserwftm.mess>_SYPPPQRPPx-->Py#Tz_#ftm{versionRRy|_#scope}beginy~_#absargs0_1_2_3_4_5_6_7_8_9_y1_#line1_($1 set $2)t1window1setfont1Sans Serif$At1newexk2 1t1 l1!bt12 1"ftm.clonetvwj_SYPPPQRPPxPy11#_$emptygestures[0 0]tv1$ftm.objectd SYxPy1%_#objQ1&maty1'_#messQ1(sizeQRy1%R1&y1'R1(QQy1%S1)dicty1%T1*fmaty1'T1(QRy1'T1+setPP$?$?y1'S1+1,_markers1-_#4y1%U1*y1'U1(QRy1'U1+PP$$y1'S1+1._enveloppes1/_#5y1%V1*y1'V1(QQy1'V1+PP$?y1'S1+10_Pi11_#6y1'S1+12_NQy1%W1*y1'W1(QQy1'W1+PP$>y1'S1+13_Bstddev14_#7y1'S1+15_MQy1%X1*y1'X1(QQy1'X1+PP$y1'S1+16_Bmean17_#8y1'S1+18_Pself$?y1'R19rowP1:_#3y1%Y1*y1'Y1(QQy1'Y1+PP$y1'Q19P1;_#21<_#9y1=_#defQ1>_mat1?emptygestures1@localt1Anumber5#YPPPSPPPPPPtvwTSYPPPRTPPxPy11B_($gestures[$2 0] rows ($4 + 1));y11C_($gestures[$2 0] set $3 0 $1)tv1$d SYxPy1%Z1&y1'Z1(QRy1%[1&y1'[1(QQy1%\1)y1%]1*y1']1(QRy1']1+PP$?$?y1'\1+1,1D_#13y1%^1*y1'^1(QRy1'^1+PP$$y1'\1+1.1E_#14y1%_1*y1'_1(QQy1'_1+PP$?y1'\1+101F_#15y1'\1+12Qy1%1*y1'1(QQy1'1+PP$>y1'\1+131G_#16y1'\1+15Qy1%1*y1'1(QQy1'1+PP$y1'\1+161H_#17y1'\1+18$?y1'[19P1I_#12y1%1*y1'1(QQy1'1+PP$y1'Z19P1J_#111K_#18y1=Q1>1Lgestures1@rsot1Moutlet_Pt111$At1Nmessageg3! 1+Ptvw2qu_SYPPPQRPPxQy11O_((new fmat 1 $1) fill 1)t12G2 1Pchanget1A2\#YPPPSPPPPPPtvw222_SYPPPQRPPxQy11Q_($1 [N])t1Rinletg_Pt1R2_Pt1M2_Pt1SconnectQPSPt1SWPUPt1SSPUPt1SUPTPt1STPVPt1SVPPPt1SRPWPt1STPXPt1Tpopt1Unewobj Y 1Vp1Winit_weightt13f" 1P1!rst1M6#_Pt111$At1A#YPPPSPPPPPPt1R#K_Pt11XlinecountPt16{2 1YiPt1R^M_Pt1R~M_Pt11XQt162 1Ptvw|_SYPPPQRPPxQy11Z_(($gestures[$2 0] rows) - 1)t1N~z^ Pt1A6#YPPPSPPPPPPt16r 1[if1\$i11]>1^$i21_then1\t1`comment\C 1aphrasespt1RN_Pt1SPPYPt1SYPRPt1STPSPt1SRPSPt1SSPVPt1SVP\Pt1SXPYQt1SWPTPt1SPPUPt1SUPRQt1bfastenSPRQ;t1STPRQt1SUP[Pt1SZPUQt1Tt1Uu 1V1csize_phrasers"bzt1M6_Pt1RGO_Pt111$At1Am#YPPPSPPPPPPt11XPt16{2 1YPt1R^M_Pt1RN_Pt11XQt162 1Ptvw|r_SYPPPQRPPxQy11d_(($gestures rows) - 1)t1N|^ Pt1A6#YPPPSPPPPPPt16r 1[1\1]1^1_1\t1`C 1esectionspt1RN_Pt1SPPYPt1SYPRPt1STPSPt1SRPSPt1SSPVPt1SVP\Pt1SXPYQt1SVPZPt1SWPTPt1SPPUPt1STPRQt1bSPRQ;t1SUPRQt1Tt1U&N 1V1fsize_sectiont1|Q 1gsh1_Gestures1i#B1jcolorUt1@a0 11!1!1!1!t1@JV 1ksel1lUpdate1mbangtvww_SYPPPQRPPxPy11n_($gestures set $2 1 $1)tvw\_SYPPPQRPPxPy11o_($gestures[$1 1])t1A 1gp1_Weight1i1jUt13H 1gq1_Phrase1i1jUt1=H 1gr1_Section1i1jUt1J 1srp1i1jUt13Oa 1k1tCleart1`* 1u1st1v=Pt1=A 1k1tt137A 1sq1i1jUt1=)H 1sr1i1jUt1@2q 1sw1_FollowerDatabase1i1jUt11XRt1`<a 1xclearing1a1y(emptyHMMs)t11XQt1`* 1zphraset1`* 1{sectiontvwU_SYPPPQRPPxPy11|_($gestures[$2 0] rows 1)t1=X" 1P1!tvwUx_SYPPPQRPPxPy11}_($gestures set $emptygestures)t11XRt1`oX+ 1x1{t1A#YPPPSPPPPPPt11XQt1`* 1u1vPt1O 1s~1_newHMM1i1jUtvwV\_SYPPPQRPPxPy11_($gestures[$1 0])y|1endt1A 1gс1_HMMs1i1jUt1A#YPPPSPPPPPPt1S^PPt1SPXPt1SXPPt1SXQWPt1bXPUPBqqt1SQUPt1SQUPt1bUPPt1lcolorXt1SPPt1SPPt1SPPt1bUPQzt1Xt1bUPRPt1Xt1SRPQPt1S!PQPt1S'PQPt1SSPPt1bUPPt1Xt1SXQQt1Tt1SSRt1SQQt1_t1SXQQt1Tt1SQSt1SSP!Pt1bUP!Q*t1Xt1S_PPt1SPPt1SPPt1]t1SPPt1SPP!Rt1bPPP8t1SQPPt1SPPPt1SPPPt1SP"Pt1S"P!St1SQQt1_t1SXQQt1Tt1SQYPt1_t1SYP&Pt1S&P'Pt1SRRt1S&Q$Pt1S$P%Pt1S%P'Qt1bUPSt1Xt1bUPYQ.t1Xt1S]PPt1SPPt1SQ Pt1SR Pt1S PPt1Tpmaxqv2r#Nsvpatchert#Puorigin3tvsetbglockQtwwindowxsetfontySans Serif$Atzhidden{newex_!2 |r1_Init~#BcolorUtz1flonum#YPPPSPPPPPPtz1user1ftm.mess+/`_SYPPPQRPP1-->P1#T1_#ftm1versionRR11_#scope1begin11_#absargs0_1_2_3_4_5_ 6_!7_"8_#9_11$_#line1%_(($1 / 600.) * $2)tz11/`_SYPPPQRPP1P11$1%tz1&number+#YPPPSPPPPPPtz1&#YPPPSPPPPPPtz{+w 1'unpackrs,,tuV(t1(inletQ_Ptwxy$At1&f#YPPPSPPPPPPt11'L2_SYPPPQRPQ1Q11$1)_600tw1*linecountPt{Rb2 1+t1,b1-itw1*Qt{ 1.*rsJBnt1(jA_Pt1/outletn_Pt1/_Pt1(D_Ptwxy$At{oL 10gateRt11connectPPSPt11QPPPt11TPPQt11PQRPt12popt13newobj5 14p10RrsZ;itwxy$At{s 15+Qt1/s7_Pt1(sI_Pt{s 16/Rt{s 15Qt{s4 15t{ 1.St{s2 17changet{sm^ 18modifierst11VPPPt11PPSPt11SPTPt11TPUPt11UPXPt11XPQPt11QPWPt11PRRPt11RPSQt12t13< 1418t{ 1+1,1-t{S 1+1,1-t{, 1.t{M 19!-t{ L 1:clipPt{ 1;-t{' 19t{zL 1:PrsJBnt1(jA_Pt1/n_Pt1/_Pt1(D_Ptwxy$At{oL 10Rt11PPSPt11QPPPt11TPPQt11PQRPt12t13 y 1410Rt{  1;t{z3 15t{ 3 15t{U' 19t{-2 1_Pt1/n_Pt1/_Pt1(;_Ptwxy$At{o 10St11PPSPt11QPPPt11PQRPt11TPPQt11PRUPt12t13+ 1410St{+ 1+1-1,rst1/v _Pt1(<_Pt1(UB_Pt1=buttonq_Ptwxy$At1>message^ Pt1>v^ Qt{vt 10t11SPQPt11QPPPt11RPPPt11PPVPt11PPRPt11UPSPt11TPPQt12t13z2 141?oneshott112_2YPPPQRQQ1Q11$1@_0t1/9_Pt{+P 1;Rt{+Y 1+1-1-t11 _YPPPQRQQ1Q11$1A_clear, paintrect ($1 + 1) 0 ($2 + 2) 10 128 128 128t1/ 9_Pt1(R_Pt1(+Q_Pt1BtogglezQ_Pt{ze 15Qt11 P_PYPPPQRQQ1Q11$1C_(($2 + $1) / 2)t{z:H 1D>=t{2 1EselQPt{2 17t{+1( 1't{ y 1Fpackt11XPQPt11QP]Pt11]PPt11P\Pt11\PPt11QPt11PPt11PPt11PPt11QPt11PQt11PQt11PQt11QPt11PRt113PQt11Q%Pt11%P)Pt11P"Pt11)P"Pt11P"Pt11"PPt11PPt11_PPt11PPPt111PPPt11PPUPt11PP[Pt11[PZPt11Q+Pt11+P)Qt11Q"Qt11Q*Pt11*P)Rt11&P1Pt11Q*Qt11\QPt11PTPt11TPWPt11WPVPt11VP%Qt11%Q&Pt11P#Pt11Q#Pt111Q#Pt113PPt11#PPt11QPt11PPQt11PP^Pt11Q-Pt11Q(Pt11-P(Pt11(P&Qt11Q.Pt11.P,Pt11,PQt11SPQt11Q#Qt11-Q(Qt11UPTQt11Q'Pt11'P&Rt113P'Qt11YPRPt11RPSPt11,QQt11RPt11P/Pt110PPt11/PPt11Q$Pt11$PQt11VP/Qt11/Q0Pt11QPt11Q$Qt11Q Pt11 PRt11Q!Pt11!P Qt11PPt113P!Qt112P3Pt114P3Pt12tz13+C 141Grangedrivet11HlcdxrXZPQPPPtz1>D2 1Ixmax1J$1tz1>+C/ 1Kxmin1Jtz1>[C 1LminvalQ1Jtz1>Y@@ 1MmaxvalQ1Jtz1>X C 1LP1Jtz1>X@ 1MQ1Jtz1>XC 1LQ1Jtz1>[z@ 1MQ1Jt1Ncommentc0 1Och.t1Nb 1Otz11/2_SYPPPQRPQ1P11$1@tz1102_SYPPPQRPQ1P11$1P_1t1&X<!YPPPSPPPPPPtz11F=2_SYPPPQRPP1P11$1Q_#4t1&X!YPPPSPPPPPPtz11G2_SYPPPQRPP1P11$1R_#3t1Xd!YPPPSPPPPPPt1X!YPPPSPPPPPPtz1>XC 1LP1Jtz1>[g@ 1MP1Jt11Sftm.vecdisplayxdX\$$$?PUQ$$?UPQ$$?PPPQ$$?PS$$?PPPS$$?a{t1X!YPPPSPPPPPPt1X !YPPPSPPPPPPtz1>YC 1LQ1Jtz1>X@ 1MP1Jt11SxX\$$$?PUQ$$?PQ$$?PPPQ$$?PS$$?PPPS$$?a{t1X!YPPPSPPPPPPt1Xd!YPPPSPPPPPPtz1>[oC 1LP1Jtz1>Y.@ 1MP1Jt11SxX\$$$?PUQ$$?PQ$$?PPPQ$$?PS$$?PPPS$$?a{tz11>2_SYPPPQRPQ1P11$1T_500t1NnU= w1Usizet1&T#YPPPSPPPPPPt1&X!YPPPSPPPPPPt1NT) 1Vdisplaytwxy$@At1N:Q 1Wreal-time1Xtime1Ywarping1Z(following)t1BxT_Ptwxy$Ars^_tut1/1_Ptwxy$Atw1*Pt{Dr< 1[loadmessQt1&1#YPPPSPPPPPPt1&u#YPPPSPPPPPPrstwxy$Atw1*Pt{Z2 1E1\Cleartw1*Qt{F |]1_Likeliest~Ut{EF |^1_Phrase~Ut{@W< 1[Qt{~p" 10tw1*Rt1N0 1_pattern1&t1&\#YPPPSPPPPPPt1(~V_Pt1/~_Pt11TPRPt11QPTPt11UPTPt11WPPPt11TPPPt11VPXPt11XQTQt12t13qQ 141`phrasenumberrs<t1B}_Ptwxy$At{/ 10t{ 10t{} 10t11B_SYPPPQRPP1R11$1a_(($ch3 rotate -1) set 0 0 $1)t11_SYPPPQRPP1R11$1b_(($ch2 rotate -1) set 0 0 $1)t11}_SYPPPQRPP1R11$1c_(($ch1 rotate -1) set 0 0 $1)t11mT_SYPPPQRPP1R11$1d_($1[0 ($2 - 1)])t11fg_SYPPPQRPP1R11$1e_($ch3 append $1 $2)t11OT_SYPPPQRPP1R11$1dt112T_SYPPPQRPP1R11$1dt11&Rg_SYPPPQRPP1R11$1f_($ch1 append $1 $2)t11Gng_SYPPPQRPP1R11$1g_($ch2 append $1 $2)t1(_Pt1(_Pt1(_Pt1(_Pt1(&_Pt1(d_Pt11QPWPt11QPVPt11QPZPt11PPPt11P_Pt11_P\Pt11XPWQt11RPXPt11XP_Qt11PPt11P]Pt11YPVQt11RPYPt11YPQt11PPt11P^Pt11[PZQt11RP[Pt11[PQt11SPXQt11TPYQt11UP[Qt12t13@ 141hch123rsFt11_SYPPPQRPP1R11$1i_(($ref3 setcol 0 $1) setcol 1 $2)t11sg_SYPPPQRPP1R11$1j_($1 colref ($2 - 1))t113SYPPPTRPP1R11$1k_($ref1 size $1 2);11$1l_($ref2 size $1 2);11$1m_($ref3 size $1 2);11$1n_(($indices size $1 1) fill (new expr '($row)'))twxy$At1&#YPPPSPPPPPPt{WA |o1_HMMs~Ut{c 1+1,1-t11y;_SYPPPQRPP1R11p_#init1q_bang11$1r_($1[$2 0])t118_SYPPPQRPP1R11$1s_($1 rows)t11F_SYPPPQRPP1R11$1t_($1 [Bmean])t11|_SYPPPQRPP1R11$1u_(($ref2 setcol 0 $1) setcol 1 $2)t11Ugg_SYPPPQRPP1R11$1jt11P_SYPPPQRPP1R11$1v_(($ref1 setcol 0 $1) setcol 1 $2)t119;g_SYPPPQRPP1R11$1jt1(X_Pt1(W_Pt1(X_Pt1(H_Pt1(H_Pt1/_Pt11QP\Pt11]P\Pt11^P\Pt11\PZPt11ZP[Pt11[P_Pt11_PPPt11RP]Pt11_PPt11PWPt11]Q\Qt11PYPt11PPt11ZPVPt11VPWQt11ZPXPt11XPYQt11ZPPt11PQt11SPVQt11TPXQt11UPQt12t13 141wref123t{@ 10t1B@_Pt11W'SYPPPSRPP1Q11$1x_($ref1 size 0 2),11$1y_($ref2 size 0 2),11$1z_($ref3 size 0 2)t1(:_Pt11bY'SYPPPSRPP1Q11$1{_($ch1 size $2 1),11$1|_($ch2 size $2 1),11$1}_($ch3 size $2 1)t{Hx  1EQt{Hb 1~==Pt{  1+1,1-t{ 1+1,1-t{ 1+1,1-t1>a^ Pt1>Da^ Qt1&u#YPPPSPPPPPPt1( 8_Pt11ftm.objectBSY1Q11_#objQ1fmat11_#defP1_fmat 500 21ref31localt11BSY1Q11R111P1_fmat 500 11ch31t112_SYPPPQRPP1Q11$1_$ch3t1/_Pt112_SYPPPQRPP1Q11$1_$ref3t1/_Pt1(7_Pt1(7_Ptw1*Qt1>8!2 1I1Jt1>842 1range1Jt{sr3 1+1,1,1,1,1,1,t112_SYPPPQRPP1Q11$1_$ref2t11t2_SYPPPQRPP1Q11$1_$ref1t11BSY1Q11S111P11indices1t11a2_SYPPPQRPP1Q11$1_$ch2t11%2_SYPPPQRPP1Q11$1_$ch1t{ 10t1>a^ Qt1>a^ Qt{L 1E1StartLearn1StopLearn1StartDecode1StopDecodet{8O |є1_WhatToDo~Ut11BSY1Q11T111P11ref11t11BSY1Q11U111P11ref21t1/_Pt1/a_Pt1(@6_Pt1Bu~_Pt{tT4 1metro7t1&S#YPPPSPPPPPPt11u4_SYPPPQRPP1Q11$1_size $1 1t11BSY1Q11V111P11ch11t11BSY1Q11W111P11ch21t1(i7_Pt1/t_Pt1/%_Pt11S'SYPPPSRPP1Q11$1_($ch1 size 0 2),11$1_($ch2 size 0 2),11$1_($ch3 size 0 2)t{Y5 1;Qt11@;_SYPPPQRPP1Q11p1_(new fmat 0 0) 011$1rt{S> |џ1_Index~Ut{@, 1ftm.listt{@J# 1.$?t11_P5Pt1lcolorRt115P6Pt116PSPt11SPQPt11QPPPt11PP8Pt11PP0Pt110P1Pt11RP6Qt117PTPt11TPPQt11XP8Qt11*P9Pt1Xt119PSQt11/P7Pt11.P7Pt11-P7Pt11-Q8Rt119P7Qt11.Q8St11!P-Pt11-Q7Rt11/Q8Tt11"P.Pt11.Q7St11*P8Ut1Xt11)P/Pt11/Q7Tt117P;Pt11;P=Pt11;P Pt11;PPt11]PPt11^P]Pt11P]Pt11PPt11PWPt11 PWPt11PWPt1fasten_P^PEuzut1Rt11^PPt11PPt11P4Pt11^P4Pt11PPt11P:Pt11P:Pt11:PQt11QPt11PPt11 PPt11PPt11R$Pt11$P#Pt11P#Pt11 P#Pt11RPt11RUPt111PUPt1^t11R,Pt11,P*Pt11+P*Pt11_Pt1!b?_Pt1b-K 1"enable1#recordtvyRt1&" 1$start/stoptvyQtzl^< 1%loadmessPt1&togglew_Ptzb {Qt1&by_PtzbV 1'gateRtq ; 1(StopDecodetzb) }QPtz) }QPt 3 1)StopLearnt7 1*StartLearntb? 1t1+connect^PYPt1+YPPt1+QPt1+PPt1+]PWPt1+ZPWPt1+WPXPt1+XPVPt1+VPTPt1+TPPPt1+RP_Pt1+QP_Pt1+UP_Pt1+PP_Pt1+TQUPt1+PVQt1+VQSPt1+SPQPt1+SQRPt1,popt1-newobj\P 1.p1/WhatToDotz2 10pipe$Ptz2 11delay$tzr2 10$Ptzu? 11 12ltz? 13zl14regtzs2 10$Ptz);N 15pvar16PhraseInctz&L 1517SectionInct18user19incdeccPPt1:objectname16tvwx$@At1cp1 1;phrasetvwx$AtzXZ2 101settzB? 1=1>tz,A 111Utz-A 111Ut1?flonumc#Y$'7PQSPPPPPPt1:1@Resampletz? 151Aupdatet1> 1B(0=1Cdisable)t0$ 1t1:1AtzI2 1D*$Btz2 1E/$Bt181Fhslider[_2QPPt1:1GctrasttzrX 151Gtz]F 1=1>t1Hhidden1[ @tz? 151Iopentz? 151Jsavetz? 151Kloadtzu 111UtzV? 151LLearntzX? 151MStarttz2 101NO.PtzQ 1O1_Contrast11Utz3Q 1O11Utz2 101NPtzc 11P1_LHthreshold11Utz; 1=1>tz] 1P11Utz` 151QLHthresholdtz= 1R1_Cyclic11Utz= 1=1>tz= 1R11Utz= 151SCyclictzP2 101tzA 1W11Utz;? 151XPhrasetz0 1~tzyZ 151YClearSectiontz2 101tz9R 1[11Utz? 151\SectiontzP 1]1_Resample11UtzI; 1=1>tz5Q 1]11Utz^K 151@tzQ 1^1_StdDev11UtzI= 1=1>tz6Q 1^11Utz^= 151_StdDevrs,eCtvwx$AtvyPtz21 11212tvyQt2 1`size1a$1tzb 1DRtz22 131brevtzZw {Qt181cftm.messH3_SYPPPQRPP1d-->Q1e#T1f_#ftm1gversionRR1e1h_#scope1ibegin1e1j_#absargsk0_l1_m2_n3_o4_p5_q6_r7_s8_t9_1e1u_#line1v_($1 cols)1e1h1wendtz2: 131xgrouptz22 1ypack$Ptz2Yh 1zftm.iter1{@mode1|coltz2? 1=1>t1!2_Pt12:_Pt1+QP[Pt1+[PSPt1+SPTPt1+TPXPt1+XPUPt1+UPRPt1+RPPPt1}fastenZPPP/7/t1+SQWPt1+WPTQt1}VPYPgàt1+YPUQt1+[QVPt1+VPZPt1,t1-I< 1.1~set_listtzE 1mnm.list2rowtzA 1р1_Weight11Utz4? 1р11Ut0$ 1#opent1:1It1button"\_Pt1:1tvwx$At10[1decodingt1![_Ptvwx$At1N. 1contrastt1/ 1offt1/ 1ont1  1cyclict1uf 1channel1weightst181multiSlider$$$?Qy /PRZUP1#M1frgbPPP11brgb11rgb211rgb3PPP11rgb4%4[11rgb5Ji11rgb6p11rgb7n11rgb8Yɠ11rgb9>%11rgb10Wrt1:1Zt1819\PPt1:17t\" 1#savet1:1Jt\" 1#loadt1:1Kt181ledcYPdt1:1Lt1?#YP$RSPPPPPPt1:1Qt1N. 1std1devt1?[#Y$'7PQSPPPPPPt1:1_t1N  1resett1c_Pt1:1Vtvwx$@At1numbers!\QPQSPPPPPPt1:1Xt1\QPQSPPPPPPt1:1\t1\_Pt1:1Ytvwx$At12 1T1Ut10^' 1t1&[YPt1:1Mtvwx$@At1YI' 1startt1`I/ 1learnt1[p1 1sectiont1&_Pt1:1Stvwx$At1Z0d1learn/playtvwx$At1c3 1resampletvyUt1 101is1added1to1put1the1interaction1in11same1thread1as11data1stream1(to1avoid1bug11multiprocessor)t181panel01#X111PPP11borderP11roundedP11shadowR11donet1backgroundt181Q01111PPP11P11P11R11t1t1H1+]PPt1H1+P]Pt1H1+^PePt1H1+eP^Pt1H1+PPSPt1H1+PPPt1+4P5Pt1+:P;Pt1+7PwPt1+{P8Pt1+8P6Pt1+6P=Pt1+=PxPt1+xP9Pt1+;P9Pt1+vQzPt1+zP0Pt1+0P.Pt1+.P3Pt1+3PyPt1+yP1Pt1+5P1Pt1+wQ{Pt1+/PvPt1+0PfPt1+8PgPt1+'P(Pt1+(P&Pt1+&PhPt1+hP)Pt1+?P@Pt1+@P>Pt1+>PFPt1+FPAPt1+[P]Pt1+]PKPt1+KPaPt1+aP`Pt1+XPLPt1+OPLPt1+NPLPt1+MPLPt1++P,Pt1+,P*Pt1+*PkPt1+kP-Pt1+CPDPt1+DPBPt1+BPmPt1+mPEPt1+ZP\Pt1+\PJPt1+JP^Pt1+^P_Pt1+bPcPt1+cPuPt1+uPtPt1+"P%Pt1+%P2Pt1+2PjPt1+jPlPt1+lPiPt1+iP$Pt1+$P#Pt1+pPnPt1+nPrPt1+jQiQt1+qPnQt1+nQoPt1+GPUPt1+UPQPt1+QPRPt1+RPIPt1+IPTPt1+TPHPt1,pmaxqv2r#Nsvpatcher,}t#PuoriginPtvwindowwsetfontxSans Serif$AtynewexN zr1_WhatToDo|#B}colorUty< ~s1_LH|}UtybvL ~1_IndexMax|}Uty? ~1_LHmax|}UtyL ~1_Likeliest|}UtyV z1_LHthreshold|}UtyP ~|}UrsAtvwx$Atv1linecountPty# 1gatety#  1selQt1inlet66_Pt1user1ftm.mess6w;_SYPPPQRPP1-->Q1#T1_#ftm1versionRR11_#scope1begin11 _#absargs!0_"1_#2_$3_%4_&5_'6_(7_)8_*9_11+_#init1,_bang11-_#line1._($1[$2 0])tv1Qty6, 1/ftm.listtv1Pt10message#? 11StartDecodet12outlet5_PtyZ 1tv1QtyG 13<$t12#1_Pt125_Pt16_Pt14flonum#YPPPSPPPPPPtyZ# 1$ty  1Qty, 13$ r15mnm.minmax16@type17float1Qt18newobjXT 151617t16_Pt19connectYPPt19PPt19TP\Pt19SP\Pt19P\Pt19\PXPt19_P^Pt19^P]Pt19]PQt19UPYPt1:fastenPPQPN]Nt19YPZPt19ZPTPt1:QS^Qqlqt19QRZQt19ZPRPt19RPSPt19VPUPt19UPRQt1:QR[Pjjt19QSWPt1;popt18< 1t1?l1?1?t12(_Ptv1Qr1@ftm.copy1Afmat1Qt18J 1@1Atv1Pr1@1A1Qt18!?J 1@1At11{P6_SYPPPQRPP1Q11-1B_(exp($1))t14{gLYPPPSPPPPPPt1{&_Pt1!)_Pt11d2_SYPPPQRPQ1Q11+1C_111-1Ct11U3_SYPPPQRPP1Q11-1D_($1 sum)t11!2_SYPPPQRPP1Q11-1E_($1 exp)t11!>_SYPPPQRPP1Q11-1F_($1 div $2)t11!@_SYPPPQRPP1Q11-1G_($1 mul $2)111Hendt12!!_Pt19VPZPt19ZPQPt19QPSPt19SP]Pt19]PRPt19RPPPt19]QTPt19TPRQt19UPQQt19XPQQt19WPYPt19YPXPt19]R[Pt19[P\Pt1;t18Ih 1<1InormalizelikelihoodtyJ zJ1_Contrast|}UtyIF ~K1_LHnorm|}UtyQw; ~L1_State|}Uty)F? zM1_Weight|}UtyN ~N1_newHMM|}UtymF< zO1_HMMs|}UtyF< zP1_Cyclic|}Uty&K zQ1_Resample|}UtyFF zR1_StdDev|}Utyu< ~S1_Index|}Utys 1Tmnm.makeL2RrsottuP\tvwx$At10Z  1Udumpt10bZ^ Pt10Z^ Qty 1t10Z^ Pt1VbuttonI\_Pr1Wcomlet1Xbang1Ywhen1Zstartrecognizet12I_Pt1[#_Pr1W1[data1\(reconize1]mode)t12&_Pr1W1^learning1[t12_Pt10Z  1_cleart10&[^ Qty& 1ty& 1`mnm.qty&< 1111aStopDecode1bStartLearn1cStopLearnr1W1dmessage:1estartlearn1fstoplearn1Z1gstoprecognizet1&!_Pt19PPQPt19QPTPt1:^PSPgs+st19TPSPt19SPWPt1:XPSQ>t19QPZPt19ZPYPt19QQ^Pt19QR]Pt1:[P\Pqqt19]P\Pt19_PRPt19\PRPt19UPRPt19QRUPt1:XP\Qt19RQVPt19QS_Pt19QS[Pt1;t18Qw 1<1hroutingtyQ` 1imnm.L2Rdecodingt1Q__Pt1jcomment_ 1kFrederic1lBevilacqua1mand1ncollaborators1o,1pReal1qTime1rMusical1sInteractions1tTeamt1ubackgroundt1jPt 1vGesture1wFollower1xv0.22t1ut1jP" 1y2006-20071zIrcam1{-1|Centre1}Pompidout1ut19SPUPt19UPTPt19TP^Pt19UQTQt19TQPt19PPt19URVPt19VP\Pt19XPTRt19PUQt19TRQt19QPt19PRt19RPt19ZPTSt19TRWPt19YPVQt19]PTTt19TQPt19P_Pt19[PTUt19TSPt19PQt19QPt1;pmaxqv2r#Nsvpatcherv_it#Puorigin9tvwindowwsetfontxSans Serif$Atynewex3P zs1_Init|#B}colorUty3 ~tbt1user1ftm.messj_SYPPPQRPP1-->P1#T1_#ftm1versionRR11_#scope1begin11_#absargs0_1_2_3_4_5_6_ 7_!8_"9_11#_#line1$_$emptygestures[0 0]tyS z%1_HMMs|}Ut11&ftm.object SY1P11'_#objQ1(mat11)_#messQ1*sizeQR11'R1(11)R1*QQ11'S1+dict11'T1,fmat11)T1*QR11)T1-setPP$?$?11)S1-1._markers1/_#411'U1,11)U1*QR11)U1-PP$$11)S1-10_enveloppes11_#511'V1,11)V1*QQ11)V1-PP$?11)S1-12_Pi13_#611)S1-14_NQ11'W1,11)W1*QQ11)W1-PP$>11)S1-15_Bstddev16_#711)S1-17_MQ11'X1,11)X1*QQ11)X1-PP$11)S1-18_Bmean19_#811)S1-1:_Pself$?11)R1;rowP1<_#311'Y1,11)Y1*QQ11)Y1-PP$11)Q1;P1=_#21>_#911?_#defQ1@_mat1Aemptygestures1Blocalt11[vG_SYPPPQRPP1P11#1C_($init set $1)t1DinletD_Pty3\2 ~1Elt1D3@_Pt1D,C_Pt1Fbutton3_Pt11N_SYPPPQRPP1P11#1G_$init[Contrast]t11\_SYPPPQRPP1P11#1H_$init[LHthreshold]t11Q_SYPPPQRPP1P11#1I_$init[Resample]t11<C_SYPPPQRPP1P11#1J_$init[Cyclic]t11F_SYPPPQRPP1P11#1K_$init[Phrase]ty? zL1_Phrase|}Ut11G_SYPPPQRPP1P11#1M_$init[StdDev]t11OH_SYPPPQRPP1P11#1N_$init[Section]t1Omessage,j' 1Pexportt1Qobjectname1Rsave[1]t1O,Y' 1Simportt1Q1Tload[1]t11& SY1P11'Z1+11?P1U_dict1Vinit1B111WendtyQ zX1_Contrast|}Utyc zY1_LHthreshold|}Uty<= zZ1_Cyclic|}UtyOS z[1_Section|}UtyP z\1_Resample|}UtyQ z]1_StdDev|}Ut1OF" 1^#opent1Q1_opent1Oj" 1`#savet1Q1asavet1OY" 1b#loadt1Q1cloadt1dconnectPPt1dPPt1dPPt1dPPt1dPPt1dQPt1dQPt1dPTPt1dR]Pt1d]PSPt1dSPt1dPVPt1dTPt1dPWPt1dPYPt1d[PYPt1dZPYPt1dRPYPt1dQPYPt1dPPYPt1dUPt1dPXPt1dV\Pt1d\PUPt1dW_Pt1d_P^Pt1dXPt1dPPt1epoppmaxqv2r#NsvpatcherVOt#PuorigintvsetbglockQtwwindowxsetfontySans Serif$Atzhidden{newexV;2 |r1_Init~#BcolorUtwxy$@At1commentCu 1markers1and1enveloppestwxy$Atz1messageC 1maxvalR1$1tz1@@ 1minvalR1tz1user1ftm.mess@|?_SYPPPQRPP1-->P1#T1_#ftm1versionRR11_#scope1begin11 _#absargs!0_"1_#2_$3_%4_&5_'6_(7_)8_*9_11+_#line1,_($1 / 100.)tz11}?_SYPPPQRPP1P11+1,tz11i_SYPPPQRPP1P11+1-_(($1 / 600.) * 127.)tz1.number@h#YPPPSPPPPPPtz1.j#YPPPSPPPPPPtz{@QZ 1/unpackrs~,~,tuP|t11E2_2YPPPQRQQ1Q11+10_100t11L2_2YPPPQRQQ1Q11+11_0t11_YPPPQSQQ1Q11+12_clear, paintrect 0 (($3 - 1) - $2) 10 ($3 - $1) 128 128 128twxy$At{p2 13+Rt11R2_SYPPPQRPQ1Q11+10t{z 2 14t15b16it{> 17*rsJBnt18inletjA_Pt19outletn_Pt19_Pt18D_Ptwxy$At{oL 1:gateRt1;connectPPSPt1;QPPPt1;TPPQt1;PQRPt1p1:RrsZ;itwxy$At{s 13Qt19s7_Pt18sI_Pt{s 1?/Rt{s 13Qt{s4 13t{ 17St{s2 1@changet{sm^ 1Amodifierst1;VPPPt1;PPSPt1;SPTPt1;TPUPt1;UPXPt1;XPQPt1;QPWPt1;PRRPt1;RPSQt11At{d 141516t{~S 141516t{Tz 17t{uz 1B!-t{3L 1CclipPt{z 1D-t{z' 1Bt{L 1CPrsJBnt18jA_Pt19n_Pt19_Pt18D_Ptwxy$At{oL 1:Rt1;PPSPt1;QPPPt1;TPPQt1;PQRPt11:Rt{4z 1Dt{D3 13t{3D3 13t{}d' 1Bt{Uz2 1Eminimumt{> 17t{5 141616t{L 1Ct18_Pt{[ 1/t{z' 1Bt{tz 17t{SL 1CPt{S2 141616t{S 2 1Dt{S[ 141616t{c3 141616t{3b3 141616rsJht19_Pt18d>_Pt19n_Pt19_Pt18;_Ptwxy$At{o 1:St1;PPSPt1;QPPPt1;PQRPt1;TPPQt1;PRUPt11:St{S@ 141615rst19v _Pt18<_Pt18UB_Pt1Fbuttonq_Ptwxy$At1^ Pt1v^ Qt{vt 1:t1;SPQPt1;RPPPt1;QPPPt1;PPVPt1;PPRPt1;UPSPt1;TPPQt11Goneshott19_Pt{S' 1Bt{SeY 141616t193_Pt18_Pt18*_Pt1Htoggle_Pt{ 13Qt113P_PYPPPQRQQ1Q11+1I_(($2 + $1) / 2)t{H 1J>=t{c2 1KselQPt{M2 1@t{*3 1/t{3y 1Lpackt1;XPQPt1;QQ\Pt1;\P_Pt1;_P[Pt1;[PPt1;QPt1;PPt1;PPt1;PPt1;0P1Pt1;1P\Qt1;QPt1;PQt1;^PQt1;PQt1;QPt1;PRt1;0PQt1;PP2Pt1;Q#Pt1;#P'Pt1;P Pt1;'P Pt1;P Pt1;3PPt1;PPt1; PPt1;/PPPt1;PPPt1;PPUPt1;2PZPt1;Q)Pt1;)P'Qt1;Q Qt1;Q(Pt1;(P'Rt1;$P/Pt1;Q(Qt1;[Q^Pt1;^PTPt1;TPWPt1;WPVPt1;VP#Qt1;#Q$Pt1;Q!Pt1;P!Pt1;/Q!Pt1;4PPt1;QPt1;!PPt1;PPQt1;PP]Pt1;Q+Pt1;Q&Pt1;+P&Pt1;&P$Qt1;_Q,Pt1;,P*Pt1;SP^Qt1;*P^Qt1;Q!Qt1;+Q&Qt1;UPTQt1;Q%Pt1;%P$Rt1;0P%Qt1;YPRPt1;RPSPt1;*QQt1;RPt1;P-Pt1;-PPt1;.PPt1;0P2Rt1;Q"Pt1;"PQt1;VP-Qt1;-Q.Pt1;QPt1;Q"Qt1;QPt1;PRt1;QPt1;PQt1;PPt1;0PQt11Mrangedrivet11Nlcd:ZdPQPPPtz11ci_SYPPPQRPP1P11+1-tz1.|#YPPPSPPPPPPtz1.c{#YPPPSPPPPPPtz{Qw 1/rs,,tuV(t18Q_Ptwxy$At1.f#YPPPSPPPPPPt11'L2_SYPPPQRPQ1Q11+1O_600tw1PlinecountPt{Rb2 141516tw1PQt{ 17rsJBnt18jA_Pt19n_Pt19_Pt18D_Ptwxy$At{oL 1:Rt1;PPSPt1;QPPPt1;TPPQt1;PQRPt11:RrsZ;itwxy$At{s 13Qt19s7_Pt18sI_Pt{s 1?Rt{s 13Qt{s4 13t{ 17St{s2 1@t{sm^ 1At1;VPPPt1;PPSPt1;SPTPt1;TPUPt1;UPXPt1;XPQPt1;QPWPt1;PRRPt1;RPSQt11At{ 141516t{S 141516t{, 17t{M 1Bt{ L 1CPt{ 1Dt{' 1Bt{zL 1CPrsJBnt18jA_Pt19n_Pt19_Pt18D_Ptwxy$At{oL 1:Rt1;PPSPt1;QPPPt1;TPPQt1;PQRPt11:Rt{  1Dt{z3 13t{ 3 13t{U' 1Bt{-2 1Et{S 17t{<5 141616t{L 1Ct18`R_Pt{`i[ 1/t{m' 1Bt{L 17t{+L 1CPt{,72 141616t{+P2 1Dt{+[ 141616t{z3 141616t{ 3 141616rsJht19_Pt18d>_Pt19n_Pt19_Pt18;_Ptwxy$At{o 1:St1;PPSPt1;QPPPt1;PQRPt1;TPPQt1;PRUPt11:St{+ 141615rst19v _Pt18<_Pt18UB_Pt1Fq_Ptwxy$At1^ Pt1v^ Qt{vt 1:t1;SPQPt1;QPPPt1;RPPPt1;PPVPt1;PPRPt1;UPSPt1;TPPQt11Gt112_2YPPPQRQQ1Q11+11t199_Pt{+P 1DRt{+Y 141616t11 _YPPPQRQQ1Q11+1Q_clear, paintrect ($1 + 1) 0 ($2 + 2) 10 128 128 128t19 9_Pt18R_Pt18+Q_Pt1HzQ_Pt{ze 13Qt11 P_PYPPPQRQQ1Q11+1It{z:H 1Jt{2 1KQPt{2 1@t{+1( 1/t{ y 1Lt1;XPQPt1;QP]Pt1;]PPt1;P\Pt1;QPt1;PPt1;PPt1;PPt1;\PPt1;QPt1;PQt1;PQt1;PQt1;QPt1;PRt1;3PQt1;Q%Pt1;%P)Pt1;P"Pt1;)P"Pt1;P"Pt1;"PPt1;PPt1;_PPt1;PPPt1;1PPPt1;PPUPt1;PP[Pt1;[PZPt1;Q+Pt1;+P)Qt1;Q"Qt1;Q*Pt1;*P)Rt1;&P1Pt1;Q*Qt1;\QPt1;PTPt1;TPWPt1;WPVPt1;VP%Qt1;%Q&Pt1;P#Pt1;Q#Pt1;1Q#Pt1;3PPt1;#PPt1;QPt1;PPQt1;PP^Pt1;Q-Pt1;Q(Pt1;-P(Pt1;(P&Qt1;Q.Pt1;.P,Pt1;,PQt1;SPQt1;Q#Qt1;-Q(Qt1;UPTQt1;Q'Pt1;'P&Rt1;3P'Qt1;YPRPt1;RPSPt1;,QQt1;RPt1;P/Pt1;0PPt1;/PPt1;Q$Pt1;$PQt1;VP/Qt1;/Q0Pt1;QPt1;Q$Qt1;Q Pt1; PRt1;Q!Pt1;!P Qt1;PPt1;3P!Qt1;2P3Pt1;4P3Pt11Mt11NCXZPQPPPt1g1 1Renveloppet1H g_Ptz1.v#YPPPSPPPPPPtz{ +2 1BQtz1 >2 1Sset1tz{=,2 1BQtz1=@2 1S1tz19@_Ptz{2 1?$Btz18(_Pt1w1 1Trealtimet1H w_Ptz11&2_SYPPPQRPQ1P11+11t1 w. 1Tt1Hw_Ptz18'_Pt1ew3 1Uclear1Venv.t1FTw_Ptz19W_Pt1g1 1t1Hg_Ptz19W_Pt1."YPPQSPPPPPPt1."YPPQSPPPPPPt1."YPPQSPPPPPPtwxy$@At1#u 1Wch.twxy$At1hw7 1Xdelete1Yallt1FWw_Ptz1C 1Q1tz1@@ 1Q1tz1C 1P1tz1@@ 1P1tz1c2 1Zxmax1tz1/ 1[xmin1t1g7 1\delete:1]'d'twxy$@At1Cer 1^learning1_exampletwxy$ArsXg(!tuPtwxy$Atw1PQt{P |`1_IndexMax~Ut{: |a1_Index~Ut{)F |b1_Phrase~Ut10N^ Pt{01 1cpipePPtw1PRt1-1 1drealtimenveloppet180_Ptw1PPt{~2 1cPPtw1PQt{1 1cPPt{{0 1c$Pt{,4 1c$Pt1] 1extw1PPt1B 1U1Rt11 1fenable1Rtw1PQt11 1gclockt1eS 1f1Ttw1PPrsWltwxy$Atw1PQt11" 1Ut11" 1hstartt11" 1ion/offt11" 1et1s1" 1jyt18F_Pt18D_Pt11" 1gt{I/ 1:t1#1N 1f1Tt11kftm.objectG$SY1R11l_#objQ1mfmat11n_#defP1o_fmat1penvtemp1qlocalrs>(<twxy$At{2 1?Qtw1PQt{] |r1_Resample~Ut{!2 1@t11Q_SYPPPQRPP1S11+1s_(($1 + 1) * $2)t{2 1?dt116k_SYPPPQRPP1S11+1t_($envtemp size $1 1)t18C_Ptw1PPt{]2 1KQt{k 1:t1.2#YPPPSPPPPPPt11oSYPPPRRPP1S11+1u_($envtemp size $1 1);11+1v_($envtemp fill 0);t1.#YPPPSPPPPPPt11s2_SYPPPQRPQ1S11+10t11lv_SYPPPQRPP1S11+1w_($envtemp set $1 0 $2)t{ 1415r1xcounter1y#X1zflagsPPt1=c 1xt1^ Pt18_Pt18_Pt1;QPYPt1;YPZPt1;ZPTPt1;TPSPt1;SPPt1;PUPt1;PPZQt1;_PPt1;P]Pt1;P^Pt1;^P_Pt1;PQt1;YPRPt1;RPSRt1;VP^Qt1;VP_Qt1;\PUQt1;YP[Pt1;[PVPt1;VPWPt1;WPXPt11{realtime_envt{( 1:t11_SYPPPQRPP1R11|_#init1}_bang11+1~_(($1 colref 0) set $envtemp)t18II_PrsVtwxy$At1.V#YPPPSPPPPPPt{D 1415tw1PQt{M2 1@Ptw1PPt{D  16t{2 1@tw1PQt{kC 1speedlimZt{> 1LPȠt{32 1linePQtw1PPt{2 1:t{2 1<_t19_Pt18/_Pt{2 1absPt{2 1DPt{w2 141616t1;SP^Pt1;^PPPt1;PQQPt1;QPRPt1;RPUPt1;UPVPt1;VPXPt1fasten[PWPI++t1;XPWPt1;WP\Pt1;\PYPt1;YPTPt1;PPQQt1;^PVQt1UPZP!٠t1;ZR]Pt1;]P[Pt1;^P[Qt11t{,< 1sх0-reset~Ut{ 141515t1` 1U1t1F_Pt11:_SYPPPQRPP1R11+1_($2 fill 0.)t11V_SYPPPQSPP1R11+1_($3 set $1 0 $2)t{ 14151ft{$ 1:t18mA_Pt18C_Pt18B_Pt18rB_Pt18C_Ptw1PPt1Z07 1t1;TPVPt1;VPWPt1;\P]Pt1;WP]Pt1;WQXPt1;QP^Pt1;^PVQt1;RPXQt1;UPXRt1lcolorZt1;_PPt1;PPt1;RPQt1;PQt1;PRt1;_PPt1;PPt1;UPQt1Zt1;SPZPt1;ZP\Pt1;\QYPt1;UPYQt1Zt11rs4tu@twxy$Atw1PPt{= 13Qt{=| 1:Rtw1PQt{ < 1х~Ut{Z < 1х~Utw1PPt1P4N 1f1Tt11k$SY1R11lR1m11nP1o1markerstemp1qt1P- 1t11 1erstwxy$Atw1PQt{2 1?Qt{] |r~Utw1PPt{2 1@t11Q_SYPPPQRPP1S11+1st{2 1?dt182_Pt{]2 1KQt{k 1:t1.2#YPPPSPPPPPPt11SYPPPRRPP1S11+1_($markerstemp size $1 1);11+1_($markerstemp fill 0);t1.#YPPPSPPPPPPt11u2_SYPPPQRPQ1S11+10t11(_SYPPPQRPP1S11+1_($markerstemp size $1 1)t112t_SYPPPQRPP1S11+1_($markerstemp set $1 0 1)t{ 1415r1x1y1zPPt1=c 1xt1^ Pt{2UX 16Pt18_Pt18_Pt1;^PRPt1;RPVPt1;QP[Pt1;[P\Pt1;\PUPt1;UPTPt1;TPPt1;PRQt1;PPt1;PWPt1;P_Pt1;_PPt1;PP\Qt1;PQt1;[PSPt1;SPTRt1;XP_Qt1;XPQt1;[P]Pt1;]PXPt1;XPYPt1;YPZPt11realtime_markingt{N( 1:t{N9 14151lt11}_SYPPPQRPP1R11|1}11+1_(($1 colref 0) set $markerstemp)t{=< 1х~Ut1flonumG,YPPPSPPPPPPt{( 14151515r1ftm.value1Rt1=Lz5 1tw1PRt1ZT3 1X1t1I3 1add1tw1PQrstwxy$At{2 141516t{2, 1zl1nthQt{2^ 14115t1Cs^ Pt1122E_SYPPPQRPP1S11+1_($1 colref 0)r1ftm.copy1m1St1=2GJ 11mt{2/ 1accumPt112V_SYPPPQSPP1S11+1_($3 set $2 1 $1)t{2e 1ftm.iter1@mode1rowt182_Pt1;PPUPt1;UPTPt1;TPWPt1;WPQPt1;QPXPt1;XPYPt1;YPSPt1;VPSPt1;SPRPt1;WQVPt1;YQSQt1;QQRQt1;PPRRt11createstepst12\ 1U1Y1t1F_Pt11A:_SYPPPQRPP1R11+1t1[#&YPPPSPPPPPPt1F_Pt{=) 16Pt1x+#YPPPSPPPPPPt1^ 1dt{Zq( 1key~Ut{Z: 1selectdt1FZ_Pt{Z 16Pt{Z( 1415151t{=( 1415151t11x@P_SYPPPQRPP1R11+1_($2 set $1 0 0)t11[8P_SYPPPQRPP1R11+1_($2 set $1 0 1)t{e( 1~Ut{{3 1 t13 1space1bart18T/_Pt181_Pt18?_Pt182_Pt18=2_Pt18 1_Pt1 " 1gt1;RP,Pt1;,P+Pt1;+PPt1;P\Pt1;\P Pt1;"PPt1;QPt1;]QPt1;\QPt1;PPt1;\RPt1;PZPt1;PQt1;VPQt1Zt1;VPZQt1Zt1;YPXPt1;XPPt1;P+Qt1;+Q$Pt1;SP$Qt1;QP$Rt1;RP#Pt1;#P"Pt1;VP#Qt1Zt1;"Q!Pt1;UPPt1;PPt1;P_Pt1;_P^Pt1;^P]Pt1;]P)Pt1;P^Qt1;]RPt1;P[Pt1;VP[Qt1Zt1;TPPt1;PPt1;P*Pt1;RPt1;VPQt1Zt11tw1PQt{I |Ѧ1_Likeliest~Utw1PPrs2tuPtwxy$Atw1PQt1(K6 1Indext1`L6 11Maxt18@\_Pt18{\_Pt1N: 1t11H_SYPPPQRPP1R11+1_($1 colref 0)t1 #YPPPSPPPPPPt11;_SYPPPQRPP1R11+1_($2[$1 0])t11H_SYPPPQRPP1R11+1_($1 colref 1)t{@xE 1mnm.mm1mult11@Z_SYPPPQRPP1R11|1}11+1_($1[$2 0])t1!#YPPPSPPPPPPt11;_SYPPPQRPP1R11+1_($2[$1 1])t18__Pt18__Pt18[_Pt195_Pt194_Ptw1PPt1L- 1likeliestt1N/ 1t1;PZPt1;ZPYPt1;PZQt1;TPYQt1;YPWPt1;WPXPt1;XPSPt1;UP[Pt1;[PWQt1;YP\Pt1;\P]Pt1;]PRPt1;VP^Pt1;^P\Qt11output_markers_envrs Et11kh$SY1R11lS1m11_#messS1sizeQQ11S1SPP$11nQ1o1zero1qtwxy$At{4 14151t{< 1х~Ut11C_SYPPPQRPP1R11|1_($emptyHMMs[0 0])11+1_($1[Bmean])t{D 14151t{ 14151t11Di2_SYPPPQRPP1R11+1_$zerot11i2_SYPPPQRPP1R11+1t{DO+ 1routePt{O+ 1Pt{4O+ 1Pt114i2_SYPPPQRPP1R11+1t1.D5#YPPPSPPPPPPt{e 141516t11g_SYPPPQRPP1R11+1_($1 colref ($2 - 1))t1.45#YPPPSPPPPPPt1.5#YPPPSPPPPPPt{ 141516t{U 141516t11g_SYPPPQRPP1R11+1t11Zg_SYPPPQRPP1R11+1t18_Pt18D!_Pt18!_Pt184!_Pt19U_Pt19_Pt19E_Pt1;PWPt1;SP\Pt1;\PPt1;PPt1;PPt1;WPPPt1;QPPt1;QYPt1;YQWQt1;PXPt1;TP[Pt1;[PPt1;PPt1;PPt1;PPt1;PPt1;PPt1;^PPt1;ZPPt1;YPPt1;XPQPt1;QQPt1;QZPt1;ZQXQt1;P]Pt1;UP_Pt1;_PPt1;PPt1;PPt1;]PRPt1;QRPt1;Q^Pt1;^Q]Qt1;VPPt11to_vecdisplayt18~_Pt18_Pt{)< |х~Utw1PQt1ib= 1t1b` 1U1tw1PRt1e0 1clearall1tw1PQt{EV 1Ѽ1_Enveloppes~Ut{L 1ѽ1_Markers~Ut18_Ptw1PPt1L3 1t1"M7 1Rt19:5_Pt1u] 1jt1,] 1et18{_Pt193_Pt11H_SYPPPQRPP1Q11+1t11hW_SYPPPQRPP1Q11+1_($1[enveloppes])t18_Pt196_Pt{= |ѿ1_HMMs~Ut{*F |Ѧ~Ut{< 1loadmessQtw1PQt1 1ch3t1h 1ch2t1N 1ch1t192_Pt18_Pt1.0b#YPPPSPPPPPPt1.a#YPPPSPPPPPPt1mM^ Qt{ 1:t18h_Pt18O_Pt1N^ Pt1N^ Qt1,,YPPPSPPPPPPt18f_Pt{5$ 141516t1,,YPPPSPPPPPPt1*YPPPSPPPPPPt118_SYPPPQRPP1Q11+1_($1 rows)t{,l 1expr1($f1/127.)*$f2t11H_SYPPPQRPP1Q11+1t11lL_SYPPPQRPP1Q11+1_($1[markers])t11P;_SYPPPQRPP1Q11|1}11+1t{9 1K1StartLearn1StopLearn1StartDecode1StopDecodet{%n |1_WhatToDo~Ut18,_Pt192_Pt19t2_Pt19P2_Ptw1PRt1)G 1pattern1.t1;P5Pt1;5PQPt1;P5Qt1;5QRPt1;P5Rt1;WP5St1;5RPt1;2PWPt1; PWPt1;^PWPt1;WPXPt1;XPYPt1;YPSPt1;PPt1;PPt1;P^Pt1;P^Pt1;GPQt1;^QWQt1;XP8Pt1;4PBPt1;BP8Qt1;UPVPt1;VPPt1;PPt1;PPt1;P8Rt1VQPJt1;3P8St1;TP?Pt1;?PPt1;PZPt1;ZP]Pt1;]P8Tt1;VRFPt1;FPPt1PPr[t1;_P8Ut1;VSPt1XP[Pt1;[P\Pt1;\PZQt1WP#Pfft1#P$Pt1;$P%Pt1;#P9Pt1;"PAPt1;AP9Qt1]P9R1t1;CPEPt1;EP9St1P9TNt13P9Ugt1;&P@Pt1;@P9Vt1;,P9Wt1;HP6Pt1;6P!Pt1;6P-Pt1;IP6Qt1;7P6Rt1XP6S#t1;#P6Tt1;6Q)Pt1;6Q.Pt11t11ftm.vecdisplayCXd$$$BPUQ$$UPQ$$PQ$$PS$$?PPPS$$?a{t1VgJ 1add:111,tz11^2_SYPPPQRPP1P11+1_#4tz11^2_SYPPPQRPP1P11+1_#3tz11^2_SYPPPQRPP1P11+1_#2111endt1 1hold1the1'shift'11to1@11ranget11panelb1y1brgb1y1frgbPPP1y1borderP1y1roundedP1y1shadowR1y1donet1backgroundtz1;=PRPtz1;=PSPtz1;=PTPtz1;RPPtz1;SPPtz1;TPPtz1;3P2Ptz1;3Q4Ptz1;4P6Ptz1;6P9Ptz1;9P\Ptz1;9P^Ptz1;9P:Ptz1;2P3Ptz1;PWPtz1;;PVPtz1;:PVPtz1;WPVPtz1;ZPVPtz1;[PVPtz1;\PVPtz1;]PVPtz1;^PVPtz1;_PVPtz1;-P,Ptz1;PWQtz1;2R3Qtz1;PWRtz1;PWStz1;4Q5Ptz1;5P8Ptz1;8P_Ptz1;8P]Ptz1;8P;Ptz1;PWTtz1;VSWUtz1;PWVtz1;)PWWtz1;WQVQtz1; PWXtz1;WUPtz1;,P-Ptz1;-Q.Ptz1;.P0Ptz1;0P7Ptz1;7PZPtz1;"PWYtz1;VTWYtz1;,R-Qtz1;'PPtz1;PPtz1;PWZtz1;WVPtz1;P&Ptz1;&P%Ptz1;.Q/Ptz1;/P1Ptz1;1P[Ptz1;WRVRtz1;*P)Ptz1;&P)Ptz1;VS#Ptz1;#P$Ptz1;WSVStz1;*P(Ptz1;(P'Ptz1;P*Ptz1;%P*Ptz1;P Ptz1;WTVTt1<pmaxqv2r#Nsvpatcherq/Tt#PuoriginPtvwindowwsetfontxSans Serif$AtvylinecountQtzhidden{newex2 |+Qt}commentX ~(nonormalization)tz{>F 1r1_Markers1#B1colorUt1number5(YPPPSPPPPPPt}5/ 1markerst}hg3 1likelihoodtz{Q, 1ftm.listtz{iR 1gatetz{Q4 11_LH11Ut}fF 1likelyhoodt}xf+ 1displayt1togglehf_Pt1user1multiSliderixS$$?Uy _PPRPPP1#M1 frgbPPP11!brgb11"rgb211#rgb3PPP11$rgb4%4[11%rgb5Ji11&rgb6p11'rgb7n11(rgb8Yɠ11)rgb9>%11*rgb10Wrtz11+ftm.mess[f2_SYPPPQRPQ1,-->P1-#T1._#ftm1/versionRR1-10_#scope11begin1-12_#absargs30_41_52_63_74_85_96_:7_;8_<9_1-1=_#line1>_0tvwx$At},K[1?monitortvwx$At}h! 1@indext}h. 1t1f_Ptz{7 1tz{6: 1A1_Index11Utz{7, 1t11xQ$$?Uy_PPRPPP11 PPP11!11"11#PPP11$%4[11%Ji11&p11'n11(Yɠ11)>%11*Wrtz11+f2_SYPPPQRPQ1,P1-1=1>t1Bflonum-)YPPPSPPPPPPt}-H p1tz{3@ 1C1_LHmax11Utz{F 1D1_Likeliest11Ut1(YPPPSPPPPPPtz{P7, 1t};g+ 1t1-f_Ptz{/8 1tz{~7D 1E1_LHnorm11Ut}* 1Flikeliestt11-xQ$$?Uy _PPRPPP11 PPP11!11"11#PPP11$%4[11%Ji11&p11'n11(Yɠ11)>%11*Wrtz11+f2_SYPPPQRPQ1,P1-1=1>1-101Gendt11HpaneldJ1I#X1!1I1 PPP1I1JborderP1I1KroundedP1I1LshadowR1I1Mdonet1Nbackgroundt11H%J@1I1!1I1 PPP1I1JP1I1KP1I1LR1I1Mt1Ntz1OconnectRPWPtz1OVPSPtz1O\P^Ptz1OWPVPtz1OYPVQtz1OUPYPtz1O%PZPtz1O[P%Ptz1O_PPtz1OPPtz1OPPtz1OPQtz1OPPtz1O#P"Ptz1OPPtz1OPPtz1OPPtz1OPQtz1OPPt1Ppoppmaxqv2r#Nsvpatcher5t#PuorigintvwindowwsetfontxSans Serif$@AtvylinecountStzcomment+D {total|number}of~statestvwx$AtvyQrftm.copy1fmat1-->P1#T1_#ftm1versionRR11_#scope1begin11_#absargs0_1_2_3_4_5_6_7_ 8_!9_t1"newobjJ 1t1#toggle_PrsZ;bt1$user1%ftm.mess2N:_SYPPPQRPP1Q11&_#line1'_$statemaxt1$1%h\_SYPPPQRPP1Q11&1(_($alpha size $1 1)t1$1%SZ_SYPPPQRPP1Q11&1)_(($weight size 1 (($HMMs[0 0]) [N]))fill 1)t1$1%G,_SYPPPQRPP1Q11&1*_($statemax set $2 0 (($1[M]) - 1));tvwx$At1+newex225 1,t1-b1-1.lt1$1%G2_SYPPPQRPP1Q11&1/_$HMMst1+Gn 10ftm.iter11@mode12rowt1$1%g_SYPPPQRPP1Q11&13_($state size $1 (($HMMs[0 0]) [N]))t1$1%ht_SYPPPQRPP1Q11&14_($stateindex size $1 1)t1$1%gvo_SYPPPQRPP1Q11&15_($likelihood size $1 1)t1$1%\]8_SYPPPQRPP1Q11&16_($1 rows)t1$1%go_SYPPPQRPP1Q11&17_($statemax size $1 1)t1$1%\IS_SYPPPQRPP1Q11&18_($HMMs set $1)t19inlet2_Pt1:outlet2b_Pt1;connectQPZPt1;ZP^Pt1;^PPPt1;ZQYPt1;YPXPt1;XP[Pt1;ZRRPt1;RPTPt1;TPUPt1;TPSPt1;TPWPt1;TP]Pt1;TPVPt1;XQ[Qt1initt1+` 1,1-1-rsWNt1$1%2`SYPPPRRPP1Q11&1?_($alpha set $2 0 ((new fmat) set $1[Pi]));11&1@_($likelihood fill 0.)t1$1%222_SYPPPQRPP1Q11&1/tvwx$At1+2Hr 101112t192_Pt1;PPRPt1;RPQPt1;QPSPt1;QQSQt1_SYPPPQRPP1R11M_#init1N_0 111&1O_($1 div $2)t19@_Pt19Z_Pt1:Z_Pt1:e_Pt1:2_Pt1;SPXPt1;XPRPt1;XPUPt1;UPPPt1;TPXQt1;XPVPt1;VPWPt1;WQQPt1;WQUQt1_SYPPPQRPP1R11&1Or11Rt1"hJ 1t1$1%h:_SYPPPQRPP1R11&1T_$likelihoodt19+_Pt1Umessage^ Qt19h._Pt19h,_Pt1$1%Z_SYPPPQRPP1R11&1V_(($likelihood rowref $2) add $1)r1Wcounter1X#X1YflagsPPt1"yB 1Wt1:h _Pt19._Pt1;UP[Pt1;[PXPt1;XPYPt1;YPZPt1;ZPQPt1;[QRPt1ZfastenWPVP||t1;VPRRt1;RPZQt1;PP\Pt1;\PSPt1;TPSQt1  1=1[likelihoodrs:t19*_Ptvwx$AtvyQr11Rt1"#3v 1t1$1%YJ5_SYPPPQRPP1R11&1\_$1[Pself]tvyPt1+G 1]+Qt19)_Pt1$1%F_SYPPPQRPP1R11&1^_($1 rotate 1)t1$1%J_SYPPPQRPP1R11&1__($1 set 0 0 0)t1+& 1`gateRt1$1%#?_SYPPPQRPP1R11&1a_($1 add $2)t1:#V_Pt19Y+_Pt19#+_Pt1+! 1b!-$?r11Rt1"{I 1t1$1%@_SYPPPQRPP1R11&1Jt1$1%#@_SYPPPQRPP1R11&1Jtz+u 1c1=1dcyclicP1e=1fnon1dt1;UPQPt1;QPXPt1;XP_Pt1;_PWPt1;RPXQt1;VP^Pt1;^PQQt1;P_Qt1;\P]Pt1;]PYPt1;YPZPt1;ZPRPt1;YQRPt1ZUPSP(oot1;SP[Pt1;[PYQt1;TPRQt1Z^PTP^d&dt1V_SYPPPQRPP1P11M1_((new fmat 1 1)fill 1)11&1_($weight set $1)tvwx$@AtzBZ P1=non1dr1w1c1dP1e1f1dt19>g_Ptz<S= 1weightst1$1}$SY1P11~S111S1QQ11S1PP$?11Q1_fmat1weight1t1$1}$SY1P11~T111T1QQ11T1PP$11Q11|1r1w1y1z1{1|t1:_Pr1w1y1z1{1|t1:_Pt1$1}$SY1P11~U111U1QQ11U1PP$11Q11stateindex1t1$1}$SY1P11~V111V1QQ11V1PP$11Q11[1r1w1c1dP1e1f1dt19g_PtzS= 1c1dtvyRtz#D 1HMM1[tvyStz X 1||1with1highest1[tz ) 1most1likely1|tvyQtzc 1y1format:tzv 1each121corresponds1to1a1given1tz]? 1HMMs1>r1w11t19q_PtzS) 1datatz^S/ 1Ar1w1bang1e1At19`g_Pt1$1}v$SY1P11~W111W1QQ11W1PP$11Q11statemax1t1$1}` SY1P11~X111X1QQ11X12PP11Q111111endr1w1y1z1{1|t1: _Pr1w1test1t19g_Ptvwx$Atz1left11right11ut1;QP!Pt1;!PPt1;UP#Pt1;#P!Qt1;#Q"Pt1;!QRPt1;P Pt1Z P!Rՠt1;P%Pt1;P%Pt1Z%P!SǠt1;!RPt1;PPt1;XP$Pt1;$P&Pt1;&PPt1<pmaxqv2r#Nsvpatchert#Puuservftm.mess2_SYPPPQRPQw-->Px#Ty_#ftmzversionRRx{_#scope|beginx}_#absargs0_1_2_3_4_5_6_7_8_9_x1_#line1_1t1window1setfont1Sans Serif$At1commentQ 1self1trans.1 probt1!flonum#YPPPSPPPPPPtuvI_SYPPPQRPPwPx11"_(1 - (1 / $1))r1#gbr.resamplewPt1$newobj8 1#t111$@At1KTS 1%output1&matt1'outlet8T_Pt11(linecountRt1[-? 1)training1*examplet111$At11(QrsmDt1'=y_Ptuv={SYPPPZSPPwQx1+_#init1,_0 1 0.25 10. 0x11-_(new dictx11._ M ($1 rows)x11/_ N ($1 cols)x110_ Pself $3x111_ Bmean ((new fmat) set $1)x112_ Bstddev ((new fmat ($1 rows) ($1 cols)) fill $2)x113_ Pi ((new fmat ($1 rows) 1) set 0 0 1)x114_ markers ((new fmat ($1 rows) 2) fill 0.)x115_ enveloppes((new fmat ($1 rows) 2) fill 0.)x116_)x{17endt111$At1<:@ 1)1*t18inlet=U_Pt1!#YPPPSPPPPPPt1!#YPPPSPPPPPPt1?* 19std1:devt1>Q 11;transition1 t18W_Pt18W_Pt1p1?initt1!#YPPPSPPPPPPt111$@At1-F 1@resampler1Acomlet111 t18S_Pr1A1)1*t188S_Pt111$At1!5YPPPSPPPPPPt1ftmt1?user1@hintU]9U1Aback to FTM object helpdPYSPQPPPt1?1BubuttonU]4HPPt1?1CfpicT\6J1Dftm.help.jpgPPP$PPPtuvw$ Aty<8 1Eevaluate1Fand1Goutput1Habstraction1Iargumentstuvw$Aty61)tuvw$Aty0\Z 1JFTM1Kbasic1Lobjectsty- 1Msyntax:ty 1)1N[1P...1Q]tuxSty+({ 1RThis1Smakes1Tmore1Usense1Vinside1Wof1Xan1Yabstraction.1ZThe1I1F1[attributes1\given1]to|1H1^containing|1_external~1`overwrite1F1acomplete|1I1F1[1\1bin|1cexternal.t151;WPYPt1;[PZPt1;ZP\Pt1;ZQ]Pt1;ZR^Pt1<pmaxqv2r#Nsvpatcher,t#Puuservftm.messXlSZPPPQw#Tx_#aa0_1_2_3_4_5_6_7_8_9_w1_#line1_($myfmat rotate 1)t1window1setfont1Sans Serif$ At1commentP 1define1fmat1with1global1scopetu1ftm.object<SYwxw1_#scope1 beginw1!_#objQ1w1"_#defP1#_fmat 32 21$myfmat1%localw11&endtu1'pictsliderpOLPPPP1(wfknob.pctQ1)wfmodes.pctQbPP$?$?t111$Ars(7t111$At1*newex` 1+intr1,coll1-w1.flagsQPwP1/mode10selectwQ1/11loopwR1/12movewS1/13drawt14newobj5 1,t15buttonKu_Pr16comlet17waveform~1/18messagest19inletJ_Pt1*qX 1:<<Qt1*`( 1;changet1*`- 10Pt1*`u 1<|t1=outlet_Pt1*->N 1>modifiersdt1?connectUPWPt1?WPRPt1?PSRPt1?RPTPt1?TPSPt1?VPYPt1?SPYPt1?PTUPt1?UPRQt1?SQXPt1?YPXPt1?XPQPt1@popt1Ahidden146k2 1Bp1Cwfkeyst1Dmessage=q 1Eset1Fftm.buffer.help.BRt1Dp=q 1E1FQt1X 1Gftm.buffer1H1It1X, 1Ksyntax:tuvT:_SYPPPQwxw11L_fft, div 32t111$ At1X* 1G1Mdefines1Na1Obuffer~1Pof1Qthe1Rgiven1Sname1Tand1Ucan1Vbe1Wused11Xplay~1Y,1Zrecord~1Y1[etc.t111$At1D+q 1E1\ftm.buffer.help.ARt1Dp+q 1E1\Qtu17OLSY1]#W1/121]1^mouseoutput1_continuous1]1`clipdrawQ1]1aunit1bms1]1cgrid$C1]1dticksX1]1elabelsQ1]1fvlabelsQ1]1gvticksQ1]1hbpm$B$@1]1ifrgbPP1]1jbrgb^1]1krgb2?p1]1lrgb3PPP1]1mrgb4PPP1]1nrgb5Ϡ1]1orgb6lll1]1prgb7NJܠt1*+E2 1qftm.printt15~_PtuvXwSZPPPQwxw11r_($ftm.buffer.help.A rotate 1)tuv4ii_SYPPPQwxw11s_fill 1 0 0 1 -1 0 0 -1t1X 1G1H1t1u[]t1/\Z 1vFTM1wbasic1xobjectst111$ At1;8 1O1yinterface1zfor1v11{objectt111$At151Gt111$@At1*a 1G1F1|$myfmattu1}fpicWY6J1~ftm.help.jpgPPP$PPPt111$At1X, 1Kt1{F 1accepts1all11methodst111$At1*+*1G1\ Rt111$ At1^s 1y1defined1t1?PQPt1?\PQPt1?ZPQPt1?UP]Pt1?QP]Pt1A1?QPt1A1?P^Pt1A1?P^Pt1A1?_P^Pt1A1?P^Pt1A1?P^Pt1@pmaxqv2r#Nsvpatchert#PuoriginPtvwindowwsetfontxSans Serif$AtvylinecountQtzcomment {(negative|values}are~invertedand1interpreted1as1interval)tz| 1insert1list1of1time-value1points1to1the1bpf1contentt1messageJ{s 1,$>$?t1JA 1durationr1ftm.print1-->P1 #T1!_#ftm1"versionRQ1 1#_#scope1$begin1 1%_#absargs&0_'1_(2_)3_*4_+5_,6_-7_.8_/9_t10newobj12 1rsZ;tvwx$At11hidden12newexN- 13pcontrolt111:K 14help15ftm.objectt16inlet$_Pt17connectPPQPt1117QPRPt18popt1110YB! 19p1:ftmt1;button_Ptz 11<[0.0>]1?[