dp.kinect
dp.kinect is a plugin for the Cycling '74 Max development environment to use the Microsoft Kinect v1 (XBox 360) with a Windows computer.
Download, trial, license
Get a download, trial, or license from the store.System requirements
- Cycling74 Max requirements
- Microsoft Kinect v1 requirements
- Windows 8.1 or newer. Windows 7 is unsupported yet may work.
⚠️ Kinect v1 for Windows drivers are incompatible with Windows 10 Memory Integrity. Workaround solution at https://github.com/diablodale/dp.kinect/issues/54.
Setup
- Install Cycling’74 Max version 6.1.9 or newer (64-bit or 32-bit)
- Download dp.kinect from https://hidale.com/shop/dp-kinect/
- Decompress all the files in this download into an empty folder
- Install Microsoft Kinect v1 Runtime or Microsoft Kinect v1 SDK.
- 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).
- 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.
- Register dp.kinect
Optional features
- Face tracking: Download face tracking data and decompress all the files in this download into the same install folder as step 3 of setup
- Speech recognition: Install Microsoft Speech Platform v11 Runtime. English-US is already installed. More languages are available with Kinect for Windows 2.0 Language Packs.
Register
- 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.
- Open the help file or patch included within the dp.kinect download.
- 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. - 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. - Click the register button and use the dialog box that appears to select your dp.kinect registration key (.dpreg file)
- You should see a successful registration. If not, please look at the Max console for any warnings or errors.
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.