Template:PT3 MAX MAC: 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_MAC"> | <div class="phd-slide-deck" data-deck="PT3_MAX_MAC"> | ||
<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>MacOS with Max | <h2>MacOS 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_MAC/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 | <p>● <span>[https://www.phidgets.com/docs/OS_-_macOS Phidgets Drivers for macOS]</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/macos/Phidget22MaxMSP.zip Phidget Max library]</span></p> | ||
</div> | </div> | ||
Line 39: | Line 39: | ||
<p>After unpacking the download, navigate to the <b>externals</b> folder and copy it to your clipboard:</p> | <p>After unpacking the download, navigate to the <b>externals</b> folder and copy it to your clipboard:</p> | ||
<div class="phd-lazy-image" data-src="https:// | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_MAC/Max_mac_externals.png"></div> | ||
</div> | </div> | ||
Line 45: | Line 45: | ||
<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_MAC/-x150/50/Max_mac_filepreferences.png"></div> | ||
<p>You will see something similar to this:</p> | <p>You will see something similar to this:</p> | ||
<div class="phd-lazy-image" data-src="https:// | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_MAC/-x120/50/Max_mac_filepreferences_locations.png"></div> | ||
</div> | </div> | ||
Line 64: | Line 62: | ||
</p> | </p> | ||
<div class="phd-lazy-image" data-src="https:// | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_MAC/Max_mac_folder.png"></div> | ||
</div> | </div> | ||
Line 71: | Line 69: | ||
<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_MAC/-x325/50/Max_mac_examples.png"></div> | ||
</div> | </div> | ||
Line 81: | Line 78: | ||
<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_MAC/-x270/50/Max_run.png"></div> | ||
<p> | <p> | ||
Line 99: | Line 96: | ||
</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 113: | Line 110: | ||
<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_MAC/-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 120: | Line 117: | ||
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 131: | Line 128: | ||
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_MAC/MaxMSP_GetSerial.png"></div> | ||
<p> | <p> | ||
Line 142: | Line 139: | ||
</p> | </p> | ||
<div class="phd-lazy-image" data-src="https:// | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_MAC/MaxMSP_GetVoltage.png"></div> | ||
</div> | </div> | ||
Line 164: | Line 161: | ||
<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 170: | Line 167: | ||
<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 193: | Line 190: | ||
<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_MAC/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_MAC/MaxMSP_GetVoltage.png"></div> | ||
</div> | </div> | ||
Line 216: | Line 213: | ||
<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 235: | Line 232: | ||
<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_MAC/MaxMSP_VoltageInput_specific.png"></div> | ||
<p>Some other examples:</p> | <p>Some other examples:</p> | ||
Line 264: | Line 261: | ||
<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_MAC/MaxMSP_Enable_Server_Discovery.png"></div> | ||
<p> | <p> | ||
Line 270: | Line 267: | ||
</p> | </p> | ||
<div class="phd-lazy-image" data-src="https:// | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_MAC/MaxMSP_Remote.png"></div> | ||
</div> | </div> | ||
Line 279: | Line 276: | ||
<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 302: | Line 299: | ||
</p> | </p> | ||
<div class="phd-lazy-image" data-src="https:// | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_MAC/-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_MAC/-x65/50/MaxMSP_Start_Stop.png"></div> | ||
</div> | </div> | ||
Line 320: | Line 317: | ||
</p> | </p> | ||
<div class="phd-lazy-image" data-src="https:// | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_MAC/-x100/50/MaxMSP_Routing.png"></div> | ||
<p> | <p> | ||
Line 327: | Line 324: | ||
</p> | </p> | ||
<div class="phd-lazy-image" data-src="https:// | <div class="phd-lazy-image" data-src="https://www.phidgets.com/decks/PT3_MAX_MAC/-x80/50/MaxMSP_Error_Event.png"></div> | ||
</div> | </div> | ||
Line 336: | Line 333: | ||
<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 366: | Line 363: | ||
<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> |