/// <summary>
        /// Helper method to get a difficulty of this Song
        /// </summary>
        /// <param name="diff">Requested difficulty</param>
        /// <param name="difficulty">the difficulty - Will be a random difficulty if not found, make sure to check the return value of the method!</param>
        /// <returns>True if the requested difficulty exists, false otherwise</returns>
        public bool GetDifficulty(out SongDifficulty difficulty, MapDifficulty diff, MapCharacteristic characteristic = MapCharacteristic.Standard)
        {
            for (int i = 0; i < diffCount; i++)
            {
                ref var x = ref SongDetailsContainer.difficulties[i + diffOffset];

                if (x.difficulty == diff && x.characteristic == characteristic)
                {
                    difficulty = x;
                    return(true);
                }
            }
        public static BeatDataCharacteristics ConvertToBeatDataCharacteristics(MapCharacteristic mapCharacteristic)
        {
            var result = BeatDataCharacteristics.Unkown;

            switch (mapCharacteristic)
            {
            case MapCharacteristic.Custom:
                result = BeatDataCharacteristics.Unkown;
                break;

            case MapCharacteristic.Standard:
                result = BeatDataCharacteristics.Standard;
                break;

            case MapCharacteristic.OneSaber:
                result = BeatDataCharacteristics.OneSaber;
                break;

            case MapCharacteristic.NoArrows:
                result = BeatDataCharacteristics.NoArrows;
                break;

            case MapCharacteristic.NinetyDegree:
                result = BeatDataCharacteristics.Degree90;
                break;

            case MapCharacteristic.ThreeSixtyDegree:
                result = BeatDataCharacteristics.Degree360;
                break;

            case MapCharacteristic.Lightshow:
                result = BeatDataCharacteristics.Lightshow;
                break;

            case MapCharacteristic.Lawless:
                result = BeatDataCharacteristics.Lawless;
                break;

            default:
                break;
            }
            return(result);
        }