\version "2.14.1"
\relative c'' {
a^\markup { \override #'(size . 2.1)
{
{
\override #'(fret-diagram-details . (
(orientation . landscape)
(barre-type . straight))) {
\fret-diagram-verbose #'((place-fret 1 2 1)
(place-fret 2 2 1)
(barre 2 1 2) )
}
}
}
} }
Die Funktion barre-thickness gibt es leider nicht. Kann ich vielleicht etwas mit einem einfachen \override erreichen?
\version "2.14.1"
\include "fret-diagrams.ly"
\relative c'' {
a^\markup { \override #'(size . 2.1)
{
{
\override #'(fret-diagram-details . (
(orientation . landscape)
(barre-thickness . 0.55) ; neu: barre-thickness
(barre-type . straight))) {
\fret-diagram-verbose #'((place-fret 1 2 1)
(place-fret 2 2 1)
(barre 2 1 2) )
}
}
}
} }
(define (make-straight-barre-stencil
fret-coordinate
start-string-coordinate
end-string-coordinate
half-thickness)
Ziel: Diese Definition unverändert lassen, um das Standardverhalten nicht zu beeinflussen. (barre-stencil
(cond
((eq? barre-type 'straight)
(make-straight-barre-stencil
barre-fret-coordinate
barre-start-string-coordinate
barre-end-string-coordinate
; scale-dot-radius)) ; replaced
scale-barre-thickness)) ; added barre-thickness-functionality
Variable | neue Variable | ||
Bedeutung | Punkt | Barré | Erläuterung |
Punktradius bzw. Barrédicke | dot-radius | barre-thickness | kann mit \override in den fret-diagram-details überschrieben werden |
Defaultwert | default-dot-radius | default-barre-thickness | Standardverhalten |
intern | scale-dot-radius | scale-barre-thickness | Übergabewert an die make-straight-barre-stencil-Funktion |
(dot-radius
(assoc-get
'dot-radius details default-dot-radius)) ; needed for draw-dots
; and draw-barre
[...]
(barre-thickness ; added barre-thickness-functionality
(assoc-get ; added barre-thickness-functionality
'barre-thickness details default-barre-thickness)) ; needed for straight draw-barre
(default-barre-thickness
(assoc-get 'default-barre-thickness details dot-radius)) ; added barre-thickness-functionality
Als Defaultwert von default-barre-thickness übergeben wir also den nun schon bekannten Wert von dot-radius - das bedeutet, den eventuell mit \override überschriebenen Wert von dot-radius oder eben dessen Defaultwert. (scale-dot-radius (* size dot-radius))
(scale-barre-thickness (* size barre-thickness)) ; added barre-thickness-functionality
(define (make-straight-barre-stencil
fret-coordinate
start-string-coordinate
end-string-coordinate
half-thickness)
Woher wusstest du so genau, was du machen musst?
Hätte es eigentlich auch gereicht die nachstehende Definition zu ändern, d.h. aus half-thickness eine Art full-thickness zu machen?
[...]Code: [Auswählen](define (make-straight-barre-stencil
fret-coordinate
start-string-coordinate
end-string-coordinate
half-thickness)
(make-line-stencil
half-thickness
(car start-point)
(cdr start-point)
(car end-point)
(cdr end-point))))
Das hätte dann natürlich das Standardverhalten geändert... was ich aber nicht schlimm gefunden hätte, weil ich den Barre-Standard noch nie irgendwo gesehen habe.