Template:PT3 MAX WIN: Difference between revisions
From Phidgets Support
																
																								No edit summary  | 
				No edit summary  | 
				||
| Line 1: | Line 1: | ||
<div class="phd-slide-deck" data-deck="PT3_MAX_WIN">  | <div class="phd-slide-deck" data-deck="PT3_MAX_WIN">  | ||
<div class="phd-slide-deck-header"><h3>Language - Max  | <div class="phd-slide-deck-header"><h3>Language - Max</h3></div>  | ||
<div class="phd-slides">  | <div class="phd-slides">  | ||
<div class="phd-slide">  | <div class="phd-slide">  | ||
<h2>Windows with Max  | <h2>Windows with Max</h2>  | ||
<div class="phd-panels">  | <div class="phd-panels">  | ||
<div class="phd-panel phd-flex-column-align-center phd-flex-column-justify-middle">  | <div class="phd-panel phd-flex-column-align-center phd-flex-column-justify-middle">  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/200x-/50/max.jpg"></div>  | ||
</div>  | </div>  | ||
<div class="phd-panel phd-flex-column-align-left phd-flex-column-justify-top">  | <div class="phd-panel phd-flex-column-align-left phd-flex-column-justify-top">  | ||
<p>Welcome to using Phidgets with Max  | <p>Welcome to using Phidgets with Max! By using Max, you will have access to the complete Phidget22 API, including events.</p>  | ||
<p>Phidget22 supports Max  | <p>Phidget22 supports Max versions 6 and up.</p>  | ||
</div>  | </div>  | ||
</div>  | </div>  | ||
| Line 21: | Line 21: | ||
<p>First, make sure you have the following installed:</p>  | <p>First, make sure you have the following installed:</p>  | ||
<p>● Phidgets Drivers for Windows   | <p>● <span>[https://www.phidgets.com/docs/OS_-_Windows Phidgets Drivers for Windows]</span></p>  | ||
<p>● <span>[https://cycling74.com/downloads Max  | <p>● <span>[https://cycling74.com/downloads Max]</span></p>  | ||
</div>  | </div>  | ||
| Line 29: | Line 29: | ||
<h2>Use Our Examples</h2>  | <h2>Use Our Examples</h2>  | ||
<p>Next, download and unpack the Phidgets Max  | <p>Next, download and unpack the Phidgets Max library:</p>  | ||
<p>● <span>[https://  | <p>● <span>[https://www.phidgets.com/downloads/phidget22/libraries/windows/Phidget22MaxMSP.zip Phidget Max library]</span></p>  | ||
</div>  | </div>  | ||
| Line 40: | Line 40: | ||
<ul>  | <ul>  | ||
<li>For 32-bit Max  | <li>For 32-bit Max, copy the <b>x86 folder</b></li>  | ||
<li>For 64-bit Max  | <li>For 64-bit Max, copy the <b>x64 folder</b></li>  | ||
</ul>  | </ul>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/-x290/50/Max_externals.png"></div>  | ||
</div>  | </div>  | ||
| Line 50: | Line 50: | ||
<h2>Use Our Examples</h2>  | <h2>Use Our Examples</h2>  | ||
<p>  | <p>The folder you copied needs to be placed in a specific location for Max to reference it. Open Max and navigate to <b>Options -> File Preferences</b>.</p>  | ||
The folder you copied needs to be placed in a specific location for Max  | |||
</p>  | |||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/-x290/50/Max_filepreferences.png"></div>  | ||
</div>  | </div>  | ||
| Line 65: | Line 63: | ||
</p>  | </p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/Max_folder.png"></div>  | ||
</div>  | </div>  | ||
| Line 72: | Line 70: | ||
<p>  | <p>  | ||
The Phidget Max  | The Phidget Max library is now being referenced. Next, navigate to the <b>examples</b> folder located within the Phidget22MaxMSP folder you previously unpacked:  | ||
unpacked:  | |||
</p>  | </p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/-x325/50/Max_examples.png"></div>  | ||
</div>  | </div>  | ||
| Line 82: | Line 79: | ||
<h2>Use Our Examples</h2>  | <h2>Use Our Examples</h2>  | ||
<p>From here, select an example that will work with your Phidget and open it in Max  | <p>From here, select an example that will work with your Phidget and open it in Max. You can run the example by simply pressing the <b>start</b> button:</p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/-x270/50/Max_run.png"></div>  | ||
<p>  | <p>  | ||
| Line 100: | Line 97: | ||
</p>  | </p>  | ||
<p>Remember: your main reference for writing Max  | <p>Remember: your main reference for writing Max code will be:</p>  | ||
<p>● The <span>[https://www.phidgets.com/?view=api Phidget22 API]</span> Manual</p>  | <p>● The <span>[https://www.phidgets.com/?view=api Phidget22 API]</span> Manual</p>  | ||
<p>● The Max  | <p>● The Max <span>[https://www.phidgets.com/?view=code_samples&lang=MaxMSP examples]</span></p>  | ||
</div>  | </div>  | ||
| Line 114: | Line 111: | ||
<div class="phd-panels">  | <div class="phd-panels">  | ||
<div class="phd-panel phd-flex-column-align-center phd-flex-column-justify-top">  | <div class="phd-panel phd-flex-column-align-center phd-flex-column-justify-top">  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/-x300/50/MSP_Example.png"></div>  | ||
</div>  | </div>  | ||
<div class="phd-panel phd-flex-column-align-left phd-flex-column-justify-top">  | <div class="phd-panel phd-flex-column-align-left phd-flex-column-justify-top">  | ||
| Line 121: | Line 118: | ||
Input objects will either cause a property of the device to change or request for a property to be retrieved. Output objects return the retrieved information.  | Input objects will either cause a property of the device to change or request for a property to be retrieved. Output objects return the retrieved information.  | ||
</p>  | </p>  | ||
<p>All supported functions for Max  | <p>All supported functions for Max can be found in the <span>[https://www.phidgets.com/?view=api Phidget22 API]</span>.</p>  | ||
</div>  | </div>  | ||
</div>  | </div>  | ||
| Line 132: | Line 129: | ||
Try it for yourself! Click on the <b>getDeviceSerialNumber</b> message box to request the Phidget to retrieve the serial number of the device. You should see  | Try it for yourself! Click on the <b>getDeviceSerialNumber</b> message box to request the Phidget to retrieve the serial number of the device. You should see  | ||
the a message in the Max window denoting the serial number of your device. All devices support the getDeviceSerialNumber message, making it an easy way to  | the a message in the Max window denoting the serial number of your device. All devices support the getDeviceSerialNumber message, making it an easy way to  | ||
determine if the Phidget libraries are correctly set up, and whether the Max  | determine if the Phidget libraries are correctly set up, and whether the Max application is connected to your device.  | ||
</p>  | </p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/MaxMSP_GetSerial.png"></div>  | ||
<p>  | <p>  | ||
| Line 143: | Line 140: | ||
</p>  | </p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/MaxMSP_GetVoltage.png"></div>  | ||
</div>  | </div>  | ||
| Line 165: | Line 162: | ||
<p>  | <p>  | ||
Your best resource to program in   | Your best resource to program in Max will be our examples. If you aren't familiar with concepts in Phidget programming, you may find our  | ||
<span>[https://www.phidgets.com/docs/Phidget_Programming_Basics Phidget Programming Basics]</span> page helpful. It provides a very generic overview of what  | <span>[https://www.phidgets.com/docs/Phidget_Programming_Basics Phidget Programming Basics]</span> page helpful. It provides a very generic overview of what  | ||
traditional languages follow when using Phidgets. For Max users, conceptual details about particular actions (e.g. opening a Phidget) are explained there.  | traditional languages follow when using Phidgets. For Max users, conceptual details about particular actions (e.g. opening a Phidget) are explained there.  | ||
| Line 171: | Line 168: | ||
<p>  | <p>  | ||
Keep in mind when reading these general resources that the Max  | Keep in mind when reading these general resources that the Max libraries may not implement the full Phidgets API - some function calls and Phidget classes may  | ||
not be supported.  | |||
</p>  | </p>  | ||
| Line 194: | Line 191: | ||
<p>In the case of a Voltage Input, we name it <b>PhidgetVoltageInput</b>:</p>  | <p>In the case of a Voltage Input, we name it <b>PhidgetVoltageInput</b>:</p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/MaxMSP_VoltageInput_generic.png"></div>  | ||
<p>  | <p>  | ||
<b>Important:</b> a local connection will reserve the device until closed. This prevents any other instances from retrieving data from the Phidget, including  | <b>Important:</b> a local connection will reserve the device until closed. This prevents any other instances from retrieving data from the Phidget, including  | ||
other programs. Every Phidget object in Max will automatically try to connect to and reserve a Phidget for itself. As long as a   | other programs. Every Phidget object in Max will automatically try to connect to and reserve a Phidget for itself. As long as a Max Phidget object is running,  | ||
running, it will continuously try to connect to a Phidget, even trying to reconnect if it gets disconnected.  | it will continuously try to connect to a Phidget, even trying to reconnect if it gets disconnected.  | ||
</p>  | </p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/MaxMSP_GetVoltage.png"></div>  | ||
</div>  | </div>  | ||
| Line 217: | Line 214: | ||
<p>Specifiers can be added to the object in the format: <b>PhidgetExternal {Specifiers}</b>. These will be written in the form: <b>specifier=value</b></p>  | <p>Specifiers can be added to the object in the format: <b>PhidgetExternal {Specifiers}</b>. These will be written in the form: <b>specifier=value</b></p>  | ||
<p>The full list of specifiers that can be used to identify a Phidget in Max  | <p>The full list of specifiers that can be used to identify a Phidget in Max are as follows:</p>  | ||
<ul>  | <ul>  | ||
| Line 236: | Line 233: | ||
<p>For instance, to open a VoltageInput with serial number 349428, you would use:</p>  | <p>For instance, to open a VoltageInput with serial number 349428, you would use:</p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/MaxMSP_VoltageInput_specific.png"></div>  | ||
<p>Some other examples:</p>  | <p>Some other examples:</p>  | ||
| Line 265: | Line 262: | ||
<p>Next, in your patch you need a <b>PhidgetNet</b> object. To automatically find local networks, send it a message saying <b>enableServerDiscovery</b>.</p>  | <p>Next, in your patch you need a <b>PhidgetNet</b> object. To automatically find local networks, send it a message saying <b>enableServerDiscovery</b>.</p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/MaxMSP_Enable_Server_Discovery.png"></div>  | ||
<p>  | <p>  | ||
| Line 271: | Line 268: | ||
</p>  | </p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/MaxMSP_Remote.png"></div>  | ||
</div>  | </div>  | ||
| Line 280: | Line 277: | ||
<p>  | <p>  | ||
Although this is a required step in many of our other languages (and therefore you may be expecting this if coming from another Phidget language), in   | Although this is a required step in many of our other languages (and therefore you may be expecting this if coming from another Phidget language), in Max you do  | ||
not have to add a specific waitForAttachment block.  | |||
</p>  | </p>  | ||
<p>  | <p>  | ||
Keep in mind, however, that if your Phidget is not responding within your   | Keep in mind, however, that if your Phidget is not responding within your Max program, it may simply not be plugged in! Send a getAttached message to a Phidget  | ||
object at any time to see if it's attached.  | |||
</p>  | </p>  | ||
</div>  | </div>  | ||
| Line 303: | Line 300: | ||
</p>  | </p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/-x100/50/MaxMSP_get_and_set.png"></div>  | ||
<p>To sample at a fixed rate, use the start and stop messages to start and stop the data flow, respectively.</p>  | <p>To sample at a fixed rate, use the start and stop messages to start and stop the data flow, respectively.</p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/-x65/50/MaxMSP_Start_Stop.png"></div>  | ||
</div>  | </div>  | ||
| Line 321: | Line 318: | ||
</p>  | </p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/-x100/50/MaxMSP_Routing.png"></div>  | ||
<p>  | <p>  | ||
| Line 328: | Line 325: | ||
</p>  | </p>  | ||
<div class="phd-lazy-image" data-src="https://  | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_WIN/-x80/50/MaxMSP_Error_Event.png"></div>  | ||
</div>  | </div>  | ||
| Line 337: | Line 334: | ||
<p>  | <p>  | ||
Although this is a required step in many of our other languages (and therefore you may be expecting this if coming from another Phidget language), in   | Although this is a required step in many of our other languages (and therefore you may be expecting this if coming from another Phidget language), in Max you do  | ||
not have to add a specific close and delete block.  | |||
</p>  | </p>  | ||
| Line 367: | Line 364: | ||
<div class="phd-simple-button phd-to-slide-button" data-navigation-direction="next">»</div>  | <div class="phd-simple-button phd-to-slide-button" data-navigation-direction="next">»</div>  | ||
</div>  | </div>  | ||
<div hidden class="phd-hidden-breadcrumb-label" data-label="Max  | <div hidden class="phd-hidden-breadcrumb-label" data-label="Max"></div>  | ||
</div>  | </div>  | ||