private BeatDuration(BeatDurationFloat duration, uint resolution) { var b = (int)duration.Beats; var delta = duration.Beats - b; var s = new Rational((long)(delta * resolution + (delta >= 0 ? 0.5 : -0.5)), (int)resolution); Normalize(b, s, out BeatPart, out SubBeatPart); }
public static BeatPointFloat At(float beats) => new BeatPointFloat(BeatDurationFloat.Of(beats));
public static BeatDuration Rationalize(BeatDurationFloat beats, uint resolution) => new BeatDuration(beats, resolution);