示例#1
0
        private static float CalculateIntensity(float startTick, float endTick, List <SongCues.Cue> cues)
        {
            float intensity = 0f;
            bool  indexSet  = false;

            for (int i = startIndex; i < cues.Count; i++)
            {
                SongCues.Cue cue = SongCues.I.mCues.cues[i];
                if (cue.tick >= endTick)
                {
                    break;
                }
                if (cue.tick >= startTick && cue.tick < endTick)
                {
                    intensity += GetTargetAmount((Hitsound)cue.velocity, cue.behavior);
                    if (!indexSet)
                    {
                        indexSet   = true;
                        startIndex = i;
                    }
                }
            }

            intensity /= AudioDriver.TickSpanToMs(SongDataHolder.I.songData, startTick, endTick);

            intensity *= 1000f;
            return(intensity);
        }
 public void EvaluateCues(SongCues.Cue[] cues, SongList.SongData songData)
 {
     this.length = AudioDriver.TickSpanToMs(songData, cues[0].tick, cues[cues.Length - 1].tick);
     SplitCues(cues);
     CalculateSpacing();
     CalculateDensity();
     CalculateReadability();
     difficultyRating = ((spacing + readability) / length) * 500f + (length / 100000f * lengthMultiplier);
 }
示例#3
0
        public static void test()
        {
            var             candidates = GetQuietParts();
            List <CueRange> ranges2    = new List <CueRange>();

            candidates.ForEach((queData) => {
                var ms = AudioDriver.TickSpanToMs(SongDataHolder.I.songData, queData.fromTick, queData.toTick);
                if (ms >= 2000f)
                {
                    ranges2.Add(queData);
                }
            });

            // MelonLogger.Log($"Found {ranges2.Count} candidates!");
            Data.darts = new int[ranges2.Count][];

            int i = 0;

            foreach (CueRange Cue in ranges2)
            {
                Data.darts[i] = new int[] { Cue.enableFrom, Cue.enableTo };
                i++;
            }
        }