示例#1
0
            public void Add(TimeInUnits t, ISoundId sound, Velocity v)
            {
                List <PatternBeat> beatsAtT;

                if (!beats.TryGetValue(t, out beatsAtT))
                {
                    beatsAtT = new List <PatternBeat>(1);
                    beats.Add(t, beatsAtT);
                }
                var patternBeat = new PatternBeat(t, sound, v);

                if (beatsAtT.Any(p => Equals(p.Sound, sound)))
                {
                    throw new ArgumentException(string.Format("Duplicate beat on {0} at t={1}", sound.Name(), t.Index));
                }
                beatsAtT.Add(patternBeat);
                if (!preferredInstrumentsOrder.Contains(sound))
                {
                    preferredInstrumentsOrder.Add(sound);
                }
            }
示例#2
0
 public PatternBeat(TimeInUnits t, ISoundId sound, Velocity velocity)
 {
     T        = t;
     Sound    = sound;
     Velocity = velocity;
 }