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?
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user