Skip to main content Link Search Menu Expand Document (external link)

dp.kinect

Microsoft Kinect v1 (XBox 360)

dp.kinect is a plugin for the Cycling '74 Max development environment to use the Microsoft Kinect v1 (XBox 360) with a Windows computer.

🏃 Get started

Download, trial, license

Get a download, trial, or license from the store.

System requirements

⚠️ Kinect v1 for Windows drivers are incompatible with Windows 10 Memory Integrity. Workaround solution at https://github.com/diablodale/dp.kinect/issues/54.

Setup

  1. Install Cycling’74 Max version 6.1.9 or newer (64-bit or 32-bit)
  2. Download dp.kinect from https://hidale.com/shop/dp-kinect/
  3. Decompress all the files in this download into an empty folder
  4. Install Microsoft Kinect v1 Runtime or Microsoft Kinect v1 SDK.
  5. Install Microsoft Visual C++ Redistributable for VS 2012 for 64-bit and/or 32-bit architecture to match your installed Cycling’74 Max architecture(s).
  6. Plug your Kinect sensor into a USB 2 or USB 3 port. Do not plug any other USB devices into the same USB controller because this Kinect model requires all the bandwidth of a USB controller.
  7. Register dp.kinect

Optional features

Register

  1. Evaluate dp.kinect with a 14-day no-cost trial. When the plugin meets your needs, please visit https://hidale.com/shop/dp-kinect/ to purchase a license from the store.
  2. Open the help file or patch included within the dp.kinect download.
  3. Optional: Start a 14-day no-cost trial by using both the registration name “trial” during step 4, and registration key <your install folder>/trial.dpreg during step 5.
  4. Type your registration name in the field beside the register button. You received your registration name in an email from the online store. 🧐 Your registration name is usually not your email address.
  5. Click the register button and use the dialog box that appears to select your dp.kinect registration key (.dpreg file)
  6. You should see a successful registration. If not, please look at the Max console for any warnings or errors.

dp.kinect registration

Dumpout messages

Some messages are automatically generated and output simultaneously from the dumpout outlets of all dp.kinect instances in Max.

newkinect
New Kinect sensor 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 pseudo-unique for the Kinect and should be ignored. This is an example message received after a Kinect was plugged into a computer:
newkinect USB\VID_0409&PID_005A\5&332C30EE&0&1
lostkinect
Kinect sensor 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:
lostkinect USB\VID_0409&PID_005A\5&332C30EE&0&2

Collective/app

You can create standalone applications and collectives with dp.kinect. In the Build Collective/Application dialog, click “Include file…” and choose the dp.kinectsupport_xx.dll for your 32 or 64-bit application. When using face features, you will need to additionally include the matching FaceTrackData.dll. When you create a standalone application, it may be possible to copy these two files into the support subfolder instead of including them with the Build dialog box.

Please remember that your license for dp.kinect is only for one computer. You or your customers need additional licenses for each computer on which your standalone or collective runs.

Compatibility

dp.kinect output is almost compatible with jit.openni yet faster, more stable, and more accurate.

  • Joint orientation data is different than jit.openni
  • jit.openni attributes often have new dp.kinect attribute names

⚠️ Installing both the official Microsoft Kinect v1 Runtime/SDK and the SensorKinect driver for OpenNI v1.x is not supported at the same time.

Known issues

  • Kinect v1 hardware does not support simultaneous color and IR streams; the hardware is bandwidth limited
  • 3D coordinates for face tracking are not rotated by gravity or elevation of the Kinect.
  • When you create a dp.kinect object in Max and receive an error message similar to “Missing the Microsoft Visual C++ 2012 Runtime”, then download and install Microsoft Visual C++ Redistributable for VS 2012 for 64-bit and/or 32-bit architecture to match your installed Cycling’74 Max architecture(s).

📖 Learn

Use search 🔍 at the top or all below to find tutorials, features, attributes, methods, and more.

Tutorials

Skeleton Joint Changes Color
Learn how to get the real-world XYZ position of your left hand relative ...
View Sensor Depthmap
Learn how to view depth data (depthmap) as a monochrome image. A depthma...

Attributes

