dp.kinect exposes the functionality of the Microsoft Kinect for Windows v1 sensor to the Max patching environment. Below you will find the system requirements, setup guide, and reference documentation.
Strongly recommended sources of additional learning and documentation include
v1.06 added forward compat
@face2dpoints=2, added mm output for face translation
v1.05 fixed registration issue that occurred on some active directory computers
v1.04 added some verbose debug output
v1.03 fixed face 2d points output and crash on close bug
v1.02 YUV more compatible with Max's studio swing (previously output full swing)
v1.00 improved YUV alignment
bang Causes the Kinect to be queried for any updated data with optional waiting/blocking. After this, matrices and message-based data are output from the outlets as configured using the attributes.
open Initializes and opens a connection to a specific Kinect. If only one Kinect is attached to the computer and no
@idkinect has been set, then dp.kinect defaults to the only attached Kinect. Success/failure is reported at dumpout.
read Is supported primarily for compatibility with jit.openni. No XML file is read. Instead, the message is accepted and a result generated to allow for easier migration. Otherwise, its functionality is the same as
close Closes the connection to the currently open Kinect
getusbidlist Returns a list of symbols representing unique USB ID's for all Kinects attached to the computer on dumpout. This ID is not specific to a Kinect. Instead, it is specific to the USB connection to a Kinect. If you move a Kinect to a different USB port, you will get a different ID for that Kinect. If you swap identical Kinects on the same USB port, you will likely get the same ID. Be aware of this when you are planning and testing complex installations with multiple Kinects. Use one of these symbols to set the
@idkinect attribute of a given dp.kinect. Below is an example when two Kinects are connected to the computer.
getusbidlist <-- sent to the inlet usbidlist USB\VID_0409&PID_005A\5&332C30EE&0&1 USB\VID_0409&PID_005A\6&355ABBF1&0&2 <-- received from the dumpout outlet
pixeltoskel Takes a series of three numbers representing a depth pixel (x column, y row, z depth value) from a depthmap and transforms it into a real world (skeleton space) x, y, z coordinates. The behavior of this message is affected by the values of
@flipx. An example:
pixeltoskel 110 85 2.4 <-- sent to the inlet pixeltoskel -0.42012 0.294084 2.4 <-- received from the outlet
resetcolor Resets all the color camera image settings to their defaults.
This object also supports the normal compliment of Max/Jitter messages to set/query attributes, get a summary via dumpout, etc. Its dumpout output will follow standard conventions through use of standard Max/Jitter APIs.
Some messages are automatically generated and output simultaneously from the dumpout outlets of all dp.kinects created in Max.
newkinect Indicates that a new Kinect was plugged into the computer. It will be followed by two symbols. The first symbol is the USB ID for the new Kinect plugged in. The second symbol is a pseudo-unique identifier for the Kinect hardware and should not be used. This is an example message received after a Kinect was plugged into a computer:
newkinect USB\VID_0409&PID_005A\5&332C30EE&0&1 USB\VID_045E&PID_02AE\A00363A06509053A
lostkinect Indicates that a Kinect was unplugged, lost, or unable to fully initialize. It will be followed by a symbol representing the USB ID for the Kinect in question. You will often have an error message in your Max window providing further details. This is an example message received after a Kinect was unplugged from a computer.
Attributes are now documented on their own page.
Depthmap, color image, infrared image, playermap, and point cloud data (all matrix-based) are now documented on their own page.
User position, skeleton joints, face tracking, sound information, speech recognition, floor identification, and all other message-based data of this nature are now documented on their own page.