> But my insistence on keeping this strict separation between definition
> and presentation is this: most people have only communicated music
> (communicating is reading and writing) through notation.  IMNSHO
> notation is *not* a good method for *defining* music.  The meaning of
> notation is not well defined, 

Hmmm.  Are you referring simply to the fact that notation is
incomplete?  That it leaves certain things unsaid?  Or is there some
more serious problem with the notation?

> and has more or less evolved in 1000
> years to a rather complicated system.  So, when you want to teach
> people about entering mudela (ie., defining music), I would like to
> avoid mentioning this broken system (notation) for defining music.

How can you reconcile this with saying "quarter note" in the system
then?  No matter whether you claim "a4" is a quarter note, represents
one, produces one, or whatever, that still seems like a reference to
the notation.  

> > I must admit that the way things are currently set up seems
> > overcomplicated.  Why not admit as a lyric anything that doesn't start
> > with a number or whitespace and doesn't look like "\" followed by an
> > alphabetic character?
> 
> go ahead!

Well, keep in mind that all I know about flex I inferred from reading
the lexer.ll file.  I spent some time (too long) trying some
experiments to see if I could change the behavior to what I described
above.  It seemed like anytime I changed anything except one or two
characters of lexer.ll, I started getting the message when I ran lilypond:

/home/adrian/test.ly:6:32: error: have to be in Lyric mode for lyrics:
  \type Lyrics \lyric{ foo4 bar8
                                 foo8}

I was unable to figure out WHY this message would occur.  Undoubtedly
someone who actually understood how these things work could this
change more easily.

> > Here's an attempt at a grammar describing these things.  I havn't
> > tried to integrate \type or \property into this.  They seem to have
> > their own idiosyncratic syntax.  
> 
> This is superfluous.  Check out lily/parser.yy

Well, I don't think it's superfluous.  I suppose I could include
lily/parser.yy directly in the documentation but it's 1400 lines long
and my grammar is 34 lines long.  The grammar in that file doesn't
generalize.  It declares that the \paper keyword takes an argument
called "paper_body".  The \midi command takes "midi_body".  And so on.
This isn't what you want for gaining a comprehension of how the
language works---unless the language is so inconsistent that every
keyword requires its own special argument with it's own unique type.
If you can't document your language more efficiently than with this
1400 line grammar, then clearly something is seriously wrong.

There's also the question of how you think about the Mudela language.
Does the grammar I wrote capture the essential elements?  Or does it
mislead in some way.  By writing a concise, higher level grammar, I
think I gain insight into the way the language works.  (Presumably
this is why such grammars appear in reference manuals.)

The difficulty in making a basically correct, concise grammar for
mudela points to various inconsistencies in the underlying language.
I think that it would be worthwhile to ponder these inconsistencies.
Unless there is a good reason for an inconsistency, it should be
eliminated.  And each inconsistency should receive specific thought
and justification for its existence.

Reply via email to