Package Max

gamepad

Report gamepad controller events

Description

Tracks and outputs the button, joystick, trigger, and sensor events from all connected gamepad controllers. Send a device control messages for haptic feedback rumble events and device led color with the senddevice message. The gamepad object is a lightweight wrapper for the Simple DirectMedia Layer 2.0 Library's gamepad implementation.

Discussion

As gamepad controllers generate events they are output in the form event_type value . Possible events are:
axis_left_x
axis_left_y
axis_right_x
axis_right_y
axis_left_trigger
axis_right_trigger
button_a
button_b
button_x
button_y
button_dpad_up
button_dpad_down
button_dpad_left
button_dpad_right
button_left_shoulder
button_right_shoulder
button_left_stick
button_right_stick
button_start
button_back
button_guide
button_misc1
button_touchpad
sensor_gyro
sensor_accel
touchpad_up
touchpad_down
touchpad_motion

Arguments

None.

Attributes

interval[float]

The global polling interval sets the rate at which the incoming gamepad controller event queue is being serviced. The default is 5 milliseconds. Changing this attribute will change it for all gamepad controller objects in all patches.

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

senddevice

The word senddevice followed by a number indicating the logical device ID will send the following message on to that device. If the device index is negative, the following message is sent to all devices. Possible messages are led , rumble , and rumbletriggers .

The led message is followed by red , green and blue values in the range 0-1. The rumble message is followed by low high and duration values, where low represents the low frequency rumble amount in the range 0-1, high represents the high frequency rumble amount in the range 0-1, and duration is in milliseconds. The rumbletriggers message is followed by left right and duration values, where left represents the left trigger rumble amount in the range 0-1, right represents toe right trigger rumble amount in the range 0-1, and duration is in milliseconds.
Arguments:
  • Device ID [int]
  • Message [symbol]
  • Value [list]

sendinstance

The sendinstance message has the same functionality of the senddevice message, but referenced using the unique gamepad instance id rather than the logical device ID.

Arguments:
  • Instance ID [int]
  • Message [symbol]
  • Value [list]

See Also

Name Description
hi Human Interface device input (legacy)
key Report keyboard presses
keyup Report key information on release