void Reader_MultiSourceFrameArrived(object sender, MultiSourceFrameArrivedEventArgs e)
        {
            var reference = e.FrameReference.AcquireFrame();

            // Color
            using (var frame = reference.ColorFrameReference.AcquireFrame())
            {
                if (frame != null)
                {
                    viewer.Image = frame.ToBitmap();
                }
            }

            // Body
            using (var frame = reference.BodyFrameReference.AcquireFrame())
            {
                if (frame != null)
                {
                    _currentBody = frame.Bodies().Closest();



                    if (_currentBody != null)
                    {
                        var recording_brush = Brushes.Green;
                        var stopped_brush   = Brushes.Red;

                        var    current_brush = _mode == RecordingMode.Started ? recording_brush : stopped_brush;
                        double radius        = 15;

                        viewer.Clear();
                        viewer.DrawBody(_currentBody, radius, current_brush, radius, current_brush);

                        if (_mode == RecordingMode.Started)
                        {
                            BodyWrapper pose = new BodyWrapper();
                            pose.Set(_currentBody, viewer.CoordinateMapper, Visualization.Color);
                            string pose_json = JsonConvert.SerializeObject(pose);
                            savedPose.Add(pose_json);
                        }
                    }
                    else
                    {
                        viewer.Clear();
                    }
                }
            }
        }