lilypond-user
[Top][All Lists]
Advanced

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

Re: Separating note names into pitch and accidentals


From: Hans Åberg
Subject: Re: Separating note names into pitch and accidentals
Date: Sun, 22 Dec 2019 12:43:46 +0100

> On 22 Dec 2019, at 11:05, Malte Meyn <address@hidden> wrote:
> 
> Am 22.12.19 um 10:51 schrieb Hans Åberg:
>> To simplify the writing of note input names, they might be separated into 
>> separate parts for pitch and accidentals (or intervals). Testing this, I 
>> made C++ code where one first reads the longest pitch name available in a 
>> table, and then proceeds for a succession of accidentals, also the longest 
>> available in a separate table, and it looks like nice.
> 
> I’m not sure if I understand correctly, but if I do that won’t work for all 
> languages: In German “fes” is f-flat, while “f es” is f and e-flat, you 
> cannot know whether “es” is the suffix “-flat” or the complete pitch name 
> “e-flat”. And how about “feses”? That could be “f es es”, “fes es” or “f 
> eses”.

I do it in a way that is upwards compatible, specifically, if one puts all note 
names into the table, as is the case now, and no separate accidentals, the 
result is exactly the same as currently.

Also, rather than writing pitch and accidental names separately with a 
separator like a space, I split the note name that is parsed, so that is also 
upward compatible, and avoids having to tweak the lexer and parser.

So "f es” is two notes as before, whereas “fes” a single note. 

In German, one could this keep it as it is, or define the note names c d e f g 
a b h, plus the accidentals is es, and the microtonal accidentals ih eh. Doing 
the latter, “feses” is split up as “f es es”, and their pitch and alterations 
values added. But one gets more combinations, for example “fisih” and “fihis” 
will be the same, as they are split up as “f is ih” and “f ih is”. Also, any 
number of accidental names can follow the note name.





reply via email to

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