HELLO·Android
系统源代码
IT资讯
技术文章
我的收藏
注册
登录
-
我收藏的文章
创建代码块
我的代码块
我的账号
Android 10
|
10.0.0_r6
下载
查看原文件
收藏
根目录
external
sonivox
docs
JET_Creator_User_Manual.html
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 11"> <meta name=Originator content="Microsoft Word 11"> <link rel=File-List href="JET_Creator_User_Manual_files/filelist.xml"> <link rel=Edit-Time-Data href="JET_Creator_User_Manual_files/editdata.mso"> <link rel=OLE-Object-Data href="JET_Creator_User_Manual_files/oledata.mso"> <!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--> <title>SONiVOX JET Creator User Manual</title> <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="place"/> <!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Author>Jennifer Hruska</o:Author> <o:Description>Copyright 2009 Confidential Information</o:Description> <o:Template>techdoc.dot</o:Template> <o:LastAuthor>Jennifer Hruska</o:LastAuthor> <o:Revision>3</o:Revision> <o:TotalTime>183</o:TotalTime> <o:LastPrinted>2006-02-09T12:22:00Z</o:LastPrinted> <o:Created>2009-03-18T18:58:00Z</o:Created> <o:LastSaved>2009-03-19T14:23:00Z</o:LastSaved> <o:Pages>1</o:Pages> <o:Words>4525</o:Words> <o:Characters>25793</o:Characters> <o:Company>Sonic Network, Inc.</o:Company> <o:Lines>214</o:Lines> <o:Paragraphs>60</o:Paragraphs> <o:CharactersWithSpaces>30258</o:CharactersWithSpaces> <o:Version>11.9999</o:Version> </o:DocumentProperties> <o:CustomDocumentProperties> <o:_AdHocReviewCycleID dt:dt="float">-1127674187</o:_AdHocReviewCycleID> <o:_EmailSubject dt:dt="string">New lib doc</o:_EmailSubject> <o:_AuthorEmail dt:dt="string">jhruska@sonicnetworkinc.com</o:_AuthorEmail> <o:_AuthorEmailDisplayName dt:dt="string">Jennifer Hruska</o:_AuthorEmailDisplayName> <o:_ReviewingToolsShownOnce dt:dt="string"></o:_ReviewingToolsShownOnce> </o:CustomDocumentProperties> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:ActiveWritingStyle Lang="EN-US" VendorID="8" DLLVersion="513" NLCheck="0">1</w:ActiveWritingStyle> <w:ActiveWritingStyle Lang="EN-IE" VendorID="8" DLLVersion="513" NLCheck="0">1</w:ActiveWritingStyle> <w:ActiveWritingStyle Lang="EN-GB" VendorID="8" DLLVersion="513" NLCheck="0">1</w:ActiveWritingStyle> <w:DocumentProtectionNotEnforced>TrackedChanges</w:DocumentProtectionNotEnforced> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery> <w:UseMarginsForDrawingGridOrigin/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:FootnoteLayoutLikeWW8/> <w:ShapeLayoutLikeWW8/> <w:AlignTablesRowByRow/> <w:ForgetLastTabAlignment/> <w:LayoutRawTableWidth/> <w:LayoutTableRowsApart/> <w:UseWord97LineBreakingRules/> <w:SelectEntireFieldWithStartOrEnd/> <w:UseWord2002TableStyleRules/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!--[if !mso]><object classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object> <style> st1\:*{behavior:url(#ieooui) } </style> <![endif]--> <style> <!-- /* Font Definitions */ @font-face {font-family:Tahoma; panose-1:2 11 6 4 3 5 4 4 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:1627421319 -2147483648 8 0 66047 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-update:auto; mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} h1 {mso-style-next:Normal; margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:.3in; text-indent:-.3in; mso-pagination:widow-orphan lines-together; page-break-after:avoid; mso-outline-level:1; mso-list:l10 level1 lfo1; tab-stops:list .3in; font-size:14.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-font-kerning:14.0pt; mso-ansi-language:EN-IE; font-weight:bold; mso-bidi-font-weight:normal;} h2 {mso-style-update:auto; mso-style-link:"Heading 2 Char"; mso-style-next:Normal; margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:.4in; text-indent:-.4in; mso-pagination:widow-orphan lines-together; page-break-after:avoid; mso-outline-level:2; mso-list:l10 level2 lfo1; tab-stops:list .4in; font-size:12.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-ansi-language:EN-IE; font-weight:bold; mso-bidi-font-weight:normal;} h3 {mso-style-next:Normal; margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:.5in; text-indent:-.5in; mso-pagination:widow-orphan lines-together; page-break-after:avoid; mso-outline-level:3; mso-list:l10 level3 lfo1; tab-stops:list .5in; font-size:10.0pt; font-family:Arial; mso-ansi-language:EN-IE; font-weight:bold;} h4 {mso-style-next:Normal; margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:.6in; text-indent:-.6in; mso-pagination:widow-orphan lines-together; page-break-after:avoid; mso-outline-level:4; mso-list:l10 level4 lfo1; tab-stops:list .6in; font-size:11.0pt; mso-bidi-font-size:10.0pt; font-family:"Courier New"; mso-ansi-language:EN-IE; font-weight:bold; mso-bidi-font-weight:normal;} h5 {mso-style-next:Normal; margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:.7in; text-indent:-.7in; mso-pagination:widow-orphan lines-together; mso-outline-level:5; mso-list:l10 level5 lfo1; tab-stops:list .7in; font-size:11.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-ansi-language:EN-IE; font-weight:normal;} h6 {mso-style-next:Normal; margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:.8in; text-indent:-.8in; mso-pagination:widow-orphan lines-together; mso-outline-level:6; mso-list:l10 level6 lfo1; tab-stops:list .8in; font-size:11.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-ansi-language:EN-IE; font-weight:normal; font-style:italic; mso-bidi-font-style:normal;} p.MsoHeading7, li.MsoHeading7, div.MsoHeading7 {mso-style-next:Normal; margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:.9in; text-indent:-.9in; mso-pagination:widow-orphan lines-together; mso-outline-level:7; mso-list:l10 level7 lfo1; tab-stops:list .9in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoHeading8, li.MsoHeading8, div.MsoHeading8 {mso-style-next:Normal; margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:1.0in; text-indent:-1.0in; mso-pagination:widow-orphan lines-together; mso-outline-level:8; mso-list:l10 level8 lfo1; tab-stops:list 1.0in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE; font-style:italic; mso-bidi-font-style:normal;} p.MsoHeading9, li.MsoHeading9, div.MsoHeading9 {mso-style-next:Normal; margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:1.1in; text-indent:-1.1in; mso-pagination:widow-orphan lines-together; mso-outline-level:9; mso-list:l10 level9 lfo1; tab-stops:list 1.1in; font-size:9.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE; font-weight:bold; mso-bidi-font-weight:normal; font-style:italic; mso-bidi-font-style:normal;} p.MsoIndex1, li.MsoIndex1, div.MsoIndex1 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:11.0pt; margin-bottom:.0001pt; text-indent:-11.0pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoIndex2, li.MsoIndex2, div.MsoIndex2 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:22.0pt; margin-bottom:.0001pt; text-indent:-11.0pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoIndex3, li.MsoIndex3, div.MsoIndex3 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:33.0pt; margin-bottom:.0001pt; text-indent:-11.0pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoIndex4, li.MsoIndex4, div.MsoIndex4 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:44.0pt; margin-bottom:.0001pt; text-indent:-11.0pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoIndex5, li.MsoIndex5, div.MsoIndex5 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:55.0pt; margin-bottom:.0001pt; text-indent:-11.0pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoIndex6, li.MsoIndex6, div.MsoIndex6 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:66.0pt; margin-bottom:.0001pt; text-indent:-11.0pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoIndex7, li.MsoIndex7, div.MsoIndex7 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:77.0pt; margin-bottom:.0001pt; text-indent:-11.0pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoIndex8, li.MsoIndex8, div.MsoIndex8 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:88.0pt; margin-bottom:.0001pt; text-indent:-11.0pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoIndex9, li.MsoIndex9, div.MsoIndex9 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:99.0pt; margin-bottom:.0001pt; text-indent:-11.0pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoToc1, li.MsoToc1, div.MsoToc1 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoToc2, li.MsoToc2, div.MsoToc2 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:10.0pt; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoToc3, li.MsoToc3, div.MsoToc3 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:20.0pt; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoToc4, li.MsoToc4, div.MsoToc4 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:30.0pt; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoToc5, li.MsoToc5, div.MsoToc5 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:40.0pt; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoToc6, li.MsoToc6, div.MsoToc6 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:50.0pt; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoToc7, li.MsoToc7, div.MsoToc7 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:60.0pt; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoToc8, li.MsoToc8, div.MsoToc8 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:70.0pt; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoToc9, li.MsoToc9, div.MsoToc9 {mso-style-update:auto; mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:80.0pt; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoNormalIndent, li.MsoNormalIndent, div.MsoNormalIndent {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText {mso-style-noshow:yes; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoCommentText, li.MsoCommentText, div.MsoCommentText {mso-style-noshow:yes; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoHeader, li.MsoHeader, div.MsoHeader {margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; tab-stops:center 3.0in right 6.0in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoFooter, li.MsoFooter, div.MsoFooter {margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; tab-stops:center 3.0in right 6.0in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading {mso-style-noshow:yes; mso-style-next:"Index 1"; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE; font-weight:bold; mso-bidi-font-weight:normal;} p.MsoCaption, li.MsoCaption, div.MsoCaption {mso-style-noshow:yes; mso-style-next:Normal; margin-top:6.0pt; margin-right:0in; margin-bottom:6.0pt; margin-left:0in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE; font-weight:bold; mso-bidi-font-weight:normal;} p.MsoTof, li.MsoTof, div.MsoTof {mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:22.0pt; margin-bottom:.0001pt; text-indent:-22.0pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoEnvelopeAddress, li.MsoEnvelopeAddress, div.MsoEnvelopeAddress {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:2.0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; mso-element:frame; mso-element-frame-width:5.5in; mso-element-frame-height:99.0pt; mso-element-frame-hspace:9.0pt; mso-element-wrap:auto; mso-element-anchor-horizontal:page; mso-element-left:center; mso-element-top:bottom; font-size:12.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoEnvelopeReturn, li.MsoEnvelopeReturn, div.MsoEnvelopeReturn {margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoEndnoteText, li.MsoEndnoteText, div.MsoEndnoteText {mso-style-noshow:yes; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoToa, li.MsoToa, div.MsoToa {mso-style-noshow:yes; mso-style-next:Normal; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:11.0pt; margin-bottom:.0001pt; text-indent:-11.0pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoMacroText, li.MsoMacroText, div.MsoMacroText {mso-style-noshow:yes; mso-style-parent:""; margin:0in; margin-bottom:.0001pt; text-align:justify; mso-pagination:widow-orphan lines-together; tab-stops:24.0pt 48.0pt 1.0in 96.0pt 120.0pt 2.0in 168.0pt 192.0pt 3.0in; font-size:10.0pt; font-family:"Courier New"; mso-fareast-font-family:"Times New Roman"; mso-bidi-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoToaHeading, li.MsoToaHeading, div.MsoToaHeading {mso-style-noshow:yes; mso-style-next:Normal; margin-top:6.0pt; margin-right:0in; margin-bottom:0in; margin-left:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:12.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE; font-weight:bold; mso-bidi-font-weight:normal;} p.MsoList, li.MsoList, div.MsoList {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.25in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListBullet, li.MsoListBullet, div.MsoListBullet {mso-style-update:auto; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.25in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; mso-list:l9 level1 lfo2; tab-stops:list .25in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListNumber, li.MsoListNumber, div.MsoListNumber {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.25in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; mso-list:l8 level1 lfo3; tab-stops:list .25in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoList2, li.MsoList2, div.MsoList2 {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoList3, li.MsoList3, div.MsoList3 {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.75in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoList4, li.MsoList4, div.MsoList4 {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:1.0in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoList5, li.MsoList5, div.MsoList5 {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:1.25in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListBullet2, li.MsoListBullet2, div.MsoListBullet2 {mso-style-update:auto; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; mso-list:l7 level1 lfo4; tab-stops:list .5in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListBullet3, li.MsoListBullet3, div.MsoListBullet3 {mso-style-update:auto; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.75in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; mso-list:l6 level1 lfo5; tab-stops:list .75in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListBullet4, li.MsoListBullet4, div.MsoListBullet4 {mso-style-update:auto; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:1.0in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; mso-list:l5 level1 lfo6; tab-stops:list 1.0in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListBullet5, li.MsoListBullet5, div.MsoListBullet5 {mso-style-update:auto; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:1.25in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; mso-list:l4 level1 lfo7; tab-stops:list 1.25in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListNumber2, li.MsoListNumber2, div.MsoListNumber2 {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; mso-list:l3 level1 lfo8; tab-stops:list .5in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListNumber3, li.MsoListNumber3, div.MsoListNumber3 {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.75in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; mso-list:l2 level1 lfo9; tab-stops:list .75in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListNumber4, li.MsoListNumber4, div.MsoListNumber4 {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:1.0in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; mso-list:l1 level1 lfo10; tab-stops:list 1.0in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListNumber5, li.MsoListNumber5, div.MsoListNumber5 {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:1.25in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; mso-list:l0 level1 lfo11; tab-stops:list 1.25in; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoTitle, li.MsoTitle, div.MsoTitle {margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:0in; text-align:center; mso-pagination:widow-orphan lines-together; mso-outline-level:1; font-size:16.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-font-kerning:14.0pt; mso-ansi-language:EN-IE; font-weight:bold; mso-bidi-font-weight:normal;} p.MsoClosing, li.MsoClosing, div.MsoClosing {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:3.0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoSignature, li.MsoSignature, div.MsoSignature {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:3.0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoBodyText, li.MsoBodyText, div.MsoBodyText {margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:0in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoBodyTextIndent, li.MsoBodyTextIndent, div.MsoBodyTextIndent {margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:.25in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListContinue, li.MsoListContinue, div.MsoListContinue {margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:.25in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListContinue2, li.MsoListContinue2, div.MsoListContinue2 {margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:.5in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListContinue3, li.MsoListContinue3, div.MsoListContinue3 {margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:.75in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListContinue4, li.MsoListContinue4, div.MsoListContinue4 {margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:1.0in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoListContinue5, li.MsoListContinue5, div.MsoListContinue5 {margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:1.25in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoMessageHeader, li.MsoMessageHeader, div.MsoMessageHeader {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.75in; margin-bottom:.0001pt; text-indent:-.75in; mso-pagination:widow-orphan lines-together; background:#CCCCCC; mso-shading:windowtext; mso-pattern:gray-20 auto; border:none; mso-border-alt:solid windowtext .75pt; padding:0in; mso-padding-alt:1.0pt 1.0pt 1.0pt 1.0pt; font-size:12.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle {margin-top:0in; margin-right:0in; margin-bottom:3.0pt; margin-left:0in; text-align:center; mso-pagination:widow-orphan lines-together; mso-outline-level:2; font-size:12.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoSalutation, li.MsoSalutation, div.MsoSalutation {mso-style-next:Normal; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoDate, li.MsoDate, div.MsoDate {mso-style-next:Normal; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoBodyTextFirstIndent, li.MsoBodyTextFirstIndent, div.MsoBodyTextFirstIndent {mso-style-parent:"Body Text"; margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:0in; text-indent:10.5pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoBodyTextFirstIndent2, li.MsoBodyTextFirstIndent2, div.MsoBodyTextFirstIndent2 {mso-style-parent:"Body Text Indent"; margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:.25in; text-indent:10.5pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoNoteHeading, li.MsoNoteHeading, div.MsoNoteHeading {mso-style-next:Normal; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoBodyText2, li.MsoBodyText2, div.MsoBodyText2 {margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:0in; line-height:200%; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoBodyText3, li.MsoBodyText3, div.MsoBodyText3 {margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:0in; mso-pagination:widow-orphan lines-together; font-size:8.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoBodyTextIndent2, li.MsoBodyTextIndent2, div.MsoBodyTextIndent2 {margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:.25in; line-height:200%; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoBodyTextIndent3, li.MsoBodyTextIndent3, div.MsoBodyTextIndent3 {margin-top:0in; margin-right:0in; margin-bottom:6.0pt; margin-left:.25in; mso-pagination:widow-orphan lines-together; font-size:8.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} p.MsoBlockText, li.MsoBlockText, div.MsoBlockText {margin-top:0in; margin-right:1.0in; margin-bottom:6.0pt; margin-left:1.0in; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} a:link, span.MsoHyperlink {color:blue; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline; text-underline:single;} p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap {mso-style-noshow:yes; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; background:navy; font-size:10.0pt; font-family:Tahoma; mso-fareast-font-family:"Times New Roman"; mso-bidi-font-family:Arial; mso-ansi-language:EN-IE;} p.MsoPlainText, li.MsoPlainText, div.MsoPlainText {margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:10.0pt; font-family:"Courier New"; mso-fareast-font-family:"Times New Roman"; mso-bidi-font-family:Arial; mso-ansi-language:EN-IE;} p {mso-margin-top-alt:auto; margin-right:0in; mso-margin-bottom-alt:auto; margin-left:0in; mso-pagination:widow-orphan; font-size:9.0pt; font-family:Arial; mso-fareast-font-family:"Times New Roman";} p.MsoAcetate, li.MsoAcetate, div.MsoAcetate {mso-style-noshow:yes; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan lines-together; font-size:8.0pt; font-family:Tahoma; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-IE;} span.Heading2Char {mso-style-name:"Heading 2 Char"; mso-style-locked:yes; mso-style-link:"Heading 2"; mso-ansi-font-size:12.0pt; font-family:Arial; mso-ascii-font-family:Arial; mso-hansi-font-family:Arial; mso-bidi-font-family:Arial; mso-ansi-language:EN-IE; mso-fareast-language:EN-US; mso-bidi-language:AR-SA; font-weight:bold; mso-bidi-font-weight:normal;} p.Body, li.Body, div.Body {mso-style-name:Body; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-bidi-font-family:Arial;} p.FunctionPrototype, li.FunctionPrototype, div.FunctionPrototype {mso-style-name:"Function Prototype"; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan lines-together; font-size:9.0pt; mso-bidi-font-size:10.0pt; font-family:"Courier New"; mso-fareast-font-family:"Times New Roman"; mso-bidi-font-family:Arial; mso-ansi-language:EN-IE;} /* Page Definitions */ @page {mso-footnote-separator:url("JET_Creator_User_Manual_files/header.htm") fs; mso-footnote-continuation-separator:url("JET_Creator_User_Manual_files/header.htm") fcs; mso-endnote-separator:url("JET_Creator_User_Manual_files/header.htm") es; mso-endnote-continuation-separator:url("JET_Creator_User_Manual_files/header.htm") ecs;} @page Section1 {size:595.45pt 841.7pt; margin:1.1in 1.25in 1.1in 1.25in; mso-header-margin:.5in; mso-footer-margin:.4in; mso-title-page:yes; mso-even-header:url("JET_Creator_User_Manual_files/header.htm") eh1; mso-header:url("JET_Creator_User_Manual_files/header.htm") h1; mso-even-footer:url("JET_Creator_User_Manual_files/header.htm") ef1; mso-footer:url("JET_Creator_User_Manual_files/header.htm") f1; mso-first-footer:url("JET_Creator_User_Manual_files/header.htm") ff1; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:-132; mso-list-type:simple; mso-list-template-ids:-762522690;} @list l0:level1 {mso-level-style-link:"List Number 5"; mso-level-tab-stop:1.25in; mso-level-number-position:left; margin-left:1.25in; text-indent:-.25in;} @list l1 {mso-list-id:-131; mso-list-type:simple; mso-list-template-ids:828031264;} @list l1:level1 {mso-level-style-link:"List Number 4"; mso-level-tab-stop:1.0in; mso-level-number-position:left; margin-left:1.0in; text-indent:-.25in;} @list l2 {mso-list-id:-130; mso-list-type:simple; mso-list-template-ids:1556219102;} @list l2:level1 {mso-level-style-link:"List Number 3"; mso-level-tab-stop:.75in; mso-level-number-position:left; margin-left:.75in; text-indent:-.25in;} @list l3 {mso-list-id:-129; mso-list-type:simple; mso-list-template-ids:1492152526;} @list l3:level1 {mso-level-style-link:"List Number 2"; mso-level-tab-stop:.5in; mso-level-number-position:left; text-indent:-.25in;} @list l4 {mso-list-id:-128; mso-list-type:simple; mso-list-template-ids:373048972;} @list l4:level1 {mso-level-number-format:bullet; mso-level-style-link:"List Bullet 5"; mso-level-text:\F0B7; mso-level-tab-stop:1.25in; mso-level-number-position:left; margin-left:1.25in; text-indent:-.25in; font-family:Symbol;} @list l5 {mso-list-id:-127; mso-list-type:simple; mso-list-template-ids:-1897731242;} @list l5:level1 {mso-level-number-format:bullet; mso-level-style-link:"List Bullet 4"; mso-level-text:\F0B7; mso-level-tab-stop:1.0in; mso-level-number-position:left; margin-left:1.0in; text-indent:-.25in; font-family:Symbol;} @list l6 {mso-list-id:-126; mso-list-type:simple; mso-list-template-ids:213402420;} @list l6:level1 {mso-level-number-format:bullet; mso-level-style-link:"List Bullet 3"; mso-level-text:\F0B7; mso-level-tab-stop:.75in; mso-level-number-position:left; margin-left:.75in; text-indent:-.25in; font-family:Symbol;} @list l7 {mso-list-id:-125; mso-list-type:simple; mso-list-template-ids:-1230352896;} @list l7:level1 {mso-level-number-format:bullet; mso-level-style-link:"List Bullet 2"; mso-level-text:\F0B7; mso-level-tab-stop:.5in; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l8 {mso-list-id:-120; mso-list-type:simple; mso-list-template-ids:-1099685254;} @list l8:level1 {mso-level-style-link:"List Number"; mso-level-tab-stop:.25in; mso-level-number-position:left; margin-left:.25in; text-indent:-.25in;} @list l9 {mso-list-id:-119; mso-list-type:simple; mso-list-template-ids:-1849629656;} @list l9:level1 {mso-level-number-format:bullet; mso-level-style-link:"List Bullet"; mso-level-text:\F0B7; mso-level-tab-stop:.25in; mso-level-number-position:left; margin-left:.25in; text-indent:-.25in; font-family:Symbol;} @list l10 {mso-list-id:1411350143; mso-list-template-ids:1661217014;} @list l10:level1 {mso-level-style-link:"Heading 1"; mso-level-text:%1; mso-level-tab-stop:.3in; mso-level-number-position:left; margin-left:.3in; text-indent:-.3in;} @list l10:level2 {mso-level-style-link:"Heading 2"; mso-level-text:"%1\.%2"; mso-level-tab-stop:.4in; mso-level-number-position:left; margin-left:.4in; text-indent:-.4in;} @list l10:level3 {mso-level-style-link:"Heading 3"; mso-level-text:"%1\.%2\.%3"; mso-level-tab-stop:.5in; mso-level-number-position:left; margin-left:.5in; text-indent:-.5in;} @list l10:level4 {mso-level-style-link:"Heading 4"; mso-level-text:"%1\.%2\.%3\.%4"; mso-level-tab-stop:.6in; mso-level-number-position:left; margin-left:.6in; text-indent:-.6in;} @list l10:level5 {mso-level-style-link:"Heading 5"; mso-level-text:"%1\.%2\.%3\.%4\.%5"; mso-level-tab-stop:.7in; mso-level-number-position:left; margin-left:.7in; text-indent:-.7in;} @list l10:level6 {mso-level-style-link:"Heading 6"; mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6"; mso-level-tab-stop:.8in; mso-level-number-position:left; margin-left:.8in; text-indent:-.8in;} @list l10:level7 {mso-level-style-link:"Heading 7"; mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7"; mso-level-tab-stop:.9in; mso-level-number-position:left; margin-left:.9in; text-indent:-.9in;} @list l10:level8 {mso-level-style-link:"Heading 8"; mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8"; mso-level-tab-stop:1.0in; mso-level-number-position:left; margin-left:1.0in; text-indent:-1.0in;} @list l10:level9 {mso-level-style-link:"Heading 9"; mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9"; mso-level-tab-stop:1.1in; mso-level-number-position:left; margin-left:1.1in; text-indent:-1.1in;} @list l11 {mso-list-id:1867253638; mso-list-type:hybrid; mso-list-template-ids:-1002652952 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l11:level1 {mso-level-tab-stop:.5in; mso-level-number-position:left; text-indent:-.25in;} @list l11:level2 {mso-level-tab-stop:1.0in; mso-level-number-position:left; text-indent:-.25in;} @list l11:level3 {mso-level-tab-stop:1.5in; mso-level-number-position:left; text-indent:-.25in;} @list l11:level4 {mso-level-tab-stop:2.0in; mso-level-number-position:left; text-indent:-.25in;} @list l11:level5 {mso-level-tab-stop:2.5in; mso-level-number-position:left; text-indent:-.25in;} @list l11:level6 {mso-level-tab-stop:3.0in; mso-level-number-position:left; text-indent:-.25in;} @list l11:level7 {mso-level-tab-stop:3.5in; mso-level-number-position:left; text-indent:-.25in;} @list l11:level8 {mso-level-tab-stop:4.0in; mso-level-number-position:left; text-indent:-.25in;} @list l11:level9 {mso-level-tab-stop:4.5in; mso-level-number-position:left; text-indent:-.25in;} ol {margin-bottom:0in;} ul {margin-bottom:0in;} --> </style> <!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--><!--[if gte mso 9]><xml> <o:shapedefaults v:ext="edit" spidmax="5122" fill="f" fillcolor="white" stroke="f"> <v:fill color="white" on="f"/> <v:stroke on="f"/> </o:shapedefaults></xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1"/> </o:shapelayout></xml><![endif]--> </head> <body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'> <pre> Copyright (C) 2009 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </pre> <div class=Section1> <p class=MsoTitle align=left style='text-align:left'><a name="_Toc203292246"></a><a name="_Toc203298075"><span style='mso-bookmark:_Toc203292246'><span lang=EN-IE style='font-size:20.0pt'>JETCreator� User Manual<o:p></o:p></span></span></a></p> <p class=MsoTitle align=left style='text-align:left'><span style='mso-bookmark: _Toc203298075'><span style='mso-bookmark:_Toc203292246'><span lang=EN-IE style='font-size:12.0pt'>Vrs 1.0<o:p></o:p></span></span></span></p> <p class=MsoTitle align=left style='text-align:left'><span style='mso-bookmark: _Toc203298075'><span style='mso-bookmark:_Toc203292246'><span lang=EN-IE>Content Authoring Application for the</span></span></span></p> <p class=MsoTitle align=left style='text-align:left'><span style='mso-bookmark: _Toc203298075'><span style='mso-bookmark:_Toc203292246'><span lang=EN-IE>JET Interactive Music Engine</span></span></span></p> <p class=MsoTitle align=left style='text-align:left'><span style='mso-bookmark: _Toc203298075'><span style='mso-bookmark:_Toc203292246'><span lang=EN-IE style='font-size:12.0pt'>Authored by SONiVOX<o:p></o:p></span></span></span></p> <p class=MsoTitle align=left style='text-align:left'><span style='mso-bookmark: _Toc203298075'><span style='mso-bookmark:_Toc203292246'></span></span><a href="http://www.sonivoxrocks.com/"><span style='mso-bookmark:_Toc203298075'><span style='mso-bookmark:_Toc203292246'><span lang=EN-IE style='font-size:12.0pt'>www.sonivoxrocks.com</span></span></span><span style='mso-bookmark:_Toc203298075'><span style='mso-bookmark:_Toc203292246'></span></span></a><span style='mso-bookmark:_Toc203298075'><span style='mso-bookmark:_Toc203292246'><span lang=EN-IE style='font-size:12.0pt'><o:p></o:p></span></span></span></p> <p class=MsoTitle align=left style='text-align:left'><span style='mso-bookmark: _Toc203298075'><span style='mso-bookmark:_Toc203292246'><span lang=EN-IE style='font-size:12.0pt'>Copyright 2009 Sonic Network, Inc.<o:p></o:p></span></span></span></p> <span style='mso-bookmark:_Toc203292246'></span><span style='mso-bookmark:_Toc203298075'></span> <p class=MsoHeader><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoHeader><span lang=EN-IE><o:p> </o:p></span></p> <h1><a name="_Toc482161515"></a><a name="_Toc203298082"><span style='mso-bookmark: _Toc482161515'><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family: Arial'><span style='mso-list:Ignore'>1<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Introduction</span></span></a></h1> <h2><a name="_Toc203298083"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>1.1<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Overview</span></a></h2> <p class=MsoNormal><span lang=EN-IE>This document contains the user guidelines for the SONiVOX JET Creator, an authoring application for creating and auditioning JET files. JET is an interactive music player for small embedded devices, including the Google Android platform. It allows applications to include interactive music soundtracks, in <st1:place w:st="on">MIDI</st1:place> format, that respond in real-time to game play events and user interaction. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>JET works in conjunction with SONiVOX�s Embedded Audio Synthesizer (EAS) which is the <st1:place w:st="on">MIDI</st1:place> playback device for Android.<span style='mso-spacerun:yes'>� </span>Both the JET and EAS engines are integrated into the Android embedded platform as well as inherent in the JET Creator application. As such, the JET content author can be sure that the playback will sound exactly the same in both the JET Creator and the final Android application playing back on Android mobile devices.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>In addition to the graphical user interface, there are two main functionalities taking place in JET Creator. The first involves gathering all the source data (<st1:place w:st="on">MIDI</st1:place> files and DLS file), adding JET�s real-time attributes and building a JET (.jet) file that the Android application will use. The second functionality involves auditioning the interactive playback elements as they will take place in the Android application. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>The JET Creator application is written in the Python programming language, therefore you need to have the current version of Python and WXWidgets installed. There is both a Mac and Windows version. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h2><a name="_Toc203298084"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>1.2<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Abbreviations and Common Terms</span></a></h2> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>It is important to use a common set of terms to minimize confusion. Since JET uses <st1:place w:st="on">MIDI</st1:place> in a unique way, normal industry terms may not always suffice. Here is the definition of terms as they are used in this document and in the JET Creator application:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><i style='mso-bidi-font-style:normal'><span lang=EN-IE>Channel</span></i><span lang=EN-IE>: MIDI data associated with a specific <st1:place w:st="on">MIDI</st1:place> channel. Standard MIDI allows for 16 channels of <st1:place w:st="on">MIDI</st1:place> data each of which are typically associated with a specific instrument. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><i style='mso-bidi-font-style:normal'><span lang=EN-IE>Controller</span></i><span lang=EN-IE>: A <st1:place w:st="on">MIDI</st1:place> event consisting of a channel number, controller number, and a controller value. The <st1:place w:st="on">MIDI</st1:place> spec associates many controller numbers with specific functions, such as volume, expression, sustain pedal, etc. JET also uses controller events as a means of embedding special control information in a <st1:place w:st="on">MIDI</st1:place> sequence to provide for audio synchronization.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><i style='mso-bidi-font-style:normal'><span lang=EN-IE>DAW</span></i><span lang=EN-IE>: Digital Audio Workstation. A common term for <st1:place w:st="on">MIDI</st1:place> and audio sequencing applications such as Logic, SONAR, Cubase and others. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><i style='mso-bidi-font-style:normal'><span lang=EN-IE>EAS:</span></i><span lang=EN-IE> Embedded <st1:place w:st="on">MIDI</st1:place> Synthesizer. The name of the SONiVOX MIDI synthesizer engine.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><i style='mso-bidi-font-style:normal'><span lang=EN-IE>JET</span></i><span lang=EN-IE>: Jet Interactive Engine. The name of the SONiVOX JET interactive music engine.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><i style='mso-bidi-font-style:normal'><span lang=EN-IE>M/B/T</span></i><span lang=EN-IE>: Measures, Beats and Ticks</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><i style='mso-bidi-font-style:normal'><span lang=EN-IE>Segment</span></i><span lang=EN-IE>: A musical section such as a chorus or verse that is a component of the overall composition. In JET, a segment can be an entire MIDI file or a derived from a portion of a <st1:place w:st="on">MIDI</st1:place> file.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><i style='mso-bidi-font-style:normal'><span lang=EN-IE>SMF-0</span></i><span lang=EN-IE>: Standard MIDI File Type 0, a MIDI file that contains a single track, but may be made up of multiple channels of <st1:place w:st="on">MIDI</st1:place> data.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><i style='mso-bidi-font-style:normal'><span lang=EN-IE>SMF-1</span></i><span lang=EN-IE>: Standard MIDI File Type 1, a MIDI file that contains a one more tracks, and each track may in turn be made up of one or more channels of <st1:place w:st="on">MIDI</st1:place> data. By convention, each channel is stored on a separate track in an SMF-1 file. However, it is possible to have multiple MIDI channels on a single track, or multiple tracks that contain data for the same <st1:place w:st="on">MIDI</st1:place> channel.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><i style='mso-bidi-font-style:normal'><span lang=EN-IE>Track</span></i><span lang=EN-IE>: A single track in a DAW containing a timed sequence of <st1:place w:st="on">MIDI</st1:place> events. Be careful not to confuse Tracks with Channels. A MIDI file may contain many tracks with several tracks utilizing the same <st1:place w:st="on">MIDI</st1:place> channel. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h1><a name="_Toc203298085"></a><a name="_Toc135723076"></a><a name="_Toc135723793"></a><a name="_Toc135724016"></a><a name="_Toc135724241"></a><a name="_Toc135724464"></a><a name="_Toc135724687"></a><a name="_Toc135724909"></a><a name="_Toc135725132"></a><a name="_Toc135726607"></a><a name="_Toc135727776"></a><a name="_Toc137004452"></a><a name="_Toc135724689"></a><a name="_Toc135724467"></a><![if !supportLists]><span style='mso-bookmark:_Toc203298085'><span lang=EN-IE style='mso-fareast-font-family: Arial'><span style='mso-list:Ignore'>1<span style='font:7.0pt "Times New Roman"'> </span></span></span></span><![endif]><span style='mso-bookmark:_Toc203298085'><span lang=EN-IE>The JET Interactive Music Concept</span></span></h1> <p class=MsoNormal><span lang=EN-IE>Interactive music can be defined as music that changes in real-time according to non-predictable events such as user interaction or game play events. In this way, interactive music is much more engaging as it has the ability to match the energy and mood of a game much closer than a pre-composed composition that never changes. In some applications and games, interactive music is central to the game play. Guitar Hero is one such popular game. When the end user successfully �captures� the musical notes coming down the fret board, the music adapts itself and simultaneously keeps score of successes and failures. JET allows for these types of music driven games as well.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>There are several methods for making and controlling interactive music and JET is one such method. This section describes the features of JET and how they might be used in a game or software application. It also describes how JET can be used to save memory in small footprint devices such as Android enabled mobile handsets.</span></p> <h3><a name="_Toc203298086"><![if !supportLists]><span class=Heading2Char><span lang=EN-IE style='font-size:12.0pt;mso-bidi-font-size:10.0pt;mso-fareast-font-family: Arial;mso-bidi-font-weight:normal'><span style='mso-list:Ignore'>1.1.1<span style='font:7.0pt "Times New Roman"'> </span></span></span></span><![endif]><span class=Heading2Char><span lang=EN-IE style='font-size:12.0pt;mso-bidi-font-size: 10.0pt;font-weight:normal'>Data Compression</span></span></a><span style='mso-bookmark:_Toc203298086'></span><span class=Heading2Char><span lang=EN-IE style='font-size:12.0pt;mso-bidi-font-size:10.0pt;mso-bidi-font-weight: normal'><o:p></o:p></span></span></h3> <p class=MsoNormal><span lang=EN-IE>JET supports a flexible music format that can be used to create extended musical sequences with a minimal amount of data. A musical composition is broken up into segments that can be sequenced to create a longer piece. The sequencing can be fixed at the time the music file is authored, or it can be created dynamically under program control.</span></p> <h3><a name="_Toc203298087"><![if !supportLists]><span class=Heading2Char><span lang=EN-IE style='font-size:12.0pt;mso-bidi-font-size:10.0pt;mso-fareast-font-family: Arial;mso-bidi-font-weight:normal'><span style='mso-list:Ignore'>1.1.2<span style='font:7.0pt "Times New Roman"'> </span></span></span></span><![endif]><span class=Heading2Char><span lang=EN-IE style='font-size:12.0pt;mso-bidi-font-size: 10.0pt;font-weight:normal'>Linear Music Example</span></span></a><span style='mso-bookmark:_Toc203298087'></span><span class=Heading2Char><span lang=EN-IE style='font-size:12.0pt;mso-bidi-font-size:10.0pt;mso-bidi-font-weight: normal'><o:p></o:p></span></span></h3> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:431.25pt; height:294.75pt' o:ole=""> <v:imagedata src="JET_Creator_User_Manual_files/image030.emz" o:title=""/> </v:shape><![endif]--><![if !vml]><img border=0 width=575 height=393 src="JET_Creator_User_Manual_files/image002.gif" v:shapes="_x0000_i1025"><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Visio.Drawing.11" ShapeID="_x0000_i1025" DrawAspect="Content" ObjectID="_1298963408"> </o:OLEObject> </xml><![endif]--></span></p> <p class=MsoCaption><span lang=EN-IE>Figure <span style='mso-field-code:" SEQ Figure \\* ARABIC "'><span style='mso-no-proof:yes'>1</span></span>: Linear Music Piece</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>This diagram shows how musical segments are stored. Each segment is authored as a separate <st1:place w:st="on">MIDI</st1:place> file. A post-processing tool combines the files into a single container file. Each segment can contain alternate music tracks that can be muted or un-muted to create additional interest. An example might be a brass accent in the chorus that is played only the last time through. Also, segments can be transposed up or down.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>The bottom part of the diagram shows how the musical segments can be recombined to create a linear music piece. In this example, the bridge might end with a half-step key modulation and the remaining segments could be transposed up a half-step to match.</span></p> <h3><a name="_Toc203298088"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>1.1.3<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Non-linear Music Example</span></a></h3> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" style='width:6in;height:291.75pt' o:ole=""> <v:imagedata src="JET_Creator_User_Manual_files/image031.emz" o:title=""/> </v:shape><![endif]--><![if !vml]><img border=0 width=576 height=389 src="JET_Creator_User_Manual_files/image004.gif" v:shapes="_x0000_i1026"><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Visio.Drawing.11" ShapeID="_x0000_i1026" DrawAspect="Content" ObjectID="_1298963409"> </o:OLEObject> </xml><![endif]--></span></p> <p class=MsoCaption><span lang=EN-IE>Figure <span style='mso-field-code:" SEQ Figure \\* ARABIC "'><span style='mso-no-proof:yes'>2</span></span>: Non-linear music piece</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>In this diagram, we see a non-linear music piece. The scenario is a first-person-shooter (FPS) and JET is providing the background music. The intro plays as the level is loading and then transitions under program control to the Searching segment. This segment is repeated indefinitely, perhaps with small variations (using the mute/un-mute feature) until activity in the game dictates a change.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>As the player nears a monster lair, the program starts a synchronized transition to the Danger segment, increasing the tension level in the audio. As the player draws closer to the lair, additional tracks are un-muted to increase the tension.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>As the player enters into combat with the monster, the program starts a synchronized transition to the Combat segment. The segment repeats indefinitely as the combat continues. A Bonus Hit temporarily un-mutes a decorative track that notifies the player of a successful attack, and similarly, another track is temporarily un-muted to signify when the player receives Special Damage.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>At the end of combat, the music transitions to a victory or defeat segment based on the outcome of battle.</span></p> <h3><a name="_Toc203298089"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>1.1.4<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Mute/Un-mute Synchronization</span></a></h3> <p class=MsoNormal><span lang=EN-IE>JET can also synchronize the muting and un-muting of tracks to events in the music. For example, in the FPS game, it would probably be desirable to place the musical events relating to bonuses and damage as close to the actual game event as possible. However, simply un-muting a track at the moment the game event occurs might result in a music clip starting in the middle. Alternatively, a clip could be started from the beginning, but then it wouldn�t be synchronized with the other music tracks.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>However, with the JET sync engine, a clip can be started at the next opportune moment and maintain synchronization. This can be accomplished by placing a number of short music clips on a decorative track. A <st1:place w:st="on">MIDI</st1:place> event in the stream signifies the start of a clip and a second event signifies the end of a clip. When the application calls the JET clip function, the next clip in the track is allowed to play fully synchronized to the music. Optionally, the track can be automatically muted by a second <st1:place w:st="on">MIDI</st1:place> event.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1027" type="#_x0000_t75" style='width:6in;height:116.25pt' o:ole=""> <v:imagedata src="JET_Creator_User_Manual_files/image032.emz" o:title=""/> </v:shape><![endif]--><![if !vml]><img border=0 width=576 height=155 src="JET_Creator_User_Manual_files/image006.gif" v:shapes="_x0000_i1027"><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Visio.Drawing.11" ShapeID="_x0000_i1027" DrawAspect="Content" ObjectID="_1298963410"> </o:OLEObject> </xml><![endif]--></span></p> <p class=MsoCaption><span lang=EN-IE>Figure <span style='mso-field-code:" SEQ Figure \\* ARABIC "'><span style='mso-no-proof:yes'>3</span></span>: Synchronized Mute/Unmute</span></p> <h2><a name="_Toc203298090"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>1.2<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Audio Synchronization</span></a></h2> <p class=MsoNormal><span lang=EN-IE>JET provides an audio synchronization API that allows game play to be synchronized to events in the audio. The mechanism relies on data embedded in the <st1:place w:st="on">MIDI</st1:place> file at the time the content is authored. When the JET engine senses an event during playback it generates a callback into the application program. The timing of the callback can be adjusted to compensate for any latency in the audio playback system so that audio and video can be synchronized. The diagram below shows an example of a simple music game that involves pressing the left and right arrows in time with the music.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1028" type="#_x0000_t75" style='width:6in;height:100.5pt' o:ole=""> <v:imagedata src="JET_Creator_User_Manual_files/image033.emz" o:title=""/> </v:shape><![endif]--><![if !vml]><img border=0 width=576 height=134 src="JET_Creator_User_Manual_files/image008.gif" v:shapes="_x0000_i1028"><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Visio.Drawing.11" ShapeID="_x0000_i1028" DrawAspect="Content" ObjectID="_1298963411"> </o:OLEObject> </xml><![endif]--></span></p> <p class=MsoCaption><span lang=EN-IE>Figure <span style='mso-field-code:" SEQ Figure \\* ARABIC "'><span style='mso-no-proof:yes'>4</span></span>: Music Game<span style='mso-no-proof: yes'> with Synchronization<o:p></o:p></span></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>The arrows represent events in the music sequence where game events need to be synchronized. In this case, the blue arrow represents a time where the player is supposed to press the left button, and the red arrow is for the right button. The yellow arrow tells the game engine that the sequence is complete. The player is allowed a certain time window before and after the event to press the appropriate key.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>If an event is received and the player has not pressed a button, a timer is set to half the length of the window. If the player presses the button before the timer expires, the game registers a success, and if not, the game registers a failure. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>If the player presses the button before the event is received, a timer is set to half the length of the window. If an event is received before the timer expires, the game registers a success, and if not, the game registers a failure. Game play might also include bonuses for getting close to the timing of the actual event. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h1><a name="_Toc203298091"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>2<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>JET Content Authoring Overview</span></a></h1> <p class=MsoNormal><span lang=EN-IE>To author JET files and hear them playback interactively, the content author will work in two applications which are designed to work together smoothly. The first is application is any off-the-shelf <st1:place w:st="on">MIDI</st1:place> sequencing application that supports VST (for PC) or AU (for Mac) plugins. Here the author will compose their <st1:place w:st="on">MIDI</st1:place> music files using the plugin as the synthesizer device. The second application is the JET Creator application. Here the author will import their <st1:place w:st="on">MIDI</st1:place> music files (and optionally a DLS2 soundset) and setup the conditions for interactive playback within the JET enabled game. Optionally the content author may create a custom set of DLS instruments using an instrument editor that supports the DLS Level 2 format. One such application is Awave from MJSoft. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Please see the <i style='mso-bidi-font-style: normal'>JET Content Authoring Guidelines</i> documentation for additional details on content authoring.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h1><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>3<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Installing and Launching JET Creator</span></h1> <p class=MsoNormal><span lang=EN-IE>JET Creator is a python language application, therefore, you must have Python and wxPython installed on your machine. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>JetCreator was created and tested with:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Python Version 2.5.4</span></p> <p class=MsoNormal><span lang=EN-IE>wxPython Version 2.8.7.1</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>These can be downloaded here:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>PC:</span></p> <p class=MsoNormal><span lang=EN-IE>http://www.python.org/download/releases/2.5.4/</span></p> <p class=MsoNormal><span lang=EN-IE>http://www.wxpython.org/download.php</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>MAC:</span></p> <p class=MsoNormal><span lang=EN-IE>http://wiki.python.org/moin/MacPython/Leopard</span></p> <p class=MsoNormal><span lang=EN-IE>http://www.wxpython.org/download.php</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>After installing Python and wxPython, simply unzip or copy all the files in the JET Creator application directory to a folder on your hard drive.</span></p> <p class=MsoNormal style='tab-stops:157.5pt'><span lang=EN-IE><span style='mso-tab-count:1'>���������������������������������������������������� </span></span></p> <p class=MsoNormal><span lang=EN-IE>To launch JET Creator go to a command prompt and set the directory to where you�ve installed Python. Next run python with the command:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><i style='mso-bidi-font-style:normal'><span lang=EN-IE>python jetcreator.py<o:p></o:p></span></i></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h1><a name="_Toc203298093"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>4<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Using JET Creator</span></a></h1> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h2><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>4.1<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>File Types</span></h2> <p class=MsoNormal><span lang=EN-IE>There are a few different file types associated with JET Creator.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>.jtc<span style='mso-tab-count:1'>������� </span>JET Creator project file. This file contains all the information associated with a JET Creator project. When you Save or Save-as out of JET Creator, this file type is saved.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>.jet<span style='mso-tab-count:1'>������� </span>JET File. This output file is automatically generated from JET Creator whenever you save your JET Creator project. This is the file that bundles all JET assets together into a single file that the Android application will use. Give this file to the Android application developer.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>.mid<span style='mso-tab-count:1'>����� </span><st1:place w:st="on">MIDI</st1:place> File. This is the standard <st1:place w:st="on">MIDI</st1:place> type 1 file that JET Creator will use to make segments.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>.seg<span style='mso-tab-count:1'>����� </span>Segment File. This is a JET Segment file. It has the same name as the <st1:place w:st="on">MIDI</st1:place> file which it references but contains additional Segment information.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>.zip<span style='mso-tab-count:1'>������ </span>Zip Archive file. When you Export a JET Archive, a zip file is created that contains all the assets (files) necessary for JET Creator. Use this to transfer JET Creator projects to other people.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h2><a name="_Toc203298094"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>4.2<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Open Dialog</span></a></h2> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><span lang=EN-IE>When you first launch JET Creator you are presented with an open dialog like the following.</span></span></p> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><span lang=EN-IE><o:p> </o:p></span></span></p> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1029" type="#_x0000_t75" style='width:337.5pt;height:213.75pt'> <v:imagedata src="JET_Creator_User_Manual_files/image009.png" o:title="JET Open Dialog"/> </v:shape><![endif]--><![if !vml]><img border=0 width=450 height=285 src="JET_Creator_User_Manual_files/image010.jpg" v:shapes="_x0000_i1029"><![endif]></span></span></p> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><span lang=EN-IE><o:p> </o:p></span></span></p> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><span lang=EN-IE><o:p> </o:p></span></span></p> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><b style='mso-bidi-font-weight:normal'><span lang=EN-IE>Open</span></b><span lang=EN-IE> will open an existing .jtc (JET Creator file) file. Use the browser button to browse to the directory where you have saved your .jtc file.</span></span></p> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><span lang=EN-IE><o:p> </o:p></span></span></p> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><b style='mso-bidi-font-weight:normal'><span lang=EN-IE>New</span></b><span lang=EN-IE> will create a new .jtc file.</span></span></p> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><span lang=EN-IE><o:p> </o:p></span></span></p> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><b style='mso-bidi-font-weight:normal'><span lang=EN-IE>Import</span></b><span lang=EN-IE> will import a JET Archive (.zip) file.</span></span></p> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><span lang=EN-IE><o:p> </o:p></span></span></p> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><b style='mso-bidi-font-weight:normal'><span lang=EN-IE>Cancel</span></b><span lang=EN-IE> will cancel the dialog and exit the application.</span></span></p> <p class=MsoNormal><span style='mso-bookmark:_Toc203298094'><span lang=EN-IE><o:p> </o:p></span></span></p> <span style='mso-bookmark:_Toc203298094'></span> <h1><a name="_Toc203298100"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Main Window</span></a><span lang=EN-IE> </span></h1> <p class=MsoNormal><span lang=EN-IE>The main window of the JET Creator application looks like the picture below. There are three main sections from top to bottom: segment view, event view, and timeline. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>The segment view section displays a list of the current segments, which <st1:place w:st="on">MIDI</st1:place> file and (optionally) DLS2 file each segment is derived from. It also shows each segments start and stop time and each segments quantize, transpose, repeat and mute flag settings.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Just below the Segment view is the event view. The event view section displays all events associated with a given segment. Events only display when the segment they are assigned to is highlighted. Each event displays its type, start and end points, track and midi channel assignment, and its event ID.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Just below the Event view is the timeline display. The timeline shows how many measures a given segment is as well as any events associated with that segment. The timeline changes to display the currently selected or playing segment. You can trigger an event in this window while the segment is play by simply clicking on the event in the timeline display.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1030" type="#_x0000_t75" style='width:415.5pt;height:283.5pt'> <v:imagedata src="JET_Creator_User_Manual_files/image011.png" o:title="JET Main Window"/> </v:shape><![endif]--><![if !vml]><img border=0 width=554 height=378 src="JET_Creator_User_Manual_files/image012.jpg" v:shapes="_x0000_i1030"><![endif]></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><i style='mso-bidi-font-style:normal'><span lang=EN-IE>JET Creator Main Window<o:p></o:p></span></i></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>The buttons along the left side of main window do the following:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:81.0pt;text-indent:-81.0pt'><span lang=EN-IE>Add:<span style='mso-tab-count:1'>������������������� </span>- Displays the segment or event window for adding a new segment or event</span></p> <p class=MsoNormal style='margin-left:81.0pt;text-indent:-81.0pt'><span lang=EN-IE>Revise:<span style='mso-tab-count:1'>��������������� </span>- Displays the segment or event window for updating an existing segment or event</span></p> <p class=MsoNormal style='margin-left:81.0pt;text-indent:-81.0pt'><span lang=EN-IE>Delete:<span style='mso-tab-count:1'>���������������� </span>- Deletes the selected segment or event (will ask for confirmation)</span></p> <p class=MsoNormal style='margin-left:81.0pt;text-indent:-81.0pt'><span lang=EN-IE>Move:<span style='mso-tab-count:1'>����������������� </span>- Displays the move window which allows you to move selected segments or events in time</span></p> <p class=MsoNormal style='margin-left:81.0pt;text-indent:-81.0pt'><span lang=EN-IE>Queue All:<span style='mso-tab-count:1'>����������� </span>- Queue�s (selects) all segments for playback</span></p> <p class=MsoNormal style='margin-left:81.0pt;text-indent:-81.0pt'><span lang=EN-IE>Dequeue All:<span style='mso-tab-count:1'>������� </span>- Dequeue�s (deselects) all segments</span></p> <p class=MsoNormal style='margin-left:81.0pt;text-indent:-81.0pt'><span lang=EN-IE>Play:<span style='mso-tab-count:1'>������������������� </span>- Starts playback of all queue�d segments. This button changes to Stop if any segments are playing</span></p> <p class=MsoNormal style='margin-left:81.0pt;text-indent:-81.0pt'><span lang=EN-IE>Audition:<span style='mso-tab-count:1'>������������� </span>- Displays the Audition window (see below)</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h2><a name="_Toc203298101"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.1<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Segment Window</span></a></h2> <p class=MsoNormal><span lang=EN-IE>The segment window is where a given segment�s attributes are assigned and auditioned, as shown in the picture below. The left side of the window displays the segments attributes that are stored in the JET file. The right side of the window allows the author to set mute flags, repeat and transpose settings and audition the segment as it will play in the JET game.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-IE>Note</span></b><span lang=EN-IE>: the audition attributes (mute flags, repeat and transpose) are <i style='mso-bidi-font-style:normal'>not</i> stored in the JET content file (.jet) but rather are defined by the game or application itself. In programming language, these settings correspond directly with the API calls to the JET engine. By including them here, the JET content author can simulate how the segment will respond to the applications API commands during game play.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1031" type="#_x0000_t75" style='width:414.75pt;height:221.25pt'> <v:imagedata src="JET_Creator_User_Manual_files/image013.png" o:title="JET Segment Window"/> </v:shape><![endif]--><![if !vml]><img border=0 width=553 height=295 src="JET_Creator_User_Manual_files/image014.jpg" v:shapes="_x0000_i1031"><![endif]></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>The segment parameters do the following:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:1.0in;text-indent:-1.0in'><span lang=EN-IE>Segment Name<span style='mso-tab-count:2'>������������ </span>- Sets the name of the segment</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>MIDI File<span style='mso-tab-count:1'>���������������������� </span>- The name and location of the <st1:place w:st="on">MIDI</st1:place> file from which the segment is derived. The button to the immediate right will bring up a browser for locating a midi file on the hard drive.</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>DLS File<span style='mso-tab-count:1'>���������������������� </span>- The name and location of the DLS2 file, if any, that the <st1:place w:st="on">MIDI</st1:place> file uses for that segment.</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Starting M/B/T<span style='mso-tab-count:1'>�������������� </span>- Starting measure, beat and tick of the segment</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Ending M/B/T<span style='mso-tab-count:1'>��������������� </span>- Ending measure, beat and tick of the segment</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Quantize<span style='mso-tab-count:1'>���������������������� </span>- Quantize value for quantizing the current segment during playback</span></p> <p class=MsoNormal style='margin-left:1.0in;text-indent:-1.0in'><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:1.0in;text-indent:-1.0in'><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:1.0in;text-indent:-1.0in'><span lang=EN-IE>The audition fields are as follows:</span></p> <p class=MsoNormal style='margin-left:1.0in;text-indent:-1.0in'><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Track Mutes<span style='mso-tab-count:1'>����������������� </span>- Shows the MIDI <b style='mso-bidi-font-weight:normal'>tracks</b> (not channels) in the <st1:place w:st="on">MIDI</st1:place> file. Clicking on a track�s checkbox will mute that track. </span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Channel<span style='mso-tab-count:1'>����������������������� </span>- Displays the <st1:place w:st="on">MIDI</st1:place> channel assigned to each track</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Name<span style='mso-tab-count:1'>��������������������������� </span>- Displays the track name meta event (if present) for each track</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Repeat<span style='mso-tab-count:1'>������������������������� </span>- Indicates the number of times a segment should repeat during playback</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Transpose<span style='mso-tab-count:1'>�������������������� </span>- Indicates the transposition in semi-tones or half-steps a segment should transpose during playback</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>To the right of the Audition window are a few additional buttons. These do as follows:</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>OK<span style='mso-tab-count:1'>������������������������������ </span>- Selecting OK confirms all segment settings and closes the segment window</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Cancel<span style='mso-tab-count:1'>������������������������� </span>- Selecting Cancel cancels any changes and closes the segment window</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Replicate<span style='mso-tab-count:1'>��������������������� </span>- Displays the Replicate Segment window for entering multiple segments at once. See below.</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Play/Stop Segment<span style='mso-tab-count:1'>������ </span>- Starts or Stops playback of the segment using the segment attributes assigned. </span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Play/Stop MIDI File<span style='mso-tab-count:1'>������ </span>- Starts or Stops playback of the <st1:place w:st="on">MIDI</st1:place> file which the segment is assigned to. </span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Pause/Resume<span style='mso-tab-count:1'>������������� </span>- Pauses or Resumes playback.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h2><a name="_Toc203298102"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.2<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Event Window</span></a></h2> <p class=MsoNormal><span lang=EN-IE>The event window is where a given segment�s event attributes are assigned and auditioned, as shown in the picture below. To add an event to a segment, the author must first select the segment which will contain the event, then select the Add button. This will bring up the Event window.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1032" type="#_x0000_t75" style='width:415.5pt;height:220.5pt'> <v:imagedata src="JET_Creator_User_Manual_files/image015.png" o:title="JET Event Window"/> </v:shape><![endif]--><![if !vml]><img border=0 width=554 height=294 src="JET_Creator_User_Manual_files/image016.jpg" v:shapes="_x0000_i1032"><![endif]></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>There are two main sections to the event window. The segment section on the left side of the event window is for display only. It shows what the segment attributes are for the given segment. The Event section, on the right side, is where events can be assigned. The following parameters are available:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:112.5pt;text-indent:-112.5pt'><span lang=EN-IE>Event Name<span style='mso-tab-count:1'>������������������� </span>- Assigns a name to an event</span></p> <p class=MsoNormal style='margin-left:112.5pt;text-indent:-112.5pt'><span lang=EN-IE>Event Type<span style='mso-tab-count:1'>�������������������� </span>- Selects which type of event to assign.</span></p> <p class=MsoNormal style='margin-left:112.5pt;text-indent:-112.5pt'><span lang=EN-IE>Starting M/B/T<span style='mso-tab-count:1'>��������������� </span>- Sets the starting measure, beat, and tick for the event</span></p> <p class=MsoNormal style='margin-left:112.5pt;text-indent:-112.5pt'><span lang=EN-IE>Ending M/B/T<span style='mso-tab-count:1'>���������������� </span>- Sets the ending measure, beat, and tick for the event, if applicable</span></p> <p class=MsoNormal style='margin-left:112.5pt;text-indent:-112.5pt'><span lang=EN-IE>Track<span style='mso-tab-count:1'>����������������������������� </span>- Sets which track in the given segment the event will apply to</span></p> <p class=MsoNormal style='margin-left:112.5pt;text-indent:-112.5pt'><span lang=EN-IE>Channel<span style='mso-tab-count:1'>������������������������� </span>- Sets which <st1:place w:st="on">MIDI</st1:place> channel the event will apply to. The MIDI channel should match the <st1:place w:st="on">MIDI</st1:place> channel of the track</span></p> <p class=MsoNormal style='margin-left:112.5pt;text-indent:-112.5pt'><span lang=EN-IE>Event ID<span style='mso-tab-count:1'>������������������������ </span>- Sets the event ID for the event. Multiple events can be assigned to the same segment and therefore the Event ID is used to identify them</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>To the right of the Audition window are a few additional buttons. These do as follows:</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>OK<span style='mso-tab-count:1'>������������������������������ </span>- Selecting OK confirms all event settings and closes the event window</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Cancel<span style='mso-tab-count:1'>������������������������� </span>- Selecting Cancel cancels any changes and closes the event window</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Replicate<span style='mso-tab-count:1'>��������������������� </span>- Displays the Replicate Event window for entering multiple events at once. See below.</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Play/Stop<span style='mso-tab-count:1'>�������������������� </span>- Starts or Stops playback of the segment using the segment attributes assigned. While the segment is playing, events can be triggered and auditioned.</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Trigger<span style='mso-tab-count:1'>������������������������� </span>- Triggers the event assigned. This replicates the API command that the JET game will use to trigger the event, therefore giving the content author a method for auditioning the behaviour of the event.</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Mute/UnMute<span style='mso-tab-count:1'>���������������� </span>- Mute/UnMute will mute or unmute the track that the event is assigned to</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Pause/Resume<span style='mso-tab-count:1'>������������� </span>- Pauses or Resumes playback.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>To audition the behaviour of an event, you can select the Play button. This will initiate playback. The trigger button will send the trigger event when pressed. This is equivalent to selecting the green trigger event in the timeline. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Note: Trigger events are meant to unmute a single track of a segment when triggered, then mute that track at the end of the trigger segment. Therefore you should make sure the mute flag is set to mute the track that a trigger event will be unmuting when receiving a trigger event. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Please read Section 7 �Under The Hood� below for details on how trigger events work and behave. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h2><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.3<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Replicate Windows</span></h2> <p class=MsoNormal><span lang=EN-IE>Often in creating JET files, you�ll need to create tens or even hundreds of events. You may also need to move events. The Replicate and Move windows allow for this. There are two Replicate windows for creating multiple segments or events. They look like the following:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1033" type="#_x0000_t75" style='width:296.25pt;height:314.25pt'> <v:imagedata src="JET_Creator_User_Manual_files/image017.png" o:title="JET Replicate Segment Window"/> </v:shape><![endif]--><![if !vml]><img border=0 width=395 height=419 src="JET_Creator_User_Manual_files/image018.jpg" v:shapes="_x0000_i1033"><![endif]></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Replicate Segment Window</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1034" type="#_x0000_t75" style='width:298.5pt;height:318.75pt'> <v:imagedata src="JET_Creator_User_Manual_files/image019.png" o:title="JET Replicate Event Window"/> </v:shape><![endif]--><![if !vml]><img border=0 width=398 height=425 src="JET_Creator_User_Manual_files/image020.jpg" v:shapes="_x0000_i1034"><![endif]></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Replicate Event Window</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Both Replicate windows function the same. After creating an initial segment or event, you can select the Replicate button. The parameters are as follows:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Name Prefix<span style='mso-tab-count:1'>����������������� </span>- Sets the prefix for the name of each segment or event created</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Starting M/B/T<span style='mso-tab-count:1'>�������������� </span>- Sets the starting time for the first segment or event</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Increment M/B/T<span style='mso-tab-count:1'>����������� </span>- Sets the time between segments or events created. </span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Number<span style='mso-tab-count:1'>������������������������ </span>- Sets the number of segments or events you wish to create. If the number overflows the length of the <st1:place w:st="on">MIDI</st1:place> file (for segments) or segment (for events), those objects will not be created.</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Preview<span style='mso-tab-count:1'>������������������������ </span>- Preview allows you to examine the objects created before saying OK to insert them.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h2><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.4<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Move Windows</span></h2> <p class=MsoNormal><span lang=EN-IE>The Move function acts similarly to the Replicate function in that it allows you to edit multiple segments or events at one time, in this case move them in time. Like Replicate, there are two Move windows, one for Segments and one for Events. The windows look like the following:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1035" type="#_x0000_t75" style='width:300pt;height:318pt'> <v:imagedata src="JET_Creator_User_Manual_files/image021.png" o:title="JET Move Window"/> </v:shape><![endif]--><![if !vml]><img border=0 width=400 height=424 src="JET_Creator_User_Manual_files/image022.jpg" v:shapes="_x0000_i1035"><![endif]></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Move Event Window</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>To use Move, first select the segments or events you wish to move in time, then click the Move button. The parameters are as follows:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Starting M/B/T<span style='mso-tab-count:1'>�������������� </span>- Sets the starting time for the first segment or event</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Increment M/B/T<span style='mso-tab-count:1'>����������� </span>- Sets the time in M/B/T you wish to move the objects by. </span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Preview<span style='mso-tab-count:1'>������������������������ </span>- Preview allows you to examine the objects created before saying OK to move them.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h2><a name="_Toc203298103"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.5<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Audition Window</span></a></h2> <p class=MsoNormal><span lang=EN-IE>Clicking the Audition button in the main window of the JET Creator application will open the Audition window. This is where the content author or application programmer can simulate the interactive playback as it may occur in the mobile application or game itself.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1036" type="#_x0000_t75" style='width:415.5pt;height:277.5pt'> <v:imagedata src="JET_Creator_User_Manual_files/image023.png" o:title="JET Audition Window"/> </v:shape><![endif]--><![if !vml]><img border=0 width=554 height=370 src="JET_Creator_User_Manual_files/image024.jpg" v:shapes="_x0000_i1036"><![endif]></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>JET Audition Window</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>There are four main sections to the audition window. The left most section displays the available segments and their length in seconds. The middle section displays a running list of what segments are queued for playback and what their playback status is. The far right section displays the mute flags for the currently playing segment. The timeline section at the bottom is the same as in the main window. It displays the currently playing segment as well as a visual display of any event triggers associated with that segment. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>The Audition window allows you to queue up any segment in any order for playback. To do this simply select the segment you wish to cue and hit Queue. That segment will appear in the queue window and start playing (if it is the first segment). Subsequently you can select any other segment or segments and cue them up for playback. As the segments complete playback, the next segment in the queue will begin playing. As is the other windows of JET Creator, you can mute, unmute, trigger event clips, etc. in realtime as each segment is playing back.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Specifically the buttons behave as follows:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Queue<span style='mso-tab-count:1'>�������������������������� </span>- loads the selected segment into the queue and starts playback</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Cancel and Queue<span style='mso-tab-count:1'>�������� </span>- cancels the currently playing segment before queueing the selected segment for playback</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Cancel Current<span style='mso-tab-count:1'>�������������� </span>- cancels the currently playing segment in the queue and begins playback of the next segment</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Stop<span style='mso-tab-count:1'>���������������������������� </span>- stops playback of all queued segments</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Mute All<span style='mso-tab-count:1'>����������������������� </span>- mutes all tracks in the current segment</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Mute None<span style='mso-tab-count:1'>������������������� </span>- unmutes all tracks in the current segment</span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Original Mutes<span style='mso-tab-count:1'>�������������� </span>- sets the original mute flags for the current segment</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>The combination of these playback options allows an author or application programmer to audition any behaviour an interactive music application may encounter. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h2><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.6<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>JET Creator Menus </span></h2> <p class=MsoNormal><span lang=EN-IE>The JET Creator menus provide access to many of the parameters in the main window plus a few additional parameters.</span></p> <h3><a name="_Toc203298095"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.6.1<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>File Menu</span></a></h3> <p class=MsoNormal><span lang=EN-IE>The File Menu contains the following elements:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>New<span style='mso-tab-count:3'>����������������������������� </span>- Creates a new JET Creator file (.jtc)</span></p> <p class=MsoNormal><span lang=EN-IE>Open<span style='mso-tab-count:3'>��������������������������� </span>- Opens an existing JET Creator file</span></p> <p class=MsoNormal><span lang=EN-IE>Save<span style='mso-tab-count:3'>���������������������������� </span>- Saves the currently opened JET Creator file</span></p> <p class=MsoNormal><span lang=EN-IE>Save As<span style='mso-tab-count:2'>����������������������� </span>- Saves the currently opened JET Creator file to a new file</span></p> <p class=MsoNormal><span lang=EN-IE>Import Project<span style='mso-tab-count: 2'>�������������� </span>- Imports a JET Creator archive (.zip)</span></p> <p class=MsoNormal><span lang=EN-IE>Export Project<span style='mso-tab-count: 2'>�������������� </span>- Exports a JET Creator archive (.zip)</span></p> <p class=MsoNormal><span lang=EN-IE>Exit<span style='mso-tab-count:3'>����������������������������� </span>- Exits the application</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h3><a name="_Toc203298096"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.6.2<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Edit Menu</span></a></h3> <p class=MsoNormal><span lang=EN-IE>The Edit Menu contains the following elements:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Undo<span style='mso-tab-count:3'>��������������������������� </span>- Undo will undo the last edit made</span></p> <p class=MsoNormal><span lang=EN-IE>Redo<span style='mso-tab-count:3'>��������������������������� </span>- Redo will redo the last undo</span></p> <p class=MsoNormal><span lang=EN-IE>Cut<span style='mso-tab-count:3'>������������������������������ </span>- Copy selected parameter into clipboard and Delete selection</span></p> <p class=MsoNormal><span lang=EN-IE>Copy<span style='mso-tab-count:3'>��������������������������� </span>- Copy selected parameter into clipboard and keep selection</span></p> <p class=MsoNormal><span lang=EN-IE>Paste<span style='mso-tab-count:3'>��������������������������� </span>- Paste selected parameter</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h3><a name="_Toc203298097"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.6.3<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>JET</span></a></h3> <p class=MsoNormal><span lang=EN-IE>The Edit Menu contains the following elements:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal style='margin-left:1.5in;text-indent:-1.5in'><span lang=EN-IE>Properties<span style='mso-tab-count:1'>�������������������� </span>- Brings up the JET Creator priorities window. This window allows you to set the following conditions for a given JET file:</span></p> <p class=MsoNormal><span lang=EN-IE>Copyright Info<span style='mso-tab-count: 2'>�������������� </span>- Contains copyright info to be inserted into JET file</span></p> <p class=MsoNormal><span lang=EN-IE>Chase Controllers<span style='mso-tab-count: 1'>��������� </span>- Option to chase controllers (on/off). This should usually be ON.</span></p> <p class=MsoNormal><span lang=EN-IE>Delete Empty Tracks<span style='mso-tab-count: 1'>���� </span>- Deletes any empty <st1:place w:st="on">MIDI</st1:place> tracks</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h3><a name="_Toc203298098"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.6.4<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Segments</span></a></h3> <p class=MsoNormal><span lang=EN-IE>The Segments Menu contains the following elements:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Add Segment<span style='mso-tab-count:2'>��������������� </span>- Brings up the Segment window</span></p> <p class=MsoNormal><span lang=EN-IE>Update Segment<span style='mso-tab-count: 1'>���������� </span>- Updates segment attributes</span></p> <p class=MsoNormal><span lang=EN-IE>Delete Segment<span style='mso-tab-count: 2'>����������������������� </span>- Deletes the current segment from the Segment List</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h3><a name="_Toc203298099"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.6.5<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Help</span></a></h3> <p class=MsoNormal><span lang=EN-IE>The Help Menu will contain at least the following elements:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>JET Creator Help<span style='mso-tab-count: 1'>���������� </span>- will launch PDF help document or go to on-line help</span></p> <p class=MsoNormal><span lang=EN-IE>About<span style='mso-tab-count:3'>�������������������������� </span>- JET Creator version number, SONiVOX info</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h1><a name="_Toc203298104"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>6<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Trigger Events Explained</span></a></h1> <p class=MsoNormal><span lang=EN-IE>Breaking a <st1:place w:st="on">MIDI</st1:place> file into individual (non-linear) segments and queueing up those segments for playback in a game based on events within the game is one way JET music files are interactive. Trigger events are an additional method for interactive playback. Both would be used together in an interactive game or application.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Trigger events allow for the following:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <ol style='margin-top:0in' start=1 type=1> <li class=MsoNormal style='mso-list:l11 level1 lfo12;tab-stops:list .5in'><span lang=EN-IE>Tracks <i style='mso-bidi-font-style:normal'>within</i> a <st1:place w:st="on">MIDI</st1:place> segment can be turned on or off based on game events. For example the composer could author two drum tracks, one fast and one slow. If the action in a game is fast, the fast drum track could play. If the action in the game is slow, the slow drum track can play.</span></li> <li class=MsoNormal style='mso-list:l11 level1 lfo12;tab-stops:list .5in'><span lang=EN-IE>User actions can be compared to trigger events which are pre-inserted into a music file at musically �correct� places. Based on the results, scoring or other game actions can take place. </span></li> <li class=MsoNormal style='mso-list:l11 level1 lfo12;tab-stops:list .5in'><span lang=EN-IE>Musical transitions between levels or action sequences can be synchronized to be musically seemless.</span></li> </ol> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Under the hood, JET uses standard MIDI CC events to accomplish these actions and to synchronize audio. The controllers used by JET are among those not defined for specific use by the <st1:place w:st="on">MIDI</st1:place> specification. The specific controller definitions are as follows:</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><span style='mso-tab-count:1'>����������� </span>Controllers 80-83<span style='mso-tab-count:1'>���������� </span>Reserved for use by application</span></p> <p class=MsoNormal><span lang=EN-IE><span style='mso-tab-count:1'>����������� </span>Controller 102<span style='mso-tab-count:2'>��������������� </span>JET event marker</span></p> <p class=MsoNormal><span lang=EN-IE><span style='mso-tab-count:1'>����������� </span>Controller 103<span style='mso-tab-count:2'>��������������� </span>JET clip marker</span></p> <p class=MsoNormal><span lang=EN-IE><span style='mso-tab-count:1'>����������� </span>Controllers 104-119<span style='mso-tab-count:1'>������� </span>Reserved for future use</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h2><a name="_Toc203298105"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>6.1<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>JET Clip Marker (CC103)</span></a></h2> <p class=MsoNormal><span lang=EN-IE>Controller 103 is reserved for marking clips in a <st1:place w:st="on">MIDI</st1:place> track that can be triggered by the JET_TriggerClip API call. The clip ID is encoded in the low 6 bits of the controller value. Bit 6 is set to one to indicate the start of a clip, and set to zero to indicate the end of a clip.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>For example, to identify a clip with a clip ID of 1, the author inserts a <st1:place w:st="on">MIDI</st1:place> controller event with controller=103 and value=65 at the start of the clip and another event with controller=103 and value=1 at the end of the clip. When the JET_TriggerClip() function is called with a clip ID of 1, the track will be un-muted when the controller value 65 is encountered and muted again when the controller value 1 is encountered.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1037" type="#_x0000_t75" style='width:369pt;height:275.25pt' o:ole=""> <v:imagedata src="JET_Creator_User_Manual_files/image034.emz" o:title=""/> </v:shape><![endif]--><![if !vml]><img border=0 width=492 height=367 src="JET_Creator_User_Manual_files/image026.gif" v:shapes="_x0000_i1037"><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Visio.Drawing.11" ShapeID="_x0000_i1037" DrawAspect="Content" ObjectID="_1298963412"> </o:OLEObject> </xml><![endif]--></span></p> <p class=MsoCaption><span lang=EN-IE>Figure <span style='mso-field-code:" SEQ Figure \\* ARABIC "'><span style='mso-no-proof:yes'>5</span></span>: Synchronized Clip</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>In the figure above, if the JET_TriggerClip() function is called prior to the first controller event, Track 3 will be un-muted when the first controller event occurs, the first clip will play, and the track will be muted when the second controller event occurs. If the JET_TriggerClip() function is called after the first controller event has occurred, Track 3 will be un-muted when the third controller event occurs, the second clip will play, and the track will be muted again when the fourth controller event occurs.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-IE>Note:</span></b><span lang=EN-IE> Normally, the track containing the clip is muted by the application when the segment is initially queued by the call to JET_QueueSegment(). If it is not muted, the clip will always play until Jet_TriggerClip() has been called with the clip ID.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <h2><a name="_Toc203298106"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>6.2<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>JET Event Marker (CC102)</span></a></h2> <p class=MsoNormal><span lang=EN-IE>Controller 102 is reserved for marking events in the <st1:place w:st="on">MIDI</st1:place> streams that are specific to JET functionality. Currently, the only defined value is 0, which marks the end of a segment for timing purposes. </span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>Normally, JET starts playback of the next segment (or repeats the current segment) when the <st1:place w:st="on">MIDI</st1:place> end-of-track meta-event is encountered. Some <st1:place w:st="on">MIDI</st1:place> authoring tools make it difficult to place the end-of-track marker accurately, resulting in synchronization problems when segments are joined together.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>To avoid this problem, the author can place a JET end-of-segment marker (controller=102, value=0) at the point where the segment is to be looped. When the end-of-segment marker is encountered, the next segment will be triggered, or if the current segment is looped, playback will resume at the start of the segment.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE>The end-of-segment marker can also be used to allow for completion of a musical figure beyond the end of measure that marks the start of the next segment. For example, the content author might create a 4-bar segment with a drum fill that ends on beat 1 of the 5<sup>th</sup> bar � a bar beyond the natural end of the segment. By placing an end-of-segment marker at the end of the 4<sup>th</sup> bar, the next segment will be triggered, but the drum fill will continue in parallel with the next segment providing musical continuity.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> <p class=MsoNormal><span lang=EN-IE><!--[if gte vml 1]><v:shape id="_x0000_i1038" type="#_x0000_t75" style='width:350.25pt;height:138.75pt' o:ole=""> <v:imagedata src="JET_Creator_User_Manual_files/image035.emz" o:title=""/> </v:shape><![endif]--><![if !vml]><img border=0 width=467 height=185 src="JET_Creator_User_Manual_files/image028.gif" v:shapes="_x0000_i1038"><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Visio.Drawing.11" ShapeID="_x0000_i1038" DrawAspect="Content" ObjectID="_1298963413"> </o:OLEObject> </xml><![endif]--></span></p> <p class=MsoCaption><span lang=EN-IE>Figure <span style='mso-field-code:" SEQ Figure \\* ARABIC "'><span style='mso-no-proof:yes'>6</span></span>: End-of-segment Marker</span></p> <h2><a name="_Toc203298107"><![if !supportLists]><span lang=EN-IE style='mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>6.3<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span lang=EN-IE>Application Controllers (CC80-83)</span></a></h2> <p class=MsoNormal><span lang=EN-IE>The application may use controllers in this range for its own purposes. When a controller in this range is encountered, the event is entered into an event queue that can be queried by the application. Some possible uses include synchronizing video events with audio and marking a point in a <st1:place w:st="on">MIDI</st1:place> segment to queue up the next segment. The range of controllers monitored by the application can be modified by the application during initialization.</span></p> <p class=MsoNormal><span lang=EN-IE><o:p> </o:p></span></p> </div> </body> </html>
Html程序
|
3033行
|
123.2 KB
原始内容
高亮显示
复制内容
×
已收藏
收藏成功,您可以在我收藏的代码页面中查看,其地址为:
https://www.androidos.net.cn/my/collect/code
。
登录后可以享受更多权益
您还没有登录,登录后您可以:
收藏Android系统代码
收藏喜欢的文章
多个平台共享账号
去登录
首次使用?从这里
注册