Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter https://lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at https://lilypondforum.de.
\version "2.19.52"\language "deutsch"chExceptionMusic = { <c es g b d'>1-\markup { \super \fontsize #1 "m" } <c>1-\markup { \null \hspace #-1.6 \fontsize #2 "_" } <c d>1-\markup { \null \hspace #-3.5 \fontsize #1.2 "__" }}chExceptions = #( append ( sequential-music-to-chord-exceptions chExceptionMusic #t) ignatzekExceptions)chordnotes = \chordmode { \set chordNameLowercaseMinor = ##t \set chordNameExceptions = #chExceptions c < c > < cis dis > c:m c:m9 c:m7 c:dim}\new ChordNames \chordnotes
\version "2.19.53"\language "deutsch"% copied from scm/chord-name.scm#(define (conditional-string-downcase str condition) (if condition (string-downcase str) str))% copied from scm/chord-generic-names.scm#(define (conditional-kern-before markup bool amount) "Add AMOUNT of space before MARKUP if BOOL is true." (if bool (make-line-markup (list (make-hspace-markup amount) markup)) markup))% copied from scm/chord-name.scm#(define (accidental->markup alteration) "Return accidental markup for ALTERATION." (if (= alteration 0) (make-line-markup (list empty-markup)) (conditional-kern-before (alteration->text-accidental-markup alteration) (= alteration FLAT) 0.094725)))% copied from scm/chord-name.scm, renamed, added make-underline-markup#(define (note-name->underlined-markup pitch lowercase?) "Return pitch markup for @var{pitch}." (make-underline-markup (make-line-markup (list (make-simple-markup (conditional-string-downcase (vector-ref #("C" "D" "E" "F" "G" "A" "B") (ly:pitch-notename pitch)) lowercase?)) (accidental->markup (ly:pitch-alteration pitch))))))\chords { c fis g:7 \set ChordNames.chordRootNamer = #note-name->underlined-markup c fis g:7}
counterbass= \once \set ChordNames.chordRootNamer = #note-name->underlined-markup\chords { c fis g:7 \counterbass g c fis g:7}
#(define ((chord-name->german-markup-text-alteration B-instead-of-Bb) pitch lowercase?) (define (pitch-alteration-semitones pitch) (inexact->exact (round (* (ly:pitch-alteration pitch) 2)))) (define (conditional-string-downcase str condition) (if condition (string-downcase str) str)) (let* ((name (ly:pitch-notename pitch)) (alt-semitones (pitch-alteration-semitones pitch)) (n-a (if (member (cons name alt-semitones) `((6 . -1) (6 . -1))) (cons 7 (+ (if B-instead-of-Bb 1 1) alt-semitones)) (cons name alt-semitones)))) (make-line-markup (list (make-simple-markup (conditional-string-downcase (vector-ref #("C" "D" "E" "F" "G" "A" "H" "B") (car n-a)) lowercase?)) (let ((alteration (/ (cdr n-a) 2))) (cond ((and (equal? lowercase? #f) (= alteration FLAT) (= (car n-a) 7)) (make-simple-markup "")) ((and (= alteration FLAT) (or (= (car n-a) 5) (= (car n-a) 2) )) (make-simple-markup "s")) ((= alteration FLAT) (make-simple-markup "es")) ((and (= alteration DOUBLE-FLAT) (or (= (car n-a) 5)(= (car n-a) 2) )) (make-simple-markup "ses")) ((= alteration DOUBLE-FLAT) (make-simple-markup "eses")) ((= alteration SHARP) (make-simple-markup "is")) ((= alteration DOUBLE-SHARP) (make-simple-markup "isis")) (else empty-markup)))))))
#(define (note-name->underlined-markup pitch lowercase?) "Return pitch markup for @var{pitch}." (make-underline-markup (make-line-markup (list (make-simple-markup ((chord-name->german-markup-text-alteration #f) pitch lowercase?))))))
\version "2.19.52"\language "deutsch"% copied from scm/chord-name.scm#(define (conditional-string-downcase str condition) (if condition (string-downcase str) str))% copied from scm/chord-generic-names.scm#(define (conditional-kern-before markup bool amount) "Add AMOUNT of space before MARKUP if BOOL is true." (if bool (make-line-markup (list (make-hspace-markup amount) markup)) markup))% copied from scm/chord-name.scm#(define (accidental->markup alteration) "Return accidental markup for ALTERATION." (if (= alteration 0) (make-line-markup (list empty-markup)) (conditional-kern-before (alteration->text-accidental-markup alteration) (= alteration FLAT) 0.094725)))% copied from scm/chord-name.scm, renamed, added make-underline-markup#(define (note-name->underlined-markup pitch lowercase?) "Return pitch markup for @var{pitch}." (make-underline-markup (make-line-markup (list (make-simple-markup (conditional-string-downcase (vector-ref #("C" "D" "E" "F" "G" "A" "B") (ly:pitch-notename pitch)) lowercase?)) (accidental->markup (ly:pitch-alteration pitch))))))#(define ((chord-name->german-markup-text-alteration B-instead-of-Bb) pitch lowercase?) (define (pitch-alteration-semitones pitch) (inexact->exact (round (* (ly:pitch-alteration pitch) 2)))) (define (conditional-string-downcase str condition) (if condition (string-downcase str) str)) (let* ((name (ly:pitch-notename pitch)) (alt-semitones (pitch-alteration-semitones pitch)) (n-a (if (member (cons name alt-semitones) `((6 . -1) (6 . -1))) (cons 7 (+ (if B-instead-of-Bb 1 1) alt-semitones)) (cons name alt-semitones)))) (make-line-markup (list (make-simple-markup (conditional-string-downcase (vector-ref #("C" "D" "E" "F" "G" "A" "H" "B") (car n-a)) lowercase?)) (let ((alteration (/ (cdr n-a) 2))) (cond ((and (equal? lowercase? #f) (= alteration FLAT) (= (car n-a) 7)) (make-simple-markup "")) ((and (= alteration FLAT) (or (= (car n-a) 5) (= (car n-a) 2) )) (make-simple-markup "s")) ((= alteration FLAT) (make-simple-markup "es")) ((and (= alteration DOUBLE-FLAT) (or (= (car n-a) 5)(= (car n-a) 2) )) (make-simple-markup "ses")) ((= alteration DOUBLE-FLAT) (make-simple-markup "eses")) ((= alteration SHARP) (make-simple-markup "is")) ((= alteration DOUBLE-SHARP) (make-simple-markup "isis")) (else empty-markup)))))))counterbass= \once \set ChordNames.chordRootNamer = #note-name->underlined-markup#(define germanChords (chord-name->german-markup-text-alteration #t))\chords { c fis g:7 \set ChordNames.chordRootNamer = #note-name->underlined-markup c fis g:7 \unset ChordNames.chordRootNamer cis \counterbass es:7 des:9 es}
Wenn ich das richtig verstehe, soll #(define ((chord-name->german-markup-text-alteration B-instead-of-Bb) pitch lowercase?) die Vorzeichen in ausgeschriebene deutsche Bezeichnungen umwandeln? Also F# -> Fis.
Bei mir wird die Methode aber gar nicht aufgerufen.
#note-name->underlined-markup
chord-name->german-markup-text-alteration
#(define (note-name->underlined-markup pitch lowercase?) "Return pitch markup for @var{pitch}." (define handle-sharp-flat (lambda (m) (let* ( (n (ly:pitch-alteration pitch)) (name (vector-ref #("C" "D" "E" "F" "G" "A" "B") (ly:pitch-notename pitch))) (isEorA (not(equal? (member name '( "E" "A" )) #f))) ) (cond (isEorA (cond ((= n 0) "") ((= n 1/2) "is") ((= n 1) "isis") ((= n -1/2) "s") ((= n -1) "ses"))) (else (cond ((= n 0) "") ((= n 1/2) "is") ((= n 1) "isis") ((= n -1/2) "es") ((= n -1) "eses"))) ) )) ) (let* ( (new-markup (make-underline-markup (make-line-markup (list (make-simple-markup (conditional-string-downcase (vector-ref #("C" "D" "E" "F" "G" "A" "B") (ly:pitch-notename pitch)) lowercase?) ) (make-simple-markup (handle-sharp-flat pitch )) ) ) ) )) new-markup ))
#(define (note-name->german-underlined-markup pitch lowercase?) (make-underline-markup (make-line-markup (list ((chord-name->german-markup-text-alteration #t) pitch lowercase?)))))germancounterbass= \once \set ChordNames.chordRootNamer = #note-name->german-underlined-markupcounterbass= \once \set ChordNames.chordRootNamer = #note-name->underlined-markup\new ChordNames \chordmode { a \germancounterbass cis \counterbass des }
germanNoteNamer= \once \set ChordNames.chordNoteNamer = #note-name->german-underlined-markup