@accel
Acceleration XYZ vector usually pointing towards gravity (where 1 unit =...
@align
Align data to the perspective of the depth or color camera. This affects...
@autoexposure
Automatic color exposure. Deprecated.
@autogain
Automatic gain control for audio.
@autowhitebalance
Automatic white balance. Deprecated.
@backlight
Backlight compensation for the color camera.
@brightness
Brightness adjustment for color data. The value is normalized from 0.0 t...
@colorfocal
Color camera single nominal focal length in pixels. Read-only.
@colorfov
Color camera field-of-view (degrees) in horizontal, vertical, diagonal d...
@colormap
Color image output in choice of pixel format on the second outlet.
@colormapres
Resolution of color image that was enabled with @colormap
@colortype
Color component in 8-bit unsigned integer or 32-bit normalized float. Th...
@contrast
Contrast adjustment for color data. The range is 0.5 to 2.0.
@depthfocal
Depth camera single nominal focal length in pixels. Read-only.
@depthfov
Depth camera field-of-view (degrees) in horizontal, vertical, diagonal d...
@depthmap
Depth output on the first outlet. This combined with resolution @depthma...
@depthmapres
Resolution of depth image that was enabled with @depthmap.
@depthonlyplayers
Filter source by tracked players. Deprecated. Use @onlyplayers.
@depthrange
Enable alternate or extended depth ranges.
@distmeter
Distance output in meters 1 or millimeters 0. This affects all distance ...
@echocancel
Echo cancellation for audio and speech. Enable this when both capturing ...
@elevation
Elevation angle (degrees) of sensor relative to the horizon; a simple X-...
@exposure
Color exposure time in units of 1/10000 second. Deprecated.
@face2dpoints
Face 2D key points in color camera uv coordinates output on the fifth ou...
@face3dmodel
Face 3D model output as a mesh in local face coordinate-space. The mesh ...
@facerate
Face tracking sample rate (milliseconds). This should rarely be changed ...
@faces
Face tracking calculation and messages with 2D bounding box, rotation, t...
@facesuau
Face shape unit (SU) and animation unit (AU) output on the fifth outlet....
@facesuausmooth
Smoothing for face animation units (AU) with the same five parameter Hol...
@flipx
Flip or negate X-axis values of output (matrix images, joint positions, ...
@floor
Floor plane as x, y, z coordinates for a point on the plane and i, j, k ...
@flooronbang
Floor plane message output on each bang. More efficient than querying th...
@frameinterval
Color camera frame interval in units of 1/10000 second. The range is 0 t...
@gain
Gain multiplier for color data. The range is 1.0 to 16.0.
@gamma
Gamma transfer function for encoding luminance data in the color image. ...
@grammarfile
Path to the speech recognition grammar file. It is a GRXML file as defin...
@gravrot
Rotation relative to gravity message; angle (degrees) around a vector ou...
@gravsmooth
Smoothing factor applied to gravity and acceleration where 0.0 is no smo...
@hardware
Identify/select sensor hardware model. It is read-only on some plugins. ...
@hue
Hue adjustment for the color image. The range is –22.0 to 22.0.
@idkinect
Bind specific sensor to the plugin. Deprecated. Use @idsensor.
@imageuntwist
Rotation (degrees) to align depth, color, etc. images to gravity. Top pi...
@iremitter
Disable the infrared emitter on the sensor.
@irgamma
Apply gamma correction to infrared image enabled with @irmap. Use to bri...
@irmap
Infrared (IR) image output on the third outlet. This, resolution @irmapr...
@irmapres
Resolution of infrared image enabled with @irmap. Read-only. Controlled ...
@irtype
Infrared (IR) values in 8-bit unsigned integer, long signed integer, or ...
@nearmode
Enable near range skeleton tracking. Not supported by all models. Often ...
@onlyplayers
Filter source by tracked players. Filtered data is zero-like. Possible v...
@orientformat
Skeleton joint orientation as quaternion, 4x4 matrix, hierarchical, or a...
@playermap
Player indices for each pixel output on the fourth outlet. Pixels are a ...
@pointcloud
Format of pointcloud output as three or four floating point values.
@posconfidence
Filter skeleton body, joints, and face by their confidence. This confide...
@powerfreq
Reduce video banding and flicker related to regional power frequency.
@register
Register a license or get the status of registration.
@rotatemethod
Rotate data to compensate for gravity. This compensation is combined wit...
@saturation
Saturation adjustment for the color image. Adjusts the colorfulness of a...
@seated
Enable seated skeleton tracking; only tracks upper body. Often used with...
@sensorrate
Sensor sample rate (milliseconds) for depth and color cameras. This shou...
@sharpness
Sharpness adjustment for the color image. This adjustment changes the pe...
@silenceprecise
Milliseconds of silence needed before completing a recognition that is n...
@silencevague
Milliseconds of silence needed before completing a recognition that is v...
@skeleton
Skeleton, joint, and user tracking output on the fifth outlet. Output fo...
@skeletonformat
Message format for skeleton joints, users, faces, etc. Native Max messag...
@smoothing
Smoothing for skeleton joint values with either a simplified one paramet...
@soundinfo
Real-time sound loudness, position angle, and confidence float values ar...
@soundinfooutput
Real-time sound loudness, position, and confidence message output on the...
@speech
Speech recognition and speech interference output on the fifth outlet. I...
@speechadapt
Constantly adapt speech recognition model to adjust for various speaker(...
@speechconf
Filter speech based on recognition confidence. Speech with the chosen co...
@speechlocale
Speech recognition language and territory. US English en-us language sup...
@sync
Enable synchronization of data to be within 16.6 milliseconds (1/60th se...
@translate
Offset the origin of sensor data to this XYZ value. Deprecated.
@type
Depthmap value in signed integer, 32-bit float, or 64-bit float. This ty...
@unique
Unique-only matrices and messages; bang may not output when no changes. ...
@verbose
Verbose warnings and errors output to the Max Window for troubleshooting...
@whitebalance
White balance in degrees Kelvin temperature to adjust for lighting condi...

Methods

bang
Query the plugin for updated data. Then, output matrices and messages fr...
close
Close and teardown the currently open connection to a sensor.
getusbidlist
Output supported sensor identifiers on the dumpout outlet. These identif...
open
Open and initialize the connection to a sensor. When @idsensor has not b...
pixeltoskel
Transform depth pixel UVZ to real-world XYZ coordinates. Deprecated.
resetcolor
Reset all color camera controls and settings to default values.
unregister
Unregister and remove a license.