On 3 Nov 2013, at 13:17, Joseph Rushton Wakeling <joseph.wakel...@webdrake.net> wrote:
> On 03/11/13 12:34, Hans Aberg wrote: >> I know how to do it from the theoretical point of view, but somebody who >> knows the internals of LilyPond must do it. > > Of course. I'm just raising it as pertinent to the discussion. :-) As a preparation, LilyPond might get intervals: it is going to be too complicated to write out names for all pitch combinations. A pitch is defined by a written pitch plus a sequence of intervals added to it. Accidentals are a special case: intervals not changing the scale degree. To illustrate the syntax problem in pseudocode, instead of a harmonic c-major with absolute pitch names c d ef f g af b cā one might use intervals \pitch-reference c { P1 M2 m3 P4 P5 m6 M7 P8 } with the letters meaning P = pure, M = major, m = minor. Using an accidental sharp #, this might be \pitch-reference c { P1 M2 m3 P4 P5 m6 m7# P8 } This illustrates that written intervals might have two syntactic functions: as an operator like the postfix #, which modifies the pitch or interval before it, and as absolute intervals as in the first example. LilyPond already has two postfix operators "," and "ā", changing the octave. So there would be need for more operators. The absolute intervals might be useful, too. Then one might define "," = -P8, "ā" = P8 together with some operator declaration of "," and "ā". _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel