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> |