<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="_c74_vig.xsl" type="text/xsl"?>
<vignette name="About Packages" package="Max" rankfactor="3">
  <h1>About Packages</h1>
  <p>
    <i>Packages</i>
    are a convenient means of bundling objects, media, patchers, and resources for distribution.
  </p>
  <p>A package is simply a folder adhering to a prescribed structure and placed in the 'packages' folder.  Folders adhering to this structure can be accessed by Max to integrate seamlessly at launch time.</p>
  <p>To install a package, simply copy it to your 'packages' folder.
    To uninstall a package, simply remove it from your 'packages' folder.</p>
  <p>There are two packages folders you may use.
    One is the 'Max 8/Packages' in your Documents (Mac) or My Documents (Windows) folder.
    The other (system wide) location is the 'Max 8/Packages' in your /Users/Shared (Mac) or C:\ProgramData (Windows) folder.</p>
  <h2>Creating A Package</h2>
  <p>
    You may create your own packages, either for your own use or for distribution to others.  The folders (in
    <b>boldface</b>
    ) and files (in
    <b>
      <i>bold italics</i>
    </b>
    ) comprising a package may optionally include the following (items in folders marked with a star will automatically be included in the searchpath):
    <pre>
      <table class="dense">
        <tr>
          <td width="220px">
            <b>* clippings</b>
          </td>
          <td>Patchers to list in the "Paste From..." contextual menu when patching</td>
        </tr>
        <tr>
          <td>
            <b>* code</b>
          </td>
          <td>Gen patchers</td>
        </tr>
        <tr>
          <td>
            <b>collections</b>
          </td>
          <td>Collections to list in the File Browser that are associated with the package</td>
        </tr>
        <tr>
          <td>
            <b>default-definitions</b>
          </td>
          <td>Definition info for Object Defaults support in UI externals</td>
        </tr>
        <tr>
          <td>
            <b>default-settings</b>
          </td>
          <td>Saved color schemes for Object Defaults</td>
        </tr>
        <tr>
          <td>
            <b>* devices</b>
          </td>
          <td>Max for Live devices (AMXDs)</td>
        </tr>
        <tr>
          <td>
            <b>* docs</b>
          </td>
          <td>Reference pages and Vignettes to be accessible from the Documentation Window</td>
        </tr>
        <tr>
          <td>
            <b>* examples</b>
          </td>
          <td>Example patchers and supporting material</td>
        </tr>
        <tr>
          <td>
            <b>* extensions</b>
          </td>
          <td>Special external objects loaded on Max launch</td>
        </tr>
        <tr>
          <td>
            <b>* externals</b>
          </td>
          <td>External objects</td>
        </tr>
        <tr>
          <td>
            <b>* extras</b>
          </td>
          <td>Patchers to be listed in the "Extras" menu</td>
        </tr>
        <tr>
          <td>
            <b>* fonts</b>
          </td>
          <td>Custom fonts available to Max when the Package is present</td>
        </tr>
        <tr>
          <td>
            <b>* help</b>
          </td>
          <td>Help patchers and supporting material</td>
        </tr>
        <tr>
          <td>
            <b>
              <i>icon.png</i>
            </b>
          </td>
          <td>
            A PNG graphic file (500x500px) for display in the
            <link type="vignette" module="core" name="package_manager">Package Manager</link>
          </td>
        </tr>
        <tr>
          <td>
            <b>init</b>
          </td>
          <td>Text files interpreted by Max at launch</td>
        </tr>
        <tr>
          <td>
            <b>interfaces</b>
          </td>
          <td>Supporting files for objects to display in the top patcher toolbar and other Max integration.</td>
        </tr>
        <tr>
          <td>
            <b>* java-classes</b>
          </td>
          <td>Compiled Java classes for use in mxj/mxj~. Place .jar folders in a 'lib' subfolder.</td>
        </tr>
        <tr>
          <td>
            <b>java-doc</b>
          </td>
          <td>Documentation for Java classes</td>
        </tr>
        <tr>
          <td>
            <b>* javascript</b>
          </td>
          <td>Javascript files to be used by js</td>
        </tr>
        <tr>
          <td>
            <b>* jsextensions</b>
          </td>
          <td>Extensions to JS implemented as special externals or js files</td>
        </tr>
        <tr>
          <td>
            <b>* jsui</b>
          </td>
          <td>Javascript files to be used by jsui, and listed in the contextual menu for jsui</td>
        </tr>
        <tr>
          <td>
            <span>
              <b>
                <i>license.txt</i>
              </b>
              or
              <b>
                <i>license.md</i>
              </b>
            </span>
          </td>
          <td>
            Terms of use / redistribution of your package (plain text or
            <a href="https://daringfireball.net/projects/markdown/">Markdown</a>
            permitted)
          </td>
        </tr>
        <tr>
          <td>
            <b>* media</b>
          </td>
          <td>Media files to be included in the searchpath</td>
        </tr>
        <tr>
          <td>
            <b>* misc</b>
          </td>
          <td>Anything</td>
        </tr>
        <tr>
          <td>
            <b>* patchers</b>
          </td>
          <td>Patchers or abstractions to be included in the searchpath</td>
        </tr>
        <tr>
          <td>
            <b>* projects</b>
          </td>
          <td>Projects to be included in the searchpath. Note that only the project file will be added to the searchpath.</td>
        </tr>
        <tr>
          <td>
            <b>* object-icons</b>
          </td>
          <td>An SVG-format object icon for a particular Max object (named &lt;objectname&gt;.svg), used in the Object Browser</td>
        </tr>
        <tr>
          <td>
            <b>object-prototypes</b>
          </td>
          <td>Object Prototypes will be listed in the context menu for a selected UI object</td>
        </tr>
        <tr>
          <td>
            <span>
              <b>
                <i>readme.txt</i>
              </b>
              or
              <b>
                <i>readme.md</i>
              </b>
            </span>
          </td>
          <td>
            Information about your package (plain text or
            <a href="https://daringfireball.net/projects/markdown/">Markdown</a>
            permitted)
          </td>
        </tr>
        <tr>
          <td>
            <b>snippets</b>
          </td>
          <td>Snippets associated with this package</td>
        </tr>
        <tr>
          <td>
            <b>source</b>
          </td>
          <td>Source code for external objects, ignored by Max</td>
        </tr>
        <tr>
          <td>
            <b>support</b>
          </td>
          <td>Special location for DLL or dylib dependencies of external objects. Added to the DLL search path on Windows.</td>
        </tr>
        <tr>
          <td>
            <b>templates</b>
          </td>
          <td>Patchers to be listed in the "File &gt; New From Template" menu</td>
        </tr>
      </table>
    </pre>
  </p>
  <bluebox>Many packages provide a <m>package-info.json</m> file at the root of the folder, providing additional information for the <link type="vignette" module="core" name="package_manager">Package Manager</link>. <link type="vignette" module="core" name="package_info_json">Additional information about this file can be found here.</link></bluebox>
</vignette>