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

Reply via email to