REVO8100 HyperTalkMIDI Hc ;  U(System) U(System) U(Text),unicode U(Menu) U(Text) U(Text),unicode cREVGeometryCache stackID cREVGeneral breakpointstates breakpointsbreakpointconditions scalefactor? @: cREVGeometryCacheIDs 1507180862024 1507210091628 1507212257833 1507220969918 1507220969917 1507220969919 1507220969923 1507220969920 1507184028113 1507220969921 1507220969922cREVGeometrycache total order  cREVGeneral scripteditorvscrollscripteditorselection0 jsPlayPage h7'com.livecode.widget.browser horizontalScrollbarEnabledverticalScrollbarEnabledhtmlText!   cREVGeneral scripteditorvscrollscripteditorselection0 revUniqueIDЛuBPlayEp*-- Sent when the mouse is released after clicking -- pMouseButton specifies which mouse button was pressed on mouseUp pMouseButton do "'" & the selectedText of btn "GMPatchSelect" & "' , '100', '"& cd fld "ABCNotes" & "').hidden = 'hidden'" in widget "jsPlayPage" end mouseUp D^R  cREVGeneral scripteditorvscrollscripteditorselection213 revUniqueIDuB ABCNotes)`BD]  cREVGeneral tablefalsescripteditorselection0 revUniqueIDuBscripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse  Qf4e a4e f4e c5e f4e f5e e5s d5s c5s d5s c5s b4s a4s b4s a4s g4s f4e.. f5q+ c6+ a6 ' `u[ GMPatchSelect楫}global gBrowserId , gMidiOutPort on GMProgramChange pProgramNum, pTheChannel if pProgramNum is a number then if pProgramNum >0 and pProgramNum <129 and "." is not in pProgramNum then -- put pProgramNum subtract 1 from pProgramNum end if if pTheChannel is a number then if pTheChannel >0 and pTheChannel <17 and "." is not in pTheChannel then subtract 1 from pTheChannel end if -- get item pTheChannel of "0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCD,0xCE,0xCF" -- --put it -- if it <> empty then -- put it into tChannel -- subtract 1 from pTheChannel try --- pitchBend(c, xx) - pitch bender; returns Ec ll mm. -- program(c, xx) - program change; returns Cc xx. -- JZZ.MIDI.program (0, xx) get revBrowserExecuteScript (gBrowserId,"JZZ().openMidiOut("& quote & gMidiOutPort & quote &").program(" & pTheChannel & "," & pProgramNum & ")") -- get revBrowserExecuteScript (gBrowserId,"JZZ().openMidiOut("& quote & gMidiOutPort & quote &").wait(1).send([" & tChannel &"," & pProgramNum & ", 0]);" ) --this also works end try end if end if end GMProgramChange on menuPick pItemName get word two of the selectedLine of me -- put it GMProgramChange it, 1 --pTheChannel end menuPick on mouseDown put empty into tProgramList repeat with x = 0 to 127 put (gsPatchNumToName (x,1)) & cr after tProgramList end repeat ---answer tProgramList set the text of me to tProgramList end mouseDown function gsPatchNumToName gmPatchNum, theChannel if theChannel <> "ch10" then -- "ch10" is reserved for drums (& "ch11" additionally in GM2 spec) -- and theChannel <> "ch11" return item (gmPatchNum+1) of ("Acoustic Grand Piano,Bright Acoustic Piano,Electric Grand Piano,Honky-tonk Piano,Rhodes Piano,Chorused Piano,"&\ "Harpsichord,Clavinet,Celesta,Glockenspiel,Music Box,Vibraphone,Marimba,Xylophone,Tubular Bells,Dulcimer,Hammond Organ,Percussive Organ,"&\ "Rock Organ,Church Organ,Reed Organ,Accordion,Harmonica,Tango Accordion,Acoustic Guitar (nylon),Acoustic Guitar (steel),Electric Guitar (jazz),"&\ "Electric Guitar (clean),Electric Guitar (muted),Overdriven Guitar,Distortion Guitar,Guitar Harmonics,Acoustic Bass,Electric Bass (finger),"&\ "Electric Bass (pick),Fretless Bass,Slap Bass1,Slap Bass2,Synth Bass1,Synth Bass2,Violin,Viola,Cello,Contrabass,Tremolo Strings,Pizzicato Strings,"&\ "Orchestral Harp,Timpani,String Ensemble1,String Ensemble2,SynthStrings1,SynthStrings2,Choir Aahs,Voice Oohs,Synth Voice,Orchestra Hit,"&\ "Trumpet,Trombone,Tuba,Muted Trumpet,French Horn,Brass Section,Synth Brass1,Synth Brass2,Soprano Sax,Alto Sax,Tenor Sax,Baritone Sax,Oboe,"&\ "English Horn,Bassoon,Clarinet,Piccolo,Flute,Recorder,Pan Flute,Bottle Blow,Shakuhachi,Whistle,Ocarina,Lead1 (square),Lead2 (sawtooth),"&\ "Lead3 (calliope lead),Lead 4 (chiff lead),Lead 5 (charang),Lead 6 (voice),Lead 7 (fifths),Lead 8 (bass + lead),Pad1 (new age),Pad2 (warm),"&\ "Pad3 (polysynth),Pad 4 (choir),Pad 5 (bowed),Pad 6 (metallic),Pad 7 (halo),Pad 8 (sweep),FX1 (rain),FX2 (soundtrack),FX3 (crystal),"&\ "FX 4 (atmosphere),FX 5 (brightness),FX 6 (goblins),FX 7 (echoes),FX 8 (sci-fi),Sitar,Banjo,Shamisen,Koto,Kalimba,Bagpipe,Fiddle,Shanai,Tinkle Bell,Agogo,"&\ "Steel Drums,Woodblock,Taiko Drum,Melodic Tom,Synth Drum,Reverse Cymbal,Guitar Fret Noise,Breath Noise,Seashore,Bird Tweet,Telephone Ring,Helicopter,Applause,Gunshot") else -- theChannel is a drum kit channel (10) return item (gmPatchNum+1) of ("Standard Kit,2,3,4,5,6,7,8,Room Kit,10,11,12,13,14,15,16,Power Kit,18,19,20,21,22,23,24,25,Electronic Kit,"&\ "TR-808 Kit,27,28,29,30,31,32,Jazz Kit,34,35,36,37,38,39,40,Brush Kit,42,43,44,45,46,47,48,Orchestra Kit,50,51,52,53,54,55,56,SoundFX Kit,"&\ "58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,"&\ "100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,MT-32 Kit") end if end gsPatchNumToName --on mouseUp -- Ask "Enter Program Number:" -- if it <> empty then -- if it is a number then -- if it >0 and it <127 and "." is not in it then -- GMProgramChange it, 1 -- end if -- end if -- end if --end mouseUp _  Harpsichord}Acoustic Grand Piano Bright Acoustic Piano Electric Grand Piano Honky-tonk Piano Rhodes Piano Chorused Piano Harpsichord Clavinet Celesta Glockenspiel Music Box Vibraphone Marimba Xylophone Tubular Bells Dulcimer Hammond Organ Percussive Organ Rock Organ Church Organ Reed Organ Accordion Harmonica Tango Accordion Acoustic Guitar (nylon) Acoustic Guitar (steel) Electric Guitar (jazz) Electric Guitar (clean) Electric Guitar (muted) Overdriven Guitar Distortion Guitar Guitar Harmonics Acoustic Bass Electric Bass (finger) Electric Bass (pick) Fretless Bass Slap Bass1 Slap Bass2 Synth Bass1 Synth Bass2 Violin Viola Cello Contrabass Tremolo Strings Pizzicato Strings Orchestral Harp Timpani String Ensemble1 String Ensemble2 SynthStrings1 SynthStrings2 Choir Aahs Voice Oohs Synth Voice Orchestra Hit Trumpet Trombone Tuba Muted Trumpet French Horn Brass Section Synth Brass1 Synth Brass2 Soprano Sax Alto Sax Tenor Sax Baritone Sax Oboe English Horn Bassoon Clarinet Piccolo Flute Recorder Pan Flute Bottle Blow Shakuhachi Whistle Ocarina Lead1 (square) Lead2 (sawtooth) Lead3 (calliope lead) Lead 4 (chiff lead) Lead 5 (charang) Lead 6 (voice) Lead 7 (fifths) Lead 8 (bass + lead) Pad1 (new age) Pad2 (warm) Pad3 (polysynth) Pad 4 (choir) Pad 5 (bowed) Pad 6 (metallic) Pad 7 (halo) Pad 8 (sweep) FX1 (rain) FX2 (soundtrack) FX3 (crystal) FX 4 (atmosphere) FX 5 (brightness) FX 6 (goblins) FX 7 (echoes) FX 8 (sci-fi) Sitar Banjo Shamisen Koto Kalimba Bagpipe Fiddle Shanai Tinkle Bell Agogo Steel Drums Woodblock Taiko Drum Melodic Tom Synth Drum Reverse Cymbal Guitar Fret Noise Breath Noise Seashore Bird Tweet Telephone Ring Helicopter Applause Gunshot   cREVGeneral scripteditorvscrollscripteditorselection1517 revUniqueIDuB JSstuff)`IN cellFormattingfalse cREVGeneral tablefalsescripteditorselection0 revUniqueIDuBscripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse   '  '  '  '  '  '  '  '  '  '  ' ' ` LReload JavaScriptsEp-- Sent when the mouse is released after clicking -- pMouseButton specifies which mouse button was pressed on mouseUp pMouseButton set the htmlText of widget "jsPlayPage" to cd fld "JSstuff" end mouseUp 5  cREVGeneral scripteditorvscrollscripteditorselection206 revUniqueIDuB About jsPlayCommand...Ep-- Sent when the mouse is released after clicking -- pMouseButton specifies which mouse button was pressed on mouseUp pMouseButton launch URL "" end mouseUp @U   cREVGeneral scripteditorvscrollscripteditorselection140 revUniqueIDƍuB demo-notestring.png  @ 49PNG  IHDRtEXtSoftwareAdobe ImageReadyqe<#PLTE           &&0&0&0&&0&000&33@3@3@33@3@@@3@@P@P@MM`M`MP@@P@PPP@YYpYpY`MM`M```MffffpYYpYpppYssssffffssssϦϦ߳߳ϦϦϦ߳߳߳￿ׅ̿tRNS 0@P`p#8IDATx}kܴ~@IK@K9I9 nM=g$gYCgc˒jx*b2prp[GvfMRetF ߰'FbCR^Ŭ.ԅ - V#zHL= ʯG//PdrkKq@%+e|\k_FؓsRNښ_(U'&8MU7D$4a!E;G ?C`:j6l'ƀP Fr+=C2uoc/X{SK:Kmg% űYI"=B諄آa(B}RaBP Vf0TK)-2:Ea6 )`YoDyRFLRC2ɝ^JY }s OQUO Ѥtoet|ߵvTՊ27[Igmh<^5ꍍVg D,mg )`U%Sg"Ce2DYxD僢p&jA^wx cy"fŬ4 H4U/#1T^B6j⍍J/ JK0 Lء/ ]6zyh'cZi<+X8rAzX[ei^'6}ױZĎDmGI^ǩ;-#-CԬ2b2" 2+(n@Q^0hRyvht?-j ^O#oh\-Рe+U`" :,7pjv:;Dt*(ma=bgvY ׎64~Gan$%p /`YW6QoS"nBU9~3'5McRKȺGɠw>iʢi>oAl CyZNv-NZ8Oy:FM2*+()e>`e--,ua r(ԌݮeO+^7O:S ۥXVqEc]t}<ÖŌEt=3?soQza,,o/zQآDꂆ "O2 qS`Y2uQ"u))4(;XL]f)@ 3XL]H]˜y ,S.H. <*S#R0d@ᐧrebD#)d: y ,[.%`XL]H<.S"R/ Oԅ-pSd"D)p2u"u>8:hy L]H<G.!~8": y L]Hc<K.@`}C&Sg3 EoSd"#)p2uvz`8N:Kۇ( O#3ÚސԙE! Sxe"7)p2uVza8j:H= y LUj<]*RdwC/S\[0)p2uFz8:H=y LQ<NE&R0D@'#Sg7!Oӑ})DmnSd\K`w<NL$RkrC&Sg Oӓ3=Zܐ)YDS$e,"u7)p2u8U:Hݓ y Lc  D~mSe "uc)p2uk8uzp8yzp: y L=Hzd<A\NlkC!S)p&2"uZS8z`:y L=H҆<ITN8,@g%S*R3!OS 2dsP:BKof^y __-v?d[`" * *  * * * * * * * TD}ysqW * .ڶ}yJ>QATuD}NbWY?=9 Q_=}:Qr]<+͍KW޿2\{j~wS9 j-n>z.o}H+ўpD{m_~zq[3՘FqW4ٓ5(nD;9 ꯿>-@ԩ{lrO̡{?T/5o۷'K{'v w ׮9=NK?y¶Q%f=_&i>/Q_]^DN 8ɿ8+^ DF;>Q(6_nKԧr~W mj$Q5%-F}iGQ'$vO6LՏPo쟨/xx!oh$Q??KN?9=NYUūQ#ꇭ=Q/)M/Ӯ7Q/kd{$Q|g9CDÙiԋDE{W/uQ9 Uå*ɾCD~sz¶Q"{*D:Ai 4sWIT=-i7f&'z|L!:QPʥ'*s/[@zkmR&MDϿ4?HDK}?7zO%QoZ~ 5Q' P;63m)tA_M9?|,? y@?Z|0߿[&Q-D|/@T;r-x٭bz \zFԎQe+_qMIyʿKujw]vxL ΅p*ީ7K$jΟM`D}YFO~?xD"*ݮ6<4x݆=/kDdS7 r`|E|U<|gs,~q'7Ӹ'Ͽ~)D}+wn%n>PDox&5FC4;}/suD7:zD vּl%nh/D>`n;^[ ,KY5Io1?)r>XO1-Ql~56D@\]U/C> <ᆱz͛w7o}0c<'T!zܹxxg_z;3sx7Iu7 zhW&Q?l&f'VLJT.:2~;,~8D_~}gs]k̷g8^R*?zo?ga^;m8끄i 񘷍Y[_To8l1Up+_u3~_{arn޼'kkjwێH5l.^3̤k{hC7_ȏ~Ʒd6-t5@T}f "U(@Z'j QcD!3iD _p[%+*!:!QoW>-w35Qɠ浫5Ho+??~"gs+Hw޽/@l u. 1Bm6s_TWbɛv>k Qi jf[?-@i*^6 ޭz3ŒΚILI>]l}!!_z71..+< QmqmxNHT9󌾺ԡCZ`xq36~_E ؐ s{pˡgQ 'jNIT9^ʒ~qna>V-|iх)W6:D!tm{ DDOm^@;+k:U uګCoKtkOAT{*]ݩ-^[R[zO|uvwb>AVW]n&_:/Cg+a$kD}d:&n B^,BpsyE~zi'ȋzj$?a*?Q;mwըPQJszһ7?_)5L}P꤭]Dz\WooG"Qb{||>cXKW?Bc&j-^-N3 p&!*O^^P~ zd$?ƿQ_Wp@5QvqDh̒tBA7n܍jID= Q * * * * * * * * * * * * * /8)8',nZcq3/r@8U' QVangjV/Զֶs6zN٦h#hi.ԴjsWV$-L.}h|9Qh#ii.T jsrpڇR{6*DANS7WSJE1X)6F]}BH=:ANS4_~zvu0scD TIyJr :}BH=6ANS1u "w)Dm+)k; ԏEA'7v"K?b;|@sll&yargSEA*i晓 H yX/HeY$3EL$|? M < _)[x$il+ 8g/Ջ4ɧ <*|gQ)$7$(M|INsJwA\wjFeg%'HPi_YҶ CNڸ s6z?W%5s}TRN~۶y˴lݕrn0gd E\DA#xylܾAU،%UJ dFA.&whQ |i;{D-MZq~ܜ#u[%+b: (&Bɠ*+ d%V~+E(mžנ٬U?eI *Vb<& rˆAП"tʜ=NʫUgiB9GѩYuȬX\&\!}3\m_l[// *A2_ w,m"To^y5.j.!Cnrޕ^l3lW~YSv]l~+ލK-1'zr-|ڔSůrp>cU76s3ܒF)KkS~F>&;vbc<ȍ *ö"F QɜD81grsR^eϕ54^Ub)zHZMn.+VE=qeq\d-P]tx@Ľwl]BibDdu .E//姴Z _Y'^L☋x@+$xKD,( +rLJUNʊt?mRLT-畩C$V1F$ OǮh4fd5&HJmuӻ‚NE' Jw8_ᵠDYO<y7˪0G`fAAު6[VYGqz­UnJ.W$37HYfb2$j-zU,=YbWN4Wh=SH2dR.(y~)&ʺD-ڬ DpI ݵX>,Կy%/j,Y&~6!DGJ3~vbŸ3 9N5OM$N-7e2 Ӱ;ʖ~IElFޔn_._u b+j~T7y*gĤD 5QevSxD A 2"Ū=Sd7%FN1ד]45'`z*+5$L^W46湤gʰ]/@ u yg)c['+"TzIP\~.QCm[_R6LPc\\I/D:CN^H)8,Ʉ > 9ٙQ#lRKs/8 uvS)'FϓiT-`4-o<\@H1a8ߐ)#& 99q?k QrxB`q#&4V +6?^Zz1>\|SI63mγ [DjEb/z]5O f-_!',]-}T~ȩ߇;ԡU֘ӪUEA!{Mĭ*5ZsJDDzL 2X2uyȥU+ܤ~U.4-K8WhVeż2mJpERG;Y&9 Y׍,x//-=MZܺd.kFҔE §|T=JX9d,H\{n-*`q%ғM:e 醑`W_N+EY8笣ƔeI=*޷v2oB\ GYBȧɍ3܉W?="t_\Y>  SkY+lᄔ'e)o x@Ȑ`T" )WYlN(9j>mVl#d{چ:2^;gDߚ;<~ofzlBF?GtclY@)sCSS0sܼx 8/ 9ox' bq¥Nj}Ԛ ѽ1XuM 'COx*ý3dܩC0nDZ;匬&ּX)w-K&UU:bMp,"L^A2H)P"3{fuaKDޚ\9J$Ty&GG&gժ,ASy+^X+s컼 z *Lȝ72&gS)ePX}g§")[tM(13> # m;u1+"ڸ3bJ~3|)ҥ`=V Y]qͷ>U;l9Ø7Ƨ aWsT0N'/9 빌[̍}DmBV|&Jcej, Gۢ`o18?D)ځ~IENDB`  cREVGeneral  revUniqueIDuB6You may need this plugin installed for this to work...Ep-- Sent when the mouse is released after clicking -- pMouseButton specifies which mouse button was pressed on mouseUp pMouseButton launch URL "" end mouseUp =Y$  cREVGeneral scripteditorvscrollscripteditorselection167 revUniqueIDuB  question-mark-295272_960_720.png P:on mouseUp pButtonNumber show fld "About" end mouseUp 0=HH!">$PNG  IHDRHHUGsRGB pHYs  YiTXtXML:com.adobe.xmp 1 L'Y"IDATx\i]u>}}실цv$d[,#82H2?\8cW%vX]&PqJ*/們XK e@H g̼y{;w-ٜ̽sN}r>#y$=Ĝw[LUdy23D|fXY"ydqs9"GIcւZzҽJ)# yk7@îxa1mq֊y#RoJceVb\2ʀR2ȏbbHUDbEhU<)Ygw/^^n0÷ +{̬ą5Њ?sy}wZ."5ǝqm(DrE1.$Ϭ,O'3VR%2EEH\­jVHv7x&Oz䯆F"fj<^NIЏ|3EzQ`)*LRL5!(&(6|8UK[gxX=8Z+'mhPȬ)L!k}ٍnp!PA6_{;ɭh%u4>EѧhX*UPwڻt;z&.F0)BE1F6?% `LQ.i5z>vh2;LԇӤ`$X膏DvFrvY^}zYu}| Ku$\8 Fݳ"8G_sPlj؁B3GAC9BSugYvP53a+kQWD T*L$IF"o/ c7HLFRv4FE豼1L?gf7[ XS܈ƅJмԒCIyP(P> Li`E8 R|yڰJE܂ȿ7+d4xGZ{o\82զnAaڒ~SJ-~Z|"AbbbB*bR0`4HGQBP+(^Ԍ<]ɇW8bwlazO L |87?umL#_`lNdpv-4ϟwu:3AJ2PӝlG424 `ڃ W!$. IHTZB9xZٟ~1Ͼ1ڥ[`?հ)S~/@lpl]K&OGy 2ŎfAj\DF6>(S|'4p&>$} ;y'&I$Xex"D hS($hu cQJ>td.(go~S} 6lPI;{AѭצhLju[š3_0oA(OEM Ϣ;b?(fkiH䈚EX.8"nZkA饥ZH 5+|]5GaT"$4>ਐTj55^amm󓨎I5YbB 8RDL@KnLV:/+ј94' j5RhX>G]?3$6 JAˆ7L|`Sdgmn+?ՑI]j&#ɳ紷//.쵹v)w_Ѐ9CAwG DK'5+}0rt[ WM8 @JǓ <ʱ}5s~bIV撳6M: _BkdnP5Fcyw,/N[ͩ#;ۙW+0Fh)44(Z51ФOPIY7=χrLy{~H+lvLIS͒8edoV,"*K6{dGPlz/P w v oYm@.C`olFmQ_*y6A%P:=3Ư邑OFZ|\(6 va?*\!eN|uuui6j^2A Zn1K שMC* Jf~C6A%/D(T9YaN+%oi\86j=%p\2A66d5Ucu\8hgQ(ZZC9 ]Оb5$VA8pd44]h,:%kagٟp9r(&pam+,1(:v<_qDY`@Za[7WL^Β6 S~_5T@~j1AG~JJtOJ7?uV'U1 ՌSo4eŠkMns9y5]hTBGdg,l)65da,AؾaIRSe?.^_N;G.Jz1C戅%Q rj.= ]^V`|LnLkG~ycZ7-ҵ^e=<:H4t\Fg0? eem4 Ev`iT8X/Vi>'qZo6x@ةq (9|2<cDp0o=eDoFo;~dIKFpNi1]lvX3!4 SP*hk7?2F*cS;.943`kxrosǫO?gV OҞyaXU>!ҡf̚te(k>@MĄd}]쓗bq6Ȍyс!\5J\$֚b'F$~ * 6@bRYW,S}YugDy D* ݺ ǰ4ĹAxNjuDszKF $C&APadMUѥ'8bS~5 ߥy95,.>i+w:W*O!>C Lg )s2O PT{Ʒ\:aiLwaϼ > 2n Qi\ 9{䝒(oh6[%,tz4vu,1;#`" ,`f&N7|d^{f @9z~ t Nq=[a2E_RX:Oi+| bp ^3ZJh Q0\ ,NpvT] j4 x_*zTțlUQФ] 9> 8-<./Klw> IǀA;Ұ|sTdrIQ,cu:l4Gr0`FO*pm.lm&Yik91w0B>.5YZAdС2}. at& pG5g. p|sJhSpvv}k*$xpÎ.#(q2*ga(艰$. .;˳Glѵ@_"}7t|&pC$H> /cO RA 2zi4cV' 0ɰ$ [Z;ģ")6x 9MTc]pPnCQݳ7wwa͵; 3d!٦XH'= w&1N>}:!/=j ?ő pRR&.ѝZ*MbGq^Gc/3?8 G124F SI+@ Bi AwZ9dVv N mBq И}=qGxm!??`97020D~ f^iIa-FXٳ{xAL /VG^ɒ(NpȢj8?)dP΃ F yRvq٭C ܃,ulmdn\5M}mLWeOGy[Í(LuOj&3[|OwijQ@ Dư&Am rD+0'ݎgT|=VW!}JE</'ҁ˂/g:qo 39Gxe=bH!}<:&y* OWUrV- :tg*4V!r>A2Gg9ܡ'Ȳx+O"V\߃L`t۔W|p>KsfB'q4-*L[~E4͠¯Gp?a\7Z *(gf>h{"bY폻0,G=rZi)MPCGFqv0 ^QIpNq`;&2<ۏ iц j>h{(NF0S0Y> 1(;Ӱ9,@8ǭ ly0}Y]6Oa83 E֫'Nmfjв緝ؒ>o-4RvKbuV1!6mӖmʳV%ㄘMǓ0ng谏*o$*AFS>MwaD&C!>mb;ؽl9KNrK>\ONL}p@ 3- ܩHT`{:5GW*xU}<qu&&)s\yZ1Fn7 +8E*p 71$F4T~\-Ɵ+d=YRfz:j=tW aw ˆ0!*GǹaJlE<-[*I֌oԡ$ǦjiCϘƯ0WKV~t~#?)v辝JjLCtUص{= *4@6-k:%dէl)j8)u]6)39{ @Z_iD=XUmk&2 (H L\yC;ҍ(vOEZ5B73ϐhߡY#< 8,P g?e(IIu+ի8,D#rE5~vu2Уcim"EC ʰYqLh/? aڄvMGV3.Pi0BDg9 ~ab!2m9WSSR}>M9m1z ι)݂}=jrh856EcFX,Cd}?eqpNM75!x(Jj 5?}(t E[{"Pg/˯(9dȮ?G+HNi(\CI9c坳~{CvĘO>΃0g)|84+ z4736{3RI]/tG#Uj#{&Oݍ5B s g ,){^w҇Q[BUZ/m ӢzCPGslmRFת۝zv%v-WbJ G)+5KqÏB2rogZ-6 lv_lnfd{C2W{߆I}￵Q am@$s?#R(I klruڵXI̅D]_ŵֆV Y}Ar655Jco&{pDG80A-XXj@ mc:pJSؘ1#Q˜5'^ېrjkV}! :jɟk^$bcɴI<}qcAs0i5" >2YhsحpB_ 5BT Mޕ{sG$cֿ,I/+DE|V]9h̉ 8 AZpҐkTk V膣ݒbQD:k!DU'yOԌ"Hon۾*lSw,>ns|R8t ʌys&$ǯH_G"s[FN 0>/ 1nK7R$ FyWŗ^,8bFeX'1cǷlhl\)y<>]qA!.:vðD, Ƶ3輻1vc3^ۢ4&^ 8$ [E 8W<2j4/1PZo'R+$.xI-aHϯ,N7W|UAh> aX܊xr"(D@ o^dp0;i-~jsU-j l h 4x jUjG1bӼ%e3~|糘!Zl̒[H5(P0CK{ ?<`#Y zIЦX,t2#n#ph* >6v3nְ LjZZpXqHp8Qc<,O2ƴEU!~:F+c._PQ1b#$xR*;(;ƤOWxq𻝥~ XkzKQl7';wƋ`/Ƌ [Hƀ7IҜIy`gWʅ<:B"y|xT8ЬuZӡ[ѯ_*Fp @g3~(jsV)ZH-A٥84:^$? s&ttz2Ľ Pd@1m?QOD u&:b`2 n`Q3^E%`Sugs%Iw,$/>9ˇW@"ɚݣkIENDB`  cREVGeneral scripteditorvscrollscripteditorselection45 revUniqueID uB About#x#on mouseUp hide me end mouseUp P !v  cREVGeneral tablefalsescripteditorselection22 revUniqueID0uBscripteditorvscroll cRevTable  cellFormatfalsemaxColumnCountcellEditfalse  'NThis is a little demo of using the WebMIDI API with LiveCode's Browser Widget  'O(it can also work in older versions via the revBrowser extension) by calling a  '-JavaScript function in an embedded web page.  'ZWIn this case the function being called is the jsPlayCommand, which is a script designed 'K to emulate the old Hypercard play command (see link button for more info). 'W It also loads the JZZ.js library that uses the WebMIDI API that should be built-in on  'Znewer versions of Chrome / CEF or can (and in most cases needs to) use the Jazz-Soft MIDI  'OWeb Plug-in as a substitute (see link button for website to download it from).  ' '"This is just a quick simple demo.  'DLThere is only a play button, no stop button, though if you click the reload  'Nbutton all playback should stop. It will use whatever the default MIDI device  'Gis on the system for MIDI output, on Mac OS X means Apple's DLS Synth,  '.on Windows it should use MS Wave Table Synth.  '\ '?I have only tested this with on Mac OS X 10.9.5 & 10.10.5 with  '~?LiveCode 8.x & 9.x Developer Preview builds, but theoretically  '~6it should work on other platforms (at least Windows).  'lGOn Mac OS X for some reason the Jazz plug-in crashes when being loaded  'Rfrom LiveCode when LC is runing in 64bit mode, the fix is to run LC in 32bit mode. '4I believe this is a bug in LC LC9dp8 & dp9 or maybe  'hait's just an architectural thing (the plug-in should be 64bit web browsers though so I doubt it). ' '[All of the code contained here-in is freely available for use from the prospective authors. ' 'HyperTalk music lives, YEAH! '8 'Paul McClernan ' ' 10/5/2017 ' ' `  revOnline | RunRev