Inhaltlich sinnvollere Aufteilung der include Skripte
This commit is contained in:
97
chord_settings.ly
Normal file
97
chord_settings.ly
Normal file
@ -0,0 +1,97 @@
|
||||
% Akkorde können auch geklammert sein
|
||||
#(define (parenthesis-ignatzek-chord-names in-pitches bass inversion context)
|
||||
(markup #:line ( "(" (ignatzek-chord-names in-pitches bass inversion context) ")" )))
|
||||
klamm = #(define-music-function (parser location chords) (ly:music?)
|
||||
#{
|
||||
\set chordNameFunction = #parenthesis-ignatzek-chord-names
|
||||
$chords
|
||||
\set chordNameFunction = #ignatzek-chord-names
|
||||
#})
|
||||
|
||||
bchord =
|
||||
#(define-music-function (parser location chords) (ly:music?)
|
||||
#{
|
||||
\override ChordName.font-series = #'bold
|
||||
$chords
|
||||
\revert ChordName.font-series
|
||||
#})
|
||||
|
||||
% kleine Mollakkorde und Alteration ausgeschrieben
|
||||
#(define (note-name->german-markup-nosym pitch lowercase?)
|
||||
(define (pitch-alteration-semitones pitch) (inexact->exact (round (* (ly:pitch-alteration pitch) 2))))
|
||||
(define (accidental->markup alteration name)
|
||||
(if (= alteration 0)
|
||||
(make-line-markup (list empty-markup))
|
||||
(if (= alteration FLAT)
|
||||
(if (equal? name "B")
|
||||
""
|
||||
; (make-line-markup (list (make-hspace-markup 0.2)
|
||||
; (make-tiny-markup (make-raise-markup 1.2
|
||||
; (make-musicglyph-markup (assoc-get alteration standard-alteration-glyph-name-alist ""))))
|
||||
; ))
|
||||
(if (or (equal? name "E") (equal? name "A")) "s" "es"))
|
||||
"is")
|
||||
))
|
||||
(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 . -2)))
|
||||
(cons 7 (+ 0 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?))
|
||||
(accidental->markup (/ (cdr n-a) 2) (vector-ref #("C" "D" "E" "F" "G" "A" "H" "B") (car n-a)) ))))
|
||||
)
|
||||
|
||||
% additional bass notes should get uppercased
|
||||
#(define (bassnote-name->german-markup-nosym pitch lowercase?)(note-name->german-markup-nosym pitch #f))
|
||||
|
||||
generalLayout = \layout {
|
||||
\generalLayout
|
||||
\context {
|
||||
\ChordNames
|
||||
\semiGermanChords
|
||||
\override ChordName.font-size = \songScoreChordFontSize
|
||||
\override ChordName.font-series = \songChordFontSeries
|
||||
\override ChordName.font-family = #'roman
|
||||
chordNameLowercaseMinor = ##t
|
||||
chordChanges = ##t
|
||||
% eigenen chordRootNamer damit F# = Fis und Gb = Ges (also alteration ausgeschrieben)
|
||||
chordRootNamer = #note-name->german-markup-nosym
|
||||
chordNoteNamer = #bassnote-name->german-markup-nosym
|
||||
majorSevenSymbol = "maj7"
|
||||
% der baseline-skip der Akkorde beeinflusst, wie hoch die Hochstellung ist
|
||||
\override ChordName.baseline-skip = #1.0
|
||||
}
|
||||
}
|
||||
|
||||
verseChordLayout = \layout {
|
||||
\generalLayout
|
||||
\context {
|
||||
\ChordNames
|
||||
\override ChordName.font-size = \songTextChordFontSize
|
||||
}
|
||||
}
|
||||
|
||||
% Akkord mit Bunddiagramm anzeigen
|
||||
#(define-markup-command (fret-chord layout props fret chord) (string? string?)
|
||||
(interpret-markup layout props
|
||||
#{ \markup { \override #'(baseline-skip . 2)
|
||||
\center-column {
|
||||
\score { \new ChordNames { #(if (< (list-ref (ly:version) 1) 19)
|
||||
(ly:parser-include-string parser (string-append "\\chordmode { s4 " chord " }"))
|
||||
(ly:parser-include-string (string-append "\\chordmode { s4 " chord " }"))
|
||||
) } \layout { \generalLayout } }
|
||||
\override #'(fret-diagram-details . (
|
||||
(barre-type . straight))) {
|
||||
\fret-diagram-terse #fret
|
||||
}
|
||||
}
|
||||
}
|
||||
#}))
|
Reference in New Issue
Block a user