public boolean birthChecker() {
        switch (state) {
            case NONE:
                // If leftHand is below leftElbow which is below leftShoulder (or right)
                if (GestureInfo.gesturePieces[GestureInfo.LEFT_HAND_DOWN]
                        && GestureInfo.gesturePieces[GestureInfo.RIGHT_HAND_DOWN]) {
                    state = GestureState.BIRTH;
                    confidence = 0.0f;
                    return true;
                }
                break;
            case BIRTH:
                if (((GestureInfo.gesturePieces[GestureInfo.LEFT_HAND_RISING])
                        && (!GestureInfo.gesturePieces[GestureInfo.LEFT_ARM_ANGLE_MED]))
                        || ((GestureInfo.gesturePieces[GestureInfo.RIGHT_HAND_RISING])
                        && (!GestureInfo.gesturePieces[GestureInfo.RIGHT_ARM_ANGLE_MED]))) {
                    duration++;

                    if ((GestureInfo.gesturePieces[GestureInfo.LEFT_HAND_RISING])) {
                        final PVector diffHand = PVector.sub(joints[GestureInfo.LEFT_HAND],
                                prevJoints[GestureInfo.LEFT_HAND]);
                        usingLeftArm = true;
                        tempo += diffHand.mag();
                    } else {
                        final PVector diffHand = PVector.sub(joints[GestureInfo.RIGHT_HAND],
                                prevJoints[GestureInfo.RIGHT_HAND]);
                        usingLeftArm = false;
                        tempo += diffHand.mag();
                    }
                    return true;
                }
                break;
        }

        return false;
    }