[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