Package Max

pattrforward

Send any message to a named object

Description

Routes messages or selects new message routing destinations according to the messages it receives. You can also use the pattrforward object to route messages directly to a specific inlet of an object exposed by pattr or autopattr objects, and also send messages directly to a subpatcher, abstraction or bpatcher.

Discussion

The pattrforward object uses an object's Scripting Name (its varname attribute, set using an object's Inspector) when specifying the path to objects you want to send messages to. For example, if you want to send a message to an object named my_dial in a subpatcher, and you've also set the Scripting Name of the subpatcher to my_controls , then you would send the message send my_controls::my_dial to the pattrforward object to set the destination for future messages.

Arguments

target[symbol]
optional

A symbol argument may be optionally used to specify the target object.

Attributes

send[symbol]

The word send , followed by the patcher name of any object in the patcher hierarchy, sets the target object. Names can refer to objects in patchers other than the one in which the pattrforward object resides. A double-colon syntax ('::') is used to separate levels of the patcher hierarchy. For example, some_subpatcher::some_object or parent::some_other_object would be valid target object names.

Common Box Attributes

Below is a list of attributes shared by all objects. If you want to change one of these attributes for an object based on the object box, you need to place the word sendbox in front of the attribute name, or use the object's Inspector.

annotation[symbol]

Sets the text that will be displayed in the Clue window when the user moves the mouse over the object.

background[int]: 0

Adds or removes the object from the patcher's background layer. background 1 adds the object to the background layer, background 0 removes it. Objects in the background layer are shown behind all objects in the default foreground layer.

color[4 floats]

Sets the color for the object box outline.

fontface[int]

Sets the type style used by the object. The options are:

plain
bold
italic
bold italic Possible values:

0 = 'regular'
1 = 'bold'
2 = 'italic'
3 = 'bold italic'

fontname[symbol]

Sets the object's font.

fontsize[float]

Sets the object's font size (in points). Possible values:

'8'
'9'
'10'
'11'
'12'
'13'
'14'
'16'
'18'
'20'
'24'
'30'
'36'
'48'
'64'
'72'

hidden[int]: 0

Toggles whether an object is hidden when the patcher is locked.

hint[symbol]

Sets the text that will be displayed in as a pop-up hint when the user moves the mouse over the object in a locked patcher.

ignoreclick[int]: 0

Toggles whether an object ignores mouse clicks in a locked patcher.

jspainterfile[symbol]

You can override the default appearance of a user interface object by assigning a JavaScript file with code for painting the object. The file must be in the search path.

patching_rect[4 floats]: 0. 0. 100. 0.

Sets the position and size of the object in the patcher window.

position[2 floats]
write-only

Sets the object's x and y position in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its size unchanged.

presentation[int]: 0

Sets whether an object belongs to the patcher's presentation.

presentation_rect[4 floats]: 0. 0. 0. 0.

Sets the x and y position and width and height of the object in the patcher's presentation, leaving its patching position unchanged.

rect[4 floats]
write-only

Sets the x and y position and width and height of the object in both patching and presentation modes (if the object belongs to its patcher's presentation).

size[2 floats]
write-only

Sets the object's width and height in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its position unchanged.

textcolor[4 floats]

Sets the color for the object's text in RGBA format.

textjustification[int]

Sets the justification for the object's text. Possible values:

0 = 'left'
1 = 'center'
2 = 'right'

varname[symbol]

Sets the patcher's scripting name, which can be used to address the object by name in pattr, scripting messages to thispatcher, and the js object.

Messages

bang

bang is passed to the target object.

int

An int is passed to the target object.

Arguments:
  • input [int]

float

A float is passed to the target object.

Arguments:
  • input [float]

list

A list is passed to the target object.

Arguments:
  • input [list]

anything

Incoming messages to the pattrforward object are analyzed. If the first element of the message matches the symbols in0, in1 ... inN, the pattrforward object will forward all remaining arguments to a specific inlet of the target object. in0 refers to the leftmost inlet (this is the default behavior of the pattrforward object), in1 refers to the inlet to the 2nd inlet from the left, and so on.

If the target object is a subpatcher, abstraction or bpatcher, the special element inx can be used to send messages directly to the patcher object (in essence, in order to communicate with a virtual thispatcher object associated with the patch).

Arguments:
  • input [list]

(mouse)

Double-clicking on the pattrforward object reveals the current target object in its parent patcher.

Output

anything

A message received in the inlet of pattrforward is sent to the named object anywhere in the patcher hierarchy.

See Also

Name Description
autopattr Expose multiple objects to the pattr system
forward Send messages to specified receive objects
pattr Provide an alias with a named data wrapper
pattrhub Access all pattr objects in a patcher
pattrmarker Provide pattr communication between patchers
pattrstorage Save and recall pattr presets
receive Receive messages without patch cords
send Send messages without patch cords
thispatcher Send messages to a patcher