2015-04-22 4:23 GMT+02:00 SonusProj . <[email protected]>: > That solution is also quite elegant. I need to spend some time > understanding what you have created. > > Your chosen syntax is beyond my current understanding. > > Thanks for your input. > > Respectfully, > Lance
Well, you wrote: 2015-04-21 19:34 GMT+02:00 SonusProj . <[email protected]>: > I see several avenues for this but I don't see an avenue where I can write > the code once and use many times. Thus I posted a most automated suggestion. :D Some hints: It uses 1) \transpose (you know already) 2) \modalTranspose Most useful in this special case to reduce typing. Check it out. It's in the NR 3) reuse of the same chords in Staff and ChordNames 4) our chord-naming-engine to display "i7" and the like (with a new written ChordRootNamer) 5) Some tricky list-processing Even using only 1) - 3) would largely reduce your effort Cheers, Harm > > On Tue, Apr 21, 2015 at 6:32 PM, Thomas Morley <[email protected]> > wrote: >> >> 2015-04-21 19:34 GMT+02:00 SonusProj . <[email protected]>: >> > Attached (for ease of reading this post, code not embedded) is a simple >> > project that has a staff for C Major and all Major flat keys. Above >> > each >> > 7th chord is the chord name. >> > >> > I want to add below the chord, treble clef, the associated Roman numeral >> > description of each chord. >> > >> > I.E. on the C Major I would have I, the Dm7 would have ii7 with the 7 in >> > superscript, the Em7 would have iii7 with the 7 in superscript, etc. >> > >> > I see several avenues for this but I don't see an avenue where I can >> > write >> > the code once and use many times. I want the Roman numerals to appear >> > for >> > all keys and don't want an overly clutter code. >> > >> > Can someone point me in the correct direction? >> > >> > Best regards, >> > Lance >> > >> > _______________________________________________ >> > lilypond-user mailing list >> > [email protected] >> > https://lists.gnu.org/mailman/listinfo/lilypond-user >> > >> >> Hi, >> >> how about: >> >> \version "2.18.2" >> >> \header { >> title = "Root Position 7th Chords" >> composer = "Lance James" >> } >> >> diatonicScale = { c d e f g a b } >> >> chrd = { <c' e' g' b'>1 } >> >> multipleModalTransposes = >> #(define-music-function (parser location m music)(ly:music? ly:music?) >> (music-clone m >> 'elements >> (map (lambda (pitch) >> (ly:music-property >> #{ \modalTranspose c $pitch $diatonicScale \context Bottom >> $music #} >> 'element)) >> (event-chord-pitches m)))) >> >> multipleTransposes = >> #(define-music-function (parser location m music)(ly:music? ly:music?) >> (music-clone m >> 'elements >> (map (lambda (pitch) >> (ly:music-property #{ \transpose c $pitch $music #} 'element)) >> (event-chord-pitches m)))) >> >> #(define (note-name->roman-number-markup pitch lowercase?) >> "Return roman-number-markup for @var{pitch}." >> (make-simple-markup >> (vector-ref >> #("i" "ii" "iii" "iv" "v" "vi" "vii") >> (ly:pitch-notename pitch)))) >> >> \score { >> \new PianoStaff >> << >> \new ChordNames >> \multipleTransposes >> { c f bes ees aes des ges ces } >> \multipleModalTransposes \diatonicScale \chordmode { \chrd } >> >> \new Staff >> \multipleTransposes >> { c f bes, ees aes, des, ges, ces } >> { >> \key c \major >> \multipleModalTransposes \diatonicScale \chrd >> \break >> \bar "||" >> } >> >> \new ChordNames >> \with { >> minorChordModifier = "" >> %chordNameLowercaseMinor = ##t >> majorSevenSymbol = "7+" %#whiteTriangleMarkup >> chordRootNamer = #note-name->roman-number-markup >> \remove "Staff_performer" >> } >> \repeat unfold 8 >> \multipleModalTransposes \diatonicScale \chordmode { \chrd } >> >> \new Staff { >> \clef bass >> \multipleTransposes >> { c f bes ees aes des ges ces' } >> { >> \key c \major >> \multipleModalTransposes \diatonicScale \transpose c c,, \chrd >> } >> \bar "|." >> } >> >> >> >> \layout { >> \context { >> \Staff >> explicitKeySignatureVisibility = #end-of-line-invisible >> printKeyCancellation = ##f >> } >> } >> \midi { } >> } >> >> >> Cheers, >> Harm > > > > _______________________________________________ > lilypond-user mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/lilypond-user > _______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
