Scripting Messages
bringtofront:
Bring an object to the front of the layer it's currently in.
Syntax: script bringtofront <variable-name>
Example: script bringtofront visigoth
If visigoth is in the foreground layer, this message moves it to the front of the foreground layer. Otherwise it moves it to the front of the background layer.
class:
Assigns a variable name to the first instance of a specified class with matching arguments
Syntax: script class <variable-name> <class-name> <arguments (optional)>
Example: script class rubadub + 4
Assigns the name rubadub to the first instance found of + with argument 4 in the patcher.
connect:
Connects two objects together with a patch cord
Syntax: script connect <outlet-variable-name> <outlet-index> <inlet-variable-name> <inlet-index>
Example: script connect fooboo 0 bobo 0
Connects the left outlet of the object with the variable name fooboo to the left inlet of the object with the variable name bobo.
Note: Adding the keyword hidden (e.g., script hidden connect fooboo 0 bobo 0) creates hidden connections.
connectcolor:
Modify the color of an existing patch cord, setting it to one of Max's 16 standard colors.
Syntax: script connectcolor <outlet-variable-name> <outlet-index> <inlet-variable-name> <inlet-index> <color>
Example: script connectcolor rover 0 dover 2 12
Changes the color of the connection between the left outlet of the rover object with the 3rd inlet of the dover object to the color stored at index 12.
delete:
Deletes an object in a patcher window.
Syntax: script delete <variable-name>
Example: script delete footog
Deletes the object associated with the variable name footog.
disconnect:
Disconnect two objects connected by a patch cord
Syntax: script disconnect <outlet-variable-name> <outlet-index> <inlet-variable-name> <inlet-index>
Example: script disconnect fooboo 0 bobo 0
This message undoes the connection between the left outlet of fooboo and the left inlet of bobo.
hidden:
Specifies that an object (or connection) will be hidden when created.
Example: script hidden new footog toggle 101 93 15 0
Creates a hidden object associated with the variable name footog. The hidden keyword can also be used when specifying connections between objects.
hide:
Hide a visible object.
Syntax: script hide <variable-name>
Example: script hide visigoth
Hides the object named visigoth
ignoreclick:
Set an object not to respond to mouse clicks.
Syntax: script ignoreclick <variable-name>
Example: script ignoreclick visigoth
Makes the object named visigoth ignore mouse clicks.
move:
Move an object to an absolute position relative to the current top-left corner of a patcher window. Note that the 0,0 point is underneath the icon bar.
Syntax: script move <variable-name> <top> <left>
Example: script move molly 0 100
Moves the object named molly to the left edge of the window, 100 pixels down from the top.
new:
Creates a new object in a patcher window and gives it a name.
Syntax: script new <variable-name> <creation message>
Example: script new footog toggle 101 93 15 0
Creates a new toggle object 15 pixels square at 101 93 and assign it to the variable footog.
The format of the arguments (after the class name) to the script new message are based on the legacy Max file format.
newdefault:
Creates a new named object with default properties in a patcher window.
Syntax: script newdefault <variable-name> <creation message>
Example: script newdefault thatgraph 10 10 filtergraph~
Creates a new filtergraph~ object at its default size at 10 10 and assign it to the variable thatgraph.
Example: script newdefault buffy 200 100 pack foo bar bap
Creates a new pack object instantiated with the arguments foo bar bap at 200 100 and assign it to the variable buffy.
nth:
Assigns a variable name to the nth instance of a specified class
Syntax: script nth <variable-name> <class-name> <index>
Example: script nth yoyo toggle 1
Assigns the name yoyo to the first toggle found in the patcher.
The order of objects in a patcher is determined by the front-to-back ordering. Objects in back of the patcher that draw behind other objects are first in the search order.
offset:
Move an object a distance from its current position. Positive distances move the object down and to the right, negative distances move it up and to the left.
Syntax: script offset <variable-name> <delta-x> <delta-y>
Example: script offset molly 30 -40
Moves the object named molly 30 pixels to the right and 40 pixels up.
offsetfrom:
Move an object a set distance from another object.
Syntax: script offsetfrom <variable-name-to-move> <target-variable-name> <top-left-flag> <delta-x> <delta-y>
The top-left-flag is 1 if the distance is relative to the top-left corner of the object, and 0 if it is relative to the bottom-right corner.
Example: script offsetfrom molly panther 1 -100 -120
Moves the object named molly 100 pixels to the left of the left side of the object named panther, and 120 pixels above the top of the object named panther.
respondtoclick:
Set an object to respond to mouse clicks.
Syntax: script respondtoclick <variable-name>
Example: script respondtoclick visigoth
Makes the object named visigoth respond to mouse clicks.
selected:
Assigns a variable name to the first object found that is selected
Syntax: script selected <variable-name>
Example: script selected impo
Assigns the name impo to the first object found that is selected. Obviously this script message only works when the patcher is unlocked, since no object can be selected in a locked patcher.
For all three connection messages described below, inlets and outlets are specified by index, with 0 denoting the leftmost inlet or outlet. The first variable specified is the object whose outlet you are connecting or disconnecting and the second variable is the one whose inlet you are connecting. Messages can then flow from outlet to inlet.
send:
Send a message to an object. This message is the same as using a message box with a semicolon or a send object, but you use the object variable name feature of scripting to specify the object that will receive the message -- using script send to communicate with a named receive object does not work. The message can only be sent to an object within the patcher as the thispatcher object receiving the script send message.
Syntax: script send <variable-name> <message>
Example: script send foobert 666
The object with the variable name foobert receives an int 666 message. If foobert were a number box, its displayed value would change to 666.
sendbox:
Send a message to an object box. This message is identical to send except that it sends the message to an object's box rather than the object referred to by the box. There is currently only one object, bpatcher, in which the object and box are different objects. The box is a bpatcher, and the object is a patcher. What can you tell a bpatcher to do? One example is the boxborder message, which is equivalent to sending the border message to a thispatcher object in a patcher inside a bpatcher. Peek inside the Inspector patch for bpatcher for other ideas.
Syntax: script sendbox <variable-name> <message>
Example: script sendbox bpbp boxborder 0
If bpbp names a bpatcher object, this script message would tell it not to draw its border.
sendtoback:
Move an object to the back of the layer it's currently in.
Syntax: script sendtoback <variable-name>
Example: script sendtoback visigoth
If visigoth is in the foreground layer, this message moves it to the back of the foreground layer. Otherwise it moves it to the back of the background layer. Note that objects that are "in the back" are the first objects to be found by the variable assignment messages nth and class.
show:
Show a hidden object.
Syntax: script show <variable-name>
Example: script show visigoth
Makes the object named visigoth visible.
size:
Change an object's size. There are some objects that have restrictions on their size, but they generally do not protect themselves against sizes they don't expect, so use this message with some caution. For instance the toggle object expects to be a square. It may not draw properly if it's made into a rectangle.
Syntax: script size <variable-name> <width> <height>
Example: script size togipoo 30 30
Changes the object named togipoo to be 30 by 30 pixels.
Sending Messages to Objects