lilypond-user
[Top][All Lists]
Advanced

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

Re: How to engrave lowercase chord symbols


From: Thomas Morley
Subject: Re: How to engrave lowercase chord symbols
Date: Sat, 22 Oct 2016 15:22:38 +0200

2016-10-22 14:32 GMT+02:00 David Kastrup <address@hidden>:
> Thomas Morley <address@hidden> writes:
>>
>> Which input-syntax do you prefer for entering single bass-notes?
>
> These days I'd suggest <c> rather than c:1 .  A "true" accordion chord
> entry mode would likely provide capitalized pitch names like C, Dis,
> ... for the bass notes.  But for standard \chordmode, this seems
> easiest.

Then how about the below? Should work with both <c> and c:1
Always prints cis and ces not c#/cb, is this ok?
Be aware, it is not tested beyond the given example.

#(define-public (my-note-name->german-markup pitch lowercase?)
  (let* ((name (ly:pitch-notename pitch))
         (alt-semitones (inexact->exact (round (* (ly:pitch-alteration
pitch) 2))))
         (n-a (if (member (cons name alt-semitones) `((6 . -1) (6 . -2)))
                  (cons 7 (+ 1 alt-semitones))
                  (cons name alt-semitones)))
         (basic-list '("c" "d" "e" "f" "g" "a" "h" "b"))
         (list-to-use
           (if lowercase?
               basic-list
               (map string-upcase basic-list))))

    (make-line-markup
     (list
      (string-append
       (list-ref list-to-use (car n-a))
       (if (or (equal? (car n-a) 2) (equal? (car n-a) 5))
           (list-ref '( "ses" "s" "" "is" "isis") (+ 2 (cdr n-a)))
           (list-ref '("eses" "es" "" "is" "isis") (+ 2 (cdr n-a)))))))))

\layout {
  \context {
    \Score
    chordNameFunction =
      #(lambda (in-pitches bass inversion context)
        (if (= (length in-pitches) 1)
            (my-note-name->german-markup (car in-pitches) #f)
            (ignatzek-chord-names
              in-pitches bass inversion context)))
    chordNoteNamer =
      #(lambda (pitch lowercase?)
      (my-note-name->german-markup pitch #f))
    chordRootNamer =
      #(lambda (pitch lowercase?)
      (my-note-name->german-markup pitch #t))
  }
}

\new ChordNames \chordmode { cis:7 cis:m7 c:7/+c c:m7/+c <ces> cis:1 }

Cheers,
  Harm



reply via email to

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