Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: kilgore am Mittwoch, 5. August 2009, 13:48

Titel: Komplizierte Vorzeichen
Beitrag 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?
Titel: Re: Komplizierte Vorzeichen
Beitrag von: derHindemith am Mittwoch, 5. August 2009, 19:04
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
Titel: Re: Komplizierte Vorzeichen
Beitrag von: comper am Donnerstag, 6. August 2009, 01:04
Und unten im NR 5.3.4 (http://lilypond.org/doc/v2.13/Documentation/user/lilypond/The-tweak-command.de.html) steht 
Zitat
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
Titel: Re: Komplizierte Vorzeichen
Beitrag von: kilgore am Freitag, 7. August 2009, 10:13
Super comper!  Sehr elegante Lösung!  Danke!