private void _UpdateBeats() { _thirtySecondCount++; _BuildBeatMask(); if (Tick != null) { Tick(new BeatArgs(BeatValue.ThirtySecond, _thirtySecondCount, _nextThirtySecond, _nextThirtySecond + _thirtySecondLength, _beatMask)); } eventManager.Fire(new ThirtySecond(_thirtySecondCount)); if (Beat != null) { Beat(new BeatArgs(BeatValue.ThirtySecond, _thirtySecondCount, _nextThirtySecond, _nextThirtySecond + _thirtySecondLength, _beatMask)); } if (_unitOfTempo == BeatValue.ThirtySecond) { eventManager.Fire(new Beat(_thirtySecondCount)); } //latency.Add(AudioSettings.dspTime - _nextThirtySecond); //benchmarking stuff _nextThirtySecond += _thirtySecondLength; if (_beatMask[(int)BeatValue.Sixteenth]) { _sixteenthCount++; eventManager.Fire(new Sixteenth(_sixteenthCount)); if (Beat != null) { Beat(new BeatArgs(BeatValue.Sixteenth, _sixteenthCount, _nextSixteenth, _nextSixteenth + _sixteenthLength, _beatMask)); } if (_unitOfTempo == BeatValue.Sixteenth) { eventManager.Fire(new Beat(_sixteenthCount)); } _nextSixteenth += _sixteenthLength; } if (_beatMask[(int)BeatValue.Eighth]) { _eighthCount++; eventManager.Fire(new Eighth(_eighthCount)); if (Beat != null) { Beat(new BeatArgs(BeatValue.Eighth, _eighthCount, _nextEighth, _nextEighth + _eighthLength, _beatMask)); } if (_unitOfTempo == BeatValue.Eighth) { eventManager.Fire(new Beat(_eighthCount)); } _nextEighth += _eighthLength; } if (_beatMask[(int)BeatValue.Quarter]) { _quarterCount++; eventManager.Fire(new Quarter(_quarterCount)); if (Beat != null) { Beat(new BeatArgs(BeatValue.Quarter, _quarterCount, _nextQuarter, _nextQuarter + _quarterLength, _beatMask)); } if (_unitOfTempo == BeatValue.Quarter) { eventManager.Fire(new Beat(_quarterCount)); } _nextQuarter += _quarterLength; } if (_beatMask[(int)BeatValue.Half]) { _halfCount++; eventManager.Fire(new Half(_halfCount)); if (Beat != null) { Beat(new BeatArgs(BeatValue.Half, _halfCount, _nextHalf, _nextHalf + _halfLength, _beatMask)); } if (_unitOfTempo == BeatValue.Half) { eventManager.Fire(new Beat(_halfCount)); } _nextHalf += _halfLength; } if (_beatMask[(int)BeatValue.Whole]) { _wholeCount++; eventManager.Fire(new Whole(_wholeCount)); _nextWhole += _wholeLength; } if (_beatMask[(int)BeatValue.Measure]) { _measureCount++; eventManager.Fire(new Measure(_measureCount)); _nextMeasure += _measureLength; } }