public static bool TryParse(string s, out RhythmicDuration duration) { int val; if (!int.TryParse(s, out val)) { duration = default(RhythmicDuration); return(false); } duration = new RhythmicDuration(val); return(true); }
public static bool TryParse(string s, out RhythmicDuration duration) { int val; if (!int.TryParse(s, out val)) { duration = default(RhythmicDuration); return(false); } var denominatorAsPowerOfTwo = UsefulMath.Log2(val); duration = new RhythmicDuration(denominatorAsPowerOfTwo); return(true); }
/// <summary> /// Returns a proportion of this RhythmicDuration to the second RhythmicDuration. Dots are not taken into account. /// For example if this RhythmicDuration is half note duration and the second duration is quarter note duration, the proportion of 4:2 will be returned. /// </summary> /// <param name="duration"></param> /// <returns></returns> public Proportion ToFractionOf(RhythmicDuration duration) { var factor = GetFactor(); return(new Proportion(((int)duration.Denominator * factor), (int)(Denominator * factor))); }
public Proportion ToFractionOf(RhythmicDuration duration) { return(new Proportion(duration.Denominator, Denominator)); }
public static IEnumerable <RhythmicUnit> Parse(params int[] durations) { return(RhythmicDuration.Parse(durations).Select(d => new RhythmicUnit(d, false)).ToArray()); }
public static IEnumerable <RhythmicUnit> Parse(string s, string separator) { return(RhythmicDuration.Parse(s, separator).Select(d => d.ToRhythmicUnit(false))); }
public RhythmicUnit(RhythmicDuration duration, bool isRest) : this() { Duration = duration; IsRest = isRest; }
public Tempo(RhythmicDuration beatUnit, int beatsPerMinute) : this() { BeatUnit = beatUnit; BeatsPerMinute = beatsPerMinute; }