lilypond-user
[Top][All Lists]
Advanced

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

Re: Intervalic Chord Names


From: Malte Meyn
Subject: Re: Intervalic Chord Names
Date: Tue, 28 Aug 2018 16:27:01 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0



Am 28.08.18 um 15:29 schrieb Tom Swan:
Sorry for duplication but my previous try didn't seem to go through.)

It came through; it just seems like it was overlooked by many.

I need some help figuring out how to change chord names (C, F, G) into 
intervals such as (I, IV, V). The short example below displays a timing diagram 
for a melodic line, but I would also like to display the chords C7, F7 as 
generic intervals I7 IV7. Manually setting the text would okay -- I'm not 
looking for some kind of automatic translation, although that would be neat. I 
know I can do this with markup, but I do not want to add markup statements to 
noteValues! Do I need to set chordRootNamer somehow? Or is there another 
solution? Thanks for any advice.

Setting chordRootNamer probably is the easiest way, yes. I took the original definition of note-name->markup (which is the default chordRootNamer) from the file scm/chord-name.scm and modified it to use the roman numerals I to VII instead of letters C to B:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\layout {
  \context {
    \ChordNames
    chordRootNamer =
    #(lambda (pitch lowercase?)
       (make-simple-markup
        (vector-ref #("I" "II" "III" "IV" "V" "VI" "VII")
          (ly:pitch-notename pitch))))
  }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Of course you can use that in a \with block instead of a layout-context block; or just \set chordRootNamer = … somewhere else ;)

Do you need lowercase numbers (i to vii) too? And how about accidentals?



reply via email to

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