Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: kilgore am Mittwoch, 5. August 2009, 13:48
-
Meine Klusters habe ich mit einem \markup gelöst.... Wenn, zB, d und dis direkt nebeneinander sind, kann ich so machen:
naturalplusflat = \markup { \natural \flat }
naturalplussharp = \markup { \natural \sharp }
\relative c' {
\once \override Accidental
#'stencil = #ly:text-interface::print
\once \override Accidental #'text = #naturalplussharp
\once \override Score.AccidentalPlacement #'right-padding = #1.5
<d dis>4
}
Aber wenn das Akkord komplizierter ist, sowie < d dis bes' es >, werden alle Vorzeichen mit meiner Lösung nach "naturalplussharp" geändert. Also das d/dis ist richtig, aber statt bes und es hat man b und e mit auflösezeichen und kreuz davor. \override scheint nicht innerhalb ein Akkord auf einzelne Töne zu gehen, nur auf das ganze Akkord. Vorschläge?
-
Genau was zu tun ist kann ich nicht sagen, aber tweak kann benutzt werden innerhalb eines Akkordes. Siehe 5.3.4 in den Notationsreferenz.
Hoffentlich hilfts
-
Und unten im NR 5.3.4 (http://lilypond.org/doc/v2.13/Documentation/user/lilypond/The-tweak-command.de.html) steht
Der \tweak-Befehl kann nicht eingesetzt werden, um Hälse, Balken oder Versetzungszeichen zu verändern,
Geht also nicht.
Aber kürzlich (http://lists.gnu.org/archive/html/lilypond-devel/2009-07/msg00342.html)hat ein angehende Entwickler diese einleuchtende Regel doch umgestossen.
Und ich habe eine nette Accidental-Eigenschaft entdeckt: restore-first
- für Missbrauch gerade prädestiniert.
Aus dieser Kombination resultiert, praktisch verpackt, folgende Definition:
naturalplus =
#(define-music-function (parser location mus) (ly:music?)
(set! (ly:music-property mus 'tweaks)
(acons 'before-line-breaking (lambda (grob)
(let ((accidental (ly:grob-object grob 'accidental-grob)))
(if (not (null? accidental))
(ly:grob-set-property! accidental 'restore-first #t))))
(ly:music-property mus 'tweaks))) mus)
Diese dann unmittelbar vor dem versetzten Akkord-Ton einsetzen:
{ <d' \naturalplus dis' bes' es''> }
Gruss
-
Super comper! Sehr elegante Lösung! Danke!