Akkordnamen vom Typ Fis statt F#

Begonnen von fabian, Montag, 21. September 2020, 13:24

« vorheriges - nächstes »

fabian

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

harm6


Manuela

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
}
Danke für eure Hilfe
viele Grüße
-- Manuela

fabian

Liebe Manuela, lieber harm6, danke für Eure Antworten. Ich probier's gleich aus! Liebe Grüße, Fabian

fabian

Problem gelöst, Manuelas Code hat funktioniert! Danke!

Manuela

Dann ändere doch bitte den Betreff, damit in der Übersicht zu sehen ist, dass das Problem gelöst ist  :)
Danke für eure Hilfe
viele Grüße
-- Manuela