///<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);
///<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));