Example #1
0
 ///<summary>
 ///  Yields every <see cref="Pitch"/> in this mode starting from the given tonic.
 ///</summary>
 ///<remarks>
 ///  Will progress infinitely, so take only what is needed.
 ///</remarks>
 public IEnumerable <Pitch> Scale(Pitch tonic) => Ascend().Select(tonic.Apply);
Example #2
0
 ///<summary>
 ///  Returns a sequence of Pitches by applying all of this Quality's Intervals to the given root.
 ///</summary>
 public IEnumerable <Pitch> Apply(Pitch root) => Intervals.Select(i => root.Apply(i));