Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: chf am Montag, 10. Oktober 2011, 19:43

Titel: "kombinierte" Scripts
Beitrag von: chf am Montag, 10. Oktober 2011, 19:43
Liebe Freunde,

\version "2.12.3"

\relative c'' {

\once \override Script #'padding = #1 \extendLV #0.5 ais'4.-.--\sf\laissezVibrer
}
 setzt nur das obere Zeichen höher, es müssen aber beide gleichmäßig verschoben werden.
Ich freue mich auf die Lösung des Problems.

Gruß
chf
Titel: Re: "kombinierte" Scripts
Beitrag von: harm6 am Montag, 10. Oktober 2011, 22:47
Hallo Christa,

wer nicht zufällig weiß, daß \extendLV ... aus einem LSR-Snippet (http://lsr.dsi.unimi.it/LSR/Item?id=715) stammt, kann mit Deinem Code-Schnipsel nichts anfangen. ;)

Aber hier ein paar Lösungsansätze:

Dein \once \override Script #'padding = #1 wirkt schon. Allerdings auf beide Script-Zeichen gleichzeitig und im selben Umfang. (Deutlich sichtbar bei höheren padding-Werten.)

Wenn Du das nicht willst, mußt Du die einzelnen Zeichen mit einem tweak-Befehl ansprechen:

\version "2.12.3"

% http://lsr.dsi.unimi.it/LSR/Item?id=715

extendLV =
   #(define-music-function (parser location further) (number?)
      #{
        \once \override LaissezVibrerTie  #'X-extent = #'(0 . 0)
        \once \override LaissezVibrerTie  #'details #'note-head-gap = #(/ $further -2)
        \once \override LaissezVibrerTie  #'extra-offset = #(cons (/ $further 2) 0)
      #})

\relative c'' {

\once \override Script #'padding = #5 \extendLV #0.5 ais'4.-.--\sf\laissezVibrer
}

% so:

\relative c'' {

\extendLV #0.5 ais'4.-\tweak #'padding #'2 -.--\sf\laissezVibrer
}

% oder so:

\relative c'' {

\extendLV #0.5 ais'4.-\tweak #'padding #'2 -.-\tweak #'padding #'0.5 --\sf\laissezVibrer
}


Gruß,
  Harm

P.S. Es gibt auch noch esoterischere Lösungen:
a) den tweak-Befehl mit dem padding-property und dem Script-Zeichen in eine Variable packen -> NR 6.7 Using Scheme code instead of \tweak (http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Using-Scheme-code-instead-of-_005ctweak#Using-Scheme-code-instead-of-_005ctweak)
b) Eine Funktion entwerfen, die das macht nach dem Vorbild von tweak aus music-functions-init.ly.
c) Die Methode(n) die hier (http://old.nabble.com/placement-sostenuto-td32525088.html) entwickelt wurden.

Aber für den vorliegenden Fall scheint mir das alles zu sehr in Richtung overkill zu gehen. ;)

Titel: Re: "kombinierte" Scripts
Beitrag von: chf am Dienstag, 11. Oktober 2011, 15:03
Hallo Harm,
pardon - \extendLV - ich dachte, alles was ich weiß wissen andere erst recht.

\extendLV #0.5 ais'4.-\tweak #'padding #'2 -.--\sf\laissezVibrer

ist sehr schön - ohne Esoterik (herrlich!). Ich hab's sowieso lieber fassbar.
Die Verwandtschaft mit der Lösung für differenziertes Versetzen war mir schon klar, aber in welchem Verhältnis?

Dank und Gruß
Christa
Titel: Re: "kombinierte" Scripts
Beitrag von: harm6 am Dienstag, 11. Oktober 2011, 22:33
Hallo Christa,

Zitat
Die Verwandtschaft mit der Lösung für differenziertes Versetzen war mir schon klar, aber in welchem Verhältnis?

Meinst Du den Unterschied zwischen \tweak und \override?


Vgl. auch den unterschiedlichen output hier (aber auch die andere Syntax):

\relative c'' {
        a'-\tweak #'font-size #10 -\tweak #'color #red -.--
}

\relative c'' {
        \once \override Script #'font-size = #10
        \once \override Script #'color = #red
        a'-.--
}

Gruß,
  Harm
Titel: Re: "kombinierte" Scripts
Beitrag von: chf am Mittwoch, 12. Oktober 2011, 19:31
Hallo Harm,

im September hatte ich eine Frage gestellt zum unterschiedlichen Versetzen von Scripts (Artikulation und Flageolet). Die hast du auch beantwortet. Darauf bezieht sich meine Bemerkung.
Aber Dank für deine Erläuterung - mit "tweak" konnte ich bislang gar nicht selbständig umgehen...

Gruß
Christa