1.5.0 SDK and Developer Toolkit Known Issues

Kinect for Windows 1.5

Here is a list of known issues with this release.

Software Development Kit (SDK)

SkeletonFrame.TrackingMode property is reserved for future use

The value returned by the SkeletonFrame.TrackingMode property may change in future releases. An application should not use this property. The SkeletonFrame.TrackingMode property of the SkeletonFrame class always returns SkeletonTrackingMode.Default, even when the skeletal tracking (ST) engine is in Seated mode.

To determine that ST is in Seated mode, check the SkeletonStream.TrackingMode property or confirm that the TrackingStatus property of one of the lower 10 joints of a tracked skeleton, such as the HipCenter joint, returns NotTracked.

Do Not Use INuiSensor::NuiUniqueID or KinectSensor.UniqueKinectId

Do not use the KinectSensor.UniqueKinectId property (or the corresponding INuiSensor.NuiUniqueId method) because of inconsistent behavior between Xbox and Kinect for Windows sensors. Instead, use the KinectSensor.DeviceConnectionId property to identify the sensor based on the USB port it is plugged into.

From the Kinect for Windows SDK 1.0 Release

.NET

  • When StatusChanged events occur, ensure that you call kinectSensor.Start on the transition to KinectStatus.Connected. Call kinectSensor.Stop on all transitions away from KinectStatus.Connected. (Test using unplugging, unpowering, and machine sleep/hibernate.)
  • Calls to KinectSensor.Map* and DepthImageFrame.Map* after you have called kinectSensor.Stop (or a sensor has been removed while the application is running) may fail. Ensure that you protect against that case. Use a try/catch around all calls to those Map* APIs.

C++

  • If C++ code is executing NuiInitialize/NuiShutdown multiple times through the application’s lifetime, SetDeviceStatusCallback should be called once, before invoking those calls.

USB host controller compatibility

The Kinect for Windows drivers have encountered compatibility problems with certain USB host controllers when tested in specific computer configurations. Some examples of these controllers are the AMD Fusion A75 USB2.0 controller, certain NEC USB 2.0 controllers, the Etron USB 3.0 Extensible Host Controller, and the Renesas Electronics USB 3.0 Controller. On those controllers, you may encounter a problem, such as a low RGB frame rate, or a Not Ready status when plugging/unplugging a Kinect. If this happens to you, you may have to restart your app or reboot your computer. You can also try updating your USB controller drivers, or plugging your device into another USB 2.0 controller.

Number and date normalization in Kinect for Windows Speech Grammars

Kinect for Windows is now integrated with Microsoft Speech Platform 11, an upgrade from the Version 10.2 included in previous Beta versions. This version, in conjunction with the Kinect for Windows Speech Language Pack, provides superior speech recognition capabilities to Kinect for Windows.

This version comes without support for standard TN/ITN (numbers and dates normalization), requiring some changes to grammars built on top of previous Beta versions. Now you need to expand numbers and dates on your grammars. For example, use “Play song number five” in your grammars, instead of “Play song number 5”.

Microphone Array default gain setting is sub-optimal

The default gain applied to the sound recorded by the Kinect sensor’s Microphone array is higher than optimal and can affect speech recognition quality when users are speaking close to the Kinect sensor.

If you notice the Kinect audio signal clipping in your application, or experience the Speech Platform SDK reporting AudioSignalProblemOccurred events use TooLoud audio input, set the microphone gain level to 3 on a scale of 100.

To set the correct gain value:

  1. Open the Windows Control Panel, select Sound, then the Recording tab.
  2. Select Kinect Microphone Array and then press the Properties button. Select the Levels tab.
  3. Set the Microphone Array gain level to 3. (The default is 100.) Press OK and then OK.

Audio is not processed if skeleton stream is enabled after starting audio capture

Due to a bug, enabling or disabling the SkeletonStream will stop the AudioSource stream returned by the Kinect sensor.

The following sequence of instructions will stop the audio stream:

        kinectSensor.Start();
        kinectSensor.AudioSource.Start(); // --> this will create an audio stream
        kinectSensor.SkeletonStream.Enable(); // --> this will stop the audio stream as an undesired side effect
      

The workaround is to invert the order of the calls or to restart the AudioSource after changing SkeletonStream status.

        Workaround #1 (start audio after skeleton):
        kinectSensor.Start();
        kinectSensor.SkeletonStream.Enable();
        kinectSensor.AudioSource.Start();

        Workaround #2 (restart audio after skeleton):
        kinectSensor.Start();
        kinectSensor.AudioSource.Start(); // --> this will create an audio stream
        kinectSensor.SkeletonStream.Enable(); // --> this will stop the audio stream as an undesired side effect
        kinectSensor.AudioSource.Start(); // --> this will create another audio stream
      

Resetting the SkeletonStream engine status is an expensive call that should be made at application startup only, unless the app has specific needs that require turning Skeleton on and off.

Developer Toolkit

Kinect Studio

If the Kinect enabled application that you are recording turns Skeletal Tracking on or off while recording, recording stops.

With some video cards/drivers (we’ve seen with a few ATI Radeon HD 5XXX series cards), Kinect Studio may hang occasionally when stopping a recording.

To recover your recording: The recording should be found in the temporary file directory specified in Tools > Options. (Just rename it to have a .xed file extension.)

If this happens with your machine, we recommend verifying that you have the latest display driver installed. If the problem persists, try either of the following:

  • Closing all three viewer windows (Color Viewer, Depth Viewer, and 3D Viewer) while recording, OR
  • Disabling hardware acceleration (Direct2D) via your video card.

Playing files from network locations may cause some instability with Kinect Studio. We’ve detected this happening after recording and saving directly to a network location. Save or copy files locally before using them in Kinect Studio.

Other Issues

Installation of the DirectX SDK (June 2010) fails if installed after the Kinect for Windows SDK

There is a known issue with the Visual C++ 2010 Redistributable Package included in the DirectX SDK installer that causes this failure. You can find more information about this issue and the workaround at this location: Known Issue: DirectX SDK (June 2010) Setup and the S1023 error.

Building an application targeting .NET 4.5 is not supported

Kinect for Windows SDK 1.0 and 1.5 are fully functional with .NET Framework 4.0. However, Kinect for Windows SDK 1.0 and 1.5 are not fully supported with .NET framework 4.5. Specifically:

  • Running an application targeting .NET Framework 4.0 on a machine with .NET Framework 4.5 is supported.
  • Building an application targeting .NET Framework 4.5 is not supported.