[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Roman Numeral placement
From: |
Thomas Morley |
Subject: |
Re: Roman Numeral placement |
Date: |
Wed, 22 Apr 2015 01:47:31 +0200 |
2015-04-22 1:32 GMT+02:00 Thomas Morley <address@hidden>:
> 2015-04-21 19:34 GMT+02:00 SonusProj . <address@hidden>:
>> 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
>> address@hidden
>> 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))))
%% more concise:
#(define (note-name->roman-number-markup pitch lowercase?)
"Return roman-number-string for @var{pitch}."
(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
- Roman Numeral placement, SonusProj ., 2015/04/21
- Re: Roman Numeral placement, Carl Sorensen, 2015/04/21
- Re: Roman Numeral placement, Thomas Morley, 2015/04/21
- Re: Roman Numeral placement,
Thomas Morley <=
- Re: Roman Numeral placement, Simon Albrecht, 2015/04/21
- Re: Roman Numeral placement, Thomas Morley, 2015/04/21
- Re: Roman Numeral placement, SonusProj ., 2015/04/21
- Re: Roman Numeral placement, Simon Albrecht, 2015/04/22
- Re: Roman Numeral placement, SonusProj ., 2015/04/22
Re: Roman Numeral placement, SonusProj ., 2015/04/21