void runtime_SkeletonFrameReady(object sender, BodyFrameArrivedEventArgs e)
        {
            bool receivedData = false;

            using (BodyFrame SFrame = e.FrameReference.AcquireFrame())
            {
                if (SFrame == null)
                {
                    // The image processing took too long. More than 2 frames behind.
                }
                else
                {
                    skeletons = new Body[SFrame.SkeletonArrayLength];
                    SFrame.CopySkeletonDataTo(skeletons);
                    receivedData = true;
                }
            }

            if (receivedData)
            {
                IEnumerable <Body> sel = (from s in skeletons
                                          where s.TrackingState == SkeletonTrackingState.Tracked
                                          select s);
                int num = 0;
                foreach (Body currentSkeleton in sel)
                {
                    if (currentSkeleton != null)
                    {
                        processSkeleton(num, currentSkeleton);
                        Console.WriteLine(num);
                    }
                    else
                    {
                        silenceSkeleton(num);
                    }
                    num++;
                }
                if (num == 0)
                {
                    for (int i = 0; i < 4; i++)
                    {
                        silenceSkeleton(i);
                    }
                }
            }
            else
            {
                for (int i = 0; i < 4; i++)
                {
                    silenceSkeleton(i);
                }
            }
        }