<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="_c74_vig.xsl" type="text/xsl"?>
<vignette name="JavaScript Usage" package="Max">
  <metadatalist>
    <metadata name="author">Cycling '74</metadata>
    <metadata name="tag">scripting</metadata>
    <metadata name="tag">javascript</metadata>
    <metadata name="tag">control</metadata>
    <metadata name="tag">languages</metadata>
  </metadatalist>
  <h1>JavaScript Usage In Max</h1>
  <p>
    Max provides access to certain elements of the software through JavaScript. JavaScript is a language designed to control the software in which it is embedded, in this case, Max. Use JavaScript in Max with the js object to handle list processing, dictionary management, scripting patching tasks, manipulating Jitter objects. Make custom UI elements with the JSUI object. For Max For Live users, the LiveAPI object provides a means of communicating with the Live API functions from JavaScript.
  </p>
    <cr/>
     <h2>Example Patches</h2>
    File:
     <ul>
    <li><openfilelink filename="jsfiletester-example.maxpat">jsfiletester-example.maxpat</openfilelink></li>
    <li><openfilelink filename="jsfolderiter-example.maxpat">jsfolderiter-example.maxpat</openfilelink></li>
    </ul>
    Lists and Strings:
    <ul>
      <li><openfilelink filename="jsregexp-example.maxpat">jsregexp-example.maxpat</openfilelink></li>
      <li><openfilelink filename="jssort-example.maxpat">jssort-example.maxpat</openfilelink></li>
      <li><openfilelink filename="liststats-example.maxpat">liststats-example.maxpat</openfilelink></li>
      <li><openfilelink filename="strjoin-example.maxpat">strjoin-example.maxpat</openfilelink></li>
      <li><openfilelink filename="struplow-example.maxpat">struplow-example.maxpat</openfilelink></li>
      <li><openfilelink filename="urlescape-example.maxpat">urlescape-example.maxpat</openfilelink></li>
  </ul>
    Math:
    <ul>
      <li><openfilelink filename="dynexpr-example.maxpat">dynexpr-example.maxpat</openfilelink></li>
      <li><openfilelink filename="jsplus-example.maxpat">jsplus-example.maxpat</openfilelink></li>
      <li><openfilelink filename="primenumber-example.maxpat">primenumber-example.maxpat</openfilelink></li>
    </ul>
    Patcher Scripting:
    <ul>
      <li><openfilelink filename="globalvar-example.maxpat">globalvar-example.maxpat</openfilelink></li>
      <li><openfilelink filename="maxobjlistener-example.maxpat">maxobjlistener-example.maxpat</openfilelink></li>
      <li><openfilelink filename="paraminfo-example.maxpat">paraminfo-example.maxpat</openfilelink></li>
      <li><openfilelink filename="paramlistener-example.maxpat">paramlistener-example.maxpat</openfilelink></li>
      <li><openfilelink filename="patchdescribe-example.maxpat">patchdescribe-example.maxpat</openfilelink></li>
      <li><openfilelink filename="scriptnewdefault-example.maxpat">scriptnewdefault-example.maxpat</openfilelink></li>
      <li><openfilelink filename="scriptoscript-example.maxpat">scriptoscript-example.maxpat</openfilelink></li>
    </ul>
    Simulation:
    <ul>
      <li><openfilelink filename="boidroids-example.maxpat">boidroids-example.maxpat</openfilelink></li>
      <li><openfilelink filename="boidroids-example2.maxpat">boidroids-example2.maxpat</openfilelink></li>
      <li><openfilelink filename="springoid-example.maxpat">springoid-example.maxpat</openfilelink></li>
      <li><openfilelink filename="springoidgrid-example.maxpat">springoidgrid-example.maxpat</openfilelink></li>
      <li><openfilelink filename="springoidgrid3d-example.maxpat">springoidgrid3d-example.maxpat</openfilelink></li>
      <li><openfilelink filename="springoidgrid3d-example2.maxpat">springoidgrid3d-example2.maxpat</openfilelink></li>
    </ul>
    User Interfaces / JSUI:
    <ul>
      <li><openfilelink filename="jsui_3dballs-example.maxpat">jsui_3dballs-example.maxpat</openfilelink></li>
      <li><openfilelink filename="jsui_forceaspect-example.maxpat">jsui_forceaspect-example.maxpat</openfilelink></li>
      <li><openfilelink filename="jsui_imagestuff-example.maxpat">jsui_imagestuff-example.maxpat</openfilelink></li>
      <li><openfilelink filename="jsui_screentoworld-example.maxpat">jsui_screentoworld-example.maxpat</openfilelink></li>
      <li><openfilelink filename="jsui_spherepen-example.maxpat">jsui_spherepen-example.maxpat</openfilelink></li>
      <li><openfilelink filename="jsui_splinestuff-example.maxpat">jsui_splinestuff-example.maxpat</openfilelink></li>
      <li><openfilelink filename="swirlycursor-example.maxpat">swirlycursor-example.maxpat</openfilelink></li>
    </ul>
    Canvas Usage:
    <ul>
      <li><openfilelink filename="canvas-breakout.maxpat">canvas-breakout.maxpat</openfilelink></li>
      <li><openfilelink filename="canvas-examples.maxpat">canvas-examples.maxpat</openfilelink></li>
      <li><openfilelink filename="digitaldisplay.maxpat">digitaldisplay.maxpat</openfilelink></li>
    </ul>
    Mgraphics Usage:
    <ul>
      <li><openfilelink filename="jsplot.maxhelp">jsplot.maxhelp</openfilelink></li>
      <li><openfilelink filename="jszplane.maxhelp">jszplane.maxhelp</openfilelink></li>
      <li><openfilelink filename="mgraphics-connector.maxpat">mgraphics-connector.maxpat</openfilelink></li>
      <li><openfilelink filename="mgraphics-curvedfader.maxpat">mgraphics-curvedfader.maxpat</openfilelink></li>
      <li><openfilelink filename="mgraphics-demo.maxpat">mgraphics-demo.maxpat</openfilelink></li>
      <li><openfilelink filename="mgraphics-hittest.maxpat">mgraphics-hittest.maxpat</openfilelink></li>
      <li><openfilelink filename="mgraphics-yellowfade.maxpat">mgraphics-yellowfade.maxpat</openfilelink></li>
    </ul>
    <cr/>
  <seealsolist>
  	<seealso name="javascriptinmax" module="js" type="vignette" />
  	<seealso name="jsbasic" module="js" type="vignette" />
  	<seealso name="jsbuffer" module="js" type="vignette" />
  	<seealso name="jsdict" module="js" type="vignette" />
  	<seealso name="jsfileobject" module="js" type="vignette" />
  	<seealso name="jsfolderobject" module="js" type="vignette" />
  	<seealso name="jsglobal" module="js" type="vignette" />
  	<seealso name="jsglobalobject" module="js" type="vignette" />
  	<seealso name="jsimageobject" module="js" type="vignette" />
  	<seealso name="jsintro" module="js" type="vignette" />
  	<seealso name="jsliveapi" module="js" type="vignette" />
  	<seealso name="jsmaxobj" module="js" type="vignette" />
    <seealso name="jsmaxobjlistener" module="js" type="vignette" />
  	<seealso name="jsmaxobject" module="js" type="vignette" />
  	<seealso name="jsmgraphics" module="js" type="vignette" />
  	<seealso name="jspainter" module="js" type="vignette" />
    <seealso name="jsparamlistener" module="js" type="vignette" />
    <seealso name="jsparaminfoprovider" module="js" type="vignette" />
  	<seealso name="jspatcherobject" module="js" type="vignette" />
  	<seealso name="jspolybuffer" module="js" type="vignette" />
  	<seealso name="jsrequire" module="js" type="vignette" />
  	<seealso name="jssketchobject" module="js" type="vignette" />
  	<seealso name="jssnapshot" module="js" type="vignette" />
  	<seealso name="jssqlite" module="js" type="vignette" />
  	<seealso name="jssqliteobject" module="js" type="vignette" />
  	<seealso name="jssqlresultobject" module="js" type="vignette" />
  	<seealso name="jstaskobject" module="js" type="vignette" />
  	<seealso name="jsthreading" module="js" type="vignette" />
  	<seealso name="jsuiintro" module="js" type="vignette" />
  	<seealso name="jsuiobject" module="js" type="vignette" />
  	<seealso name="jswindobj" module="js" type="vignette" />
    <seealso name="jitterchapter45" module="jit" type="tutorial" />
    <seealso name="jitterchapter46" module="jit" type="tutorial" />
    <seealso name="jitterchapter47" module="jit" type="tutorial" />
    <seealso name="javascriptchapter01" module="max" type="tutorial" />
    <seealso name="javascriptchapter02" module="max" type="tutorial" />
    <seealso name="javascriptchapter03" module="max" type="tutorial" />
    <seealso name="javascriptchapter04" module="max" type="tutorial" />
    <seealso name="js"/>
    <seealso name="jstrigger"/>
    <seealso name="jsui"/>
  </seealsolist>
</vignette>
