Deutschsprachiges LilyPond-Forum

Spezielle Notation => Instrumentenspezifisch => Gitarre/Laute => Thema gestartet von: fabian am Montag, 21. September 2020, 13:24

Titel: Akkordnamen vom Typ Fis statt F#
Beitrag von: fabian am Montag, 21. September 2020, 13:24
Hallo, leider konnte ich nichts zu dem Thema finden, sondern lediglich Erklärungen dazu, wie sich das Kreuz hinter dem Akkordgrundbuchstaben ändern lässt (z.B. hochstellen, verkleinern etc.). Sollte ich was übersehen haben, dann tut es mir leid. Schickt mir den Link zu.

Also: Ich hätte die Akkordbezeichnung gerne in der Form "Fis" (für Fis-Dur) statt des standardmäßig eingestellten "F#". Wie sollte ich da vorgehen? Es müsste auch in Verbindung mit klein geschriebenen Buchstaben für Mollakkorde funktionieren, also bei \set chordNameLowercaseMinor = ##t.

Herzliche Grüße und besten Dank im Voraus.
Fabian
Titel: Antw:Akkordnamen vom Typ Fis statt F#
Beitrag von: harm6 am Montag, 21. September 2020, 21:02
https://archiv.lilypondforum.de/index.php/topic,1595.msg8838.html#msg8838 (https://archiv.lilypondforum.de/index.php/topic,1595.msg8838.html#msg8838)

Ich hoffe es funktioniert noch, ansonsten melde Dich.


Gruß,
  Harm
Titel: Antw:Akkordnamen vom Typ Fis statt F#
Beitrag von: Manuela am Dienstag, 22. September 2020, 14:41
Ich verwende standardmäßig folgenden Code:

\language "deutsch"
#(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 germanChords (chord-name->german-markup-text-alteration #t))

\layout {
 
  \context {
    \ChordNames
    chordNameLowercaseMinor = ##t
    chordRootNamer = #germanChords
    chordNoteNamer = #(chord-name->german-markup #f)
  }
 }
 
 \new ChordNames \chordmode {
  f h4 b:m fis es as:m
}
Titel: Antw:Akkordnamen vom Typ Fis statt F#
Beitrag von: fabian am Dienstag, 22. September 2020, 17:31
Liebe Manuela, lieber harm6, danke für Eure Antworten. Ich probier's gleich aus! Liebe Grüße, Fabian
Titel: Antw:Akkordnamen vom Typ Fis statt F#
Beitrag von: fabian am Dienstag, 22. September 2020, 17:43
Problem gelöst, Manuelas Code hat funktioniert! Danke!
Titel: Antw:Akkordnamen vom Typ Fis statt F#
Beitrag von: Manuela am Mittwoch, 23. September 2020, 21:21
Dann ändere doch bitte den Betreff, damit in der Übersicht zu sehen ist, dass das Problem gelöst ist  :)