public static ChordModifier CreateModifier(GuitarChord chord, ChordModifierType type)
        {
            ChordModifier ret = null;

            switch (type)
            {
                case ChordModifierType.ChordStrumLow:
                    {
                        ret = GuitarChordStrum.CreateStrum(chord, ChordStrum.Low);
                    }
                    break;
                case ChordModifierType.ChordStrumMed:
                    {
                        ret = GuitarChordStrum.CreateStrum(chord, ChordStrum.Mid);
                    }
                    break;
                case ChordModifierType.ChordStrumHigh:
                    {
                        ret = GuitarChordStrum.CreateStrum(chord, ChordStrum.High);
                    }
                    break;
                case ChordModifierType.Hammeron:
                    {
                        ret = GuitarHammeron.CreateHammeron(chord);
                    }
                    break;
                case ChordModifierType.Slide:
                    {
                        ret = GuitarSlide.CreateSlide(chord, false);
                    }
                    break;
                case ChordModifierType.SlideReverse:
                    {
                        ret = GuitarSlide.CreateSlide(chord, true);
                    }
                    break;
            }

            return ret;
        }
 public ChordModifier(MidiEventPair pair, ChordModifierType type, GuitarMessageType gt) :
     base(pair, gt)
 {
     Chord        = null;
     ModifierType = type;
 }
 public ChordModifier(GuitarChord chord, ChordModifierType type, GuitarMessageType gt) :
     base(chord.Owner, chord.TickPair, gt)
 {
     ModifierType = type;
     Chord        = chord;
 }
 public ChordModifier(MidiEventPair pair, ChordModifierType type, GuitarMessageType gt)
     : base(pair, gt)
 {
     Chord = null;
     ModifierType = type;
 }
 public ChordModifier(GuitarChord chord, ChordModifierType type, GuitarMessageType gt)
     : base(chord.Owner, chord.TickPair, gt)
 {
     ModifierType = type;
     Chord = chord;
 }
 public static ChordModifier GetModifier(GuitarChord chord, ChordModifierType type)
 {
     ChordModifier ret = null;
     switch (type)
     {
         case ChordModifierType.ChordStrumHigh:
         case ChordModifierType.ChordStrumMed:
         case ChordModifierType.ChordStrumLow:
             if (Utility.GetStrumData1(chord.Difficulty).IsNotNull())
             {
                 ret = new GuitarChordStrum(chord, type);
             }
             break;
         case ChordModifierType.Hammeron:
             if (Utility.GetHammeronData1(chord.Difficulty).IsNotNull())
             {
                 ret = new GuitarHammeron(chord);
             }
             break;
         case ChordModifierType.Slide:
         case ChordModifierType.SlideReverse:
             if (Utility.GetSlideData1(chord.Difficulty).IsNotNull())
             {
                 ret = new GuitarSlide(chord, type == ChordModifierType.SlideReverse);
             }
             break;
     }
     return ret;
 }