Example #1
0
        public void AddDrumMixEvents(MidiEventCollection midi)
        {
            var drumTrack         = midi.GetTrackByName(TrackName.Drums.ToString());
            var existingMixEvents = drumTrack.
                                    OfType <TextEvent>().
                                    Where(e => e.AbsoluteTime == 0 && e.MetaEventType == MetaEventType.TextEvent).
                                    Select(e => e.AsDrumMixEvent()).
                                    Where(e => e != null).
                                    ToList();

            for (var difficulty = 0; difficulty < 4; difficulty++)
            {
                if (existingMixEvents.Any(e => e.Difficulty == difficulty))
                {
                    continue;
                }

                // Try to keep them in order
                drumTrack.Insert(difficulty + 1, DrumMixEvent.DefaultFor(difficulty));
            }
        }