public void SinglePlay(long tick) { if (Track.Count > 0) { SeqData curr = Track.Peek(); if (tick > curr.TickTime) { Track.Dequeue(); if (curr.Play && (prev == null || !prev.Play)) { motor.Speed = Pitch.GetFrequency(curr.NoteId) / 2; //if (OctaveOffset < 0) //{ // motor.Speed /= 2 * Math.Abs(OctaveOffset); //} //else if (OctaveOffset > 0) //{ // motor.Speed *= 2 * Math.Abs(OctaveOffset); //} prev = curr; } else if (!curr.Play && prev.NoteId == curr.NoteId) { motor.Speed = 0; prev = curr; } } else if (curr.TickTime - tick < 10) { motor.Speed = 0; } } else { motor.Speed = 0; Done = true; return; } motor.Run(); }
public override void Play() { motor.Run(); }