[Top][All Lists]

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

RE: Syntax explanations

From: Carl D. Sorensen
Subject: RE: Syntax explanations
Date: Wed, 11 Jun 2008 08:55:36 -0600

> -----Original Message-----
> From: Reinhold Kainhofer [mailto:address@hidden
> Sent: Wednesday, June 11, 2008 7:05 AM
> To: Carl D. Sorensen
> Cc: lily-devel
> Subject: Re: Syntax explanations
> Am Mittwoch, 11. Juni 2008 schrieben Sie:
> > When I first started working on chords.itely I wrote something like
> > this for chordmode chords.  However, by design we don't do
> this in the NR.
> Ouch, because for a reference manual, I find it extremely
> useful to show the basics in one table with all available options.

I agree.  It would be nice to have a table with all available options.  
However, I think that the decision Graham has made is to have the documentation 
a little less friendly now and automatically updatable for the future.  Whether 
or not this is the best choice is open to debate, and after Graham leaves in 
August, someone else may take over the doc-meister posisiton and change this 

> For example, the \! to break an extender in figured bass IS
> mentioned in the latest GDP version, but its very well-hidden
> and badly explained that I would have never realized what it
> did unless I read the parser.yy.

I see that \! is _used_ in a snippet in the GDP version, but I don't think it's 
explained.  I will fix this -- it's a limitation of the old documentation that 
I hadn't understood well enough to correct yet.

> > Although this would be a clear definition of the syntax, the syntax
> > can change with future versions.  Therefore, we try to keep
> all of the
> > syntax in the snippets, so convert-ly can update the
> documentation automatically.
> Actually, while writing chord support in musicxml2ly I found
> this extremely annoying, because I simply couldn't easily
> find all the different postfixes for some kinds of chords.
> Basically, the implementation of musicxml2ly is based on
> trial-and-error rather than on documented behavior.
> For example, to create a hald-diminished, I found out that I
> could use 'dim5m7', but that took me some trying.
> The other thing that I found purely by luck was that while
> you can simply write c1 for the C major chord, if you want to
> add or remove steps, you'll have to use c1:5.3. This is never
> explicitly said in the docs, only used implicitly in one
> snippet, where you will find it once you have found the
> solution, but it doesn't help you in finding the solution.

I will add a statement to the docs to clarify this.  If you read carefully, 
it's currently there, but not in a clear manner.  According to the docs, the 
first number following the : is the extent.  In order to add, remove, or modify 
steps, you first need to have an extent given.  The default extent is 5, which 
corresponds to a triad.

> > P.S.  Reinhold, the available chordmode modifiers are shown
> in a list
> > in the GDP docs.  If the explanation isn't clear, please
> let me know.  Thanks.
> Yes, I used that, but was not sure whether these were all
> modifier (i.e. how can I explicitly create a major chord? I
> was looking for this when c:.3 wouldn't work). Also, I wasn't
> so sure how the modifiers interact with the step numbers
> given afterwards. Maybe you can take a look at the musicxml2ly code (
> starting at code line 1319)
> and tell me if I used the correct modifiers/numbers for all
> the chords defined in MusicXML
> (, search for "Triads"
> to get to the list of defined chord names).

I've looked at your code.  Some comments:

1. You put 5 on all of the triads.  Is this so that you can do step removal, 
addition, or alteration automatically?  It's not wrong, but it's not the way 
chords are "normally" written in LilyPond.  Actually, it's more logically 

2.  I believe your major-minor is wrong.  I think it should be maj7m, maj7m5 or 
maj7.3-.  I think as written you have a minor seventh, not a major seventh.

3. "power" could be implemented as "5^3", I believe.

4. LilyPond supports the first inversion in the form of added bass notes.  So 
the first inversion of C major would be c:/g.   To get the second inversion of 
C major, you would need to do e:6-3-^5 or e:m6-^5.  However, both of these 
techniques require you to know the chord and calculate either the fifth pitch 
(for the first inversion) or the third pitch (for the second inversion) so they 
may not be helpful for musicxml2ly.


reply via email to

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