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

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

Reply via email to