[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GOP2-3 - GLISS or not

From: Graham Percival
Subject: Re: GOP2-3 - GLISS or not
Date: Wed, 25 Jul 2012 13:48:44 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

On Wed, Jul 25, 2012 at 04:58:57AM +0000, Keith OHara wrote:
> Graham Percival <graham <at>> writes:
> > 2. Define a subset of input as being stable for the 3.x branch.
> >      We add regression tests for that subset of notation and
> >      forbid running convert-ly on those files. 
> Why forbid convert-ly?  Is the idea to freeze the syntax that many 
> users have already committed to memory ?

No, users memorizing syntax is the least of my concerns.  :)
Reasons in favor of disallowing convert-ly for the specific subset
of "stable" syntax:

1. it forces us to take the process seriously by removing the
"safety net".  Any poor decisions from the process will be
enthroned in the syntax for years to come[1].  Hopefully this will
make us proceed cautiously, take a more serious look at the syntax
proposals for potential problems, etc.

2. it signals to other projects that we're serious about this.
This makes tasks such as writing importers/exporters to/from
lilypond much less undesirable.  It also might help people doing
musicology (or music theory) research with lilypond files.

3. it makes lilypond more suited to being an "archival" format (or
at least less unsuited).  convert-ly only converts files in a
forward direction.  Granted, there aren't many instances where
somebody might have a corpus of music they want to render in both
lilypond 3.0 and 3.2, but it's not impossible.  For example,
suppose there was a team of a dozen Russian musicologists
archiving folk tunes, but lilypond 3.2 doesn't work on OSX 11.4
because Apple broke their own API again.  It would be nice if the
team could share lilypond files between lilypond 3.0 and 3.2.
(assuming that there were no special tweaks happening -- i.e. the
team was first getting the notes and rhythms written down, and are
not planning to do a great deal of tweaking).

To clarify, all the bits and pieces of point 3 were taken from
real-life occurrences in lilypond over the past two years (other
than the version numbers which are obviously made up).  It's not

> >      At the moment, I
> >      imagine that the subset would consist of at most Notation
> >      sections 1.1 Pitches, 1.2 Rhythms, and the overall file
> >      organization; nothing else.  Changes to input other than that
> >      subset are fine. 
> These sections also cover recently-added features like auto-beaming 
> overrides, and modal transformations, which might someday be improved 
> with a syntax change that convert-ly could handle.

Oops, yes, I'm not thinking about auto-beaming or cadenzas at all.

> There are some GLISS topics that would take longer to get right, such as:
> + whether we should implement {c4 d e f}*4 to repeat a sequence
> + whether to disallow some unusual syntax that Lilypond currently
> allows, but which prevents LilyPond from recognizing numbers in variable 
> names.
> Such changes would affect what is allowed in the notation covered by
> Pitches and Rhythms, but would not affect the "forseeable usage" core 
> notation as preserved in those regression tests.

There seems to be a surprising amount of agreement with the idea
of stabilizing a subset of our notation.  However, most people are
thinking about much more advanced syntax than I think we can do.
To "rein in" some of the ideas, I'll toss out the following:

- let's not plan things too far in advance.  I think we should set
  a reasonable SMALL goal for stable syntax at the end of 2012.
  Once we've achieve that (or not), we'll pause for a while, look
  at what worked and what didn't, and then plan the next round
  of stable syntax discussions for 2013.
- with that in mind, I can think of a few different ways of
  picking our small concrete goal:
  1) pick a piece of easy music, then stabilize the syntax for that
     piece.  Suggestions:
      - Mike has part of a Handel anthem.
        (it has footnotes which are far too complicated, but those
        could be removed in the "syntax subset" version)
      - prelude to the Bach unaccompanied suite in G minor
      - one Bach chorale
  2) strive for compatibility with other music formats, e.g.,
      - stabilize lilypond syntax that affects MIDI output
        (notes, rhythms, ... I guess ignore the instruments for now?)
      - I know that SVG has a "svg tiny" subset; is there any
        subset of musicxml?
  3) make an ad-hoc list of notation.  For example:
      - Dutch note names, division-by-two and triplet rhythms,
        general syntax, and dynamics.  No slurs, no articulation,
        no repeats, no lyrics, etc.

I really want to emphasize that we cannot over-estimate how much
work this will be.  Also, there's no problem starting a second
round of discussions if the first round goes really well and is
implemented without problems.

BTW, in case you think that music without slurs is useless -- some
cello teachers swear that the best way to learn the Bach cello
suites is to start from sheet music with only notes and rhythms,
then write in your own slurs, dynamics, articulations, fingerings,
etc.  A stable syntax which only handles MIDI and/or my ad-hoc
list of notation would not be useless!

- Graham

reply via email to

[Prev in Thread] Current Thread [Next in Thread]