Deutsches Lilypond Forum (Archiv)

Allgemein => Hilfe beim Einstieg in Lilypond => Thema gestartet von: lilyputaner am Samstag, 14. November 2015, 22:51

Titel: Zentrierte Dynamik
Beitrag von: lilyputaner am Samstag, 14. November 2015, 22:51
Ich arbeite gerade an meinem ersten größeren Projekt mit Lilypond. Es handelt sich um ein Klaviersystem, bei dem die dynamischen und Ausdrucks-Anweisungen in der Mitte stehen sollen. Dabei mußte ich feststellen, dass  Dynamikbefehle in einer anderen Höhe angeordnet werden wie selbsterstellter Text. Trotz langem Suchens habe ich keine Möglichkeit gefunden, das abzustellen und bin dankbar  für Tipps dazu.

Hier noch ein Minimalbeispiel:

 \version "2.18.2"
 
 
 \score {\new PianoStaff
   <<
 \new Staff ="up"{  \relative c'' { c4 c    c  c  }    }
    
    
     \new Dynamics{
                    
                      s4\p

                    
                      
                      
                      s\< s\!
            
                      s^\markup{\italic dolce}
      }
      
      \new Staff ="down"{ \relative c'' { c4 c     c  c }    }
   
      
   >>}

Grüße und Danke!
Titel: Re: Zentrierte Dynamik
Beitrag von: harm6 am Sonntag, 15. November 2015, 12:22
Hallo lilyputaner,

willkommen im Forum.

Die NR (http://www.lilypond.org/doc/v2.19/Documentation/notation/expressive-marks-attached-to-notes#new-dynamic-marks) empfiehlt `make-dynamic-script' zu benutzen, das führt zu:

\version "2.18.2"

dolce = \tweak DynamicText.X-offset #-1
        #(make-dynamic-script #{ \markup \normal-text \italic "dolce" #})

\score {
  \new PianoStaff <<
      \new Staff ="up"
        \relative c'' { c4 c  c  c  }
   
      \new Dynamics {
        s4\p
        s\< s\!
        s-\dolce
      }
     
      \new Staff ="down"
        \relative c'' { c4 c  c  c }
  >>
}

Allerdings mußt Du dann jede eigene Anmerkung, die Du einfügen willst einzeln definieren.
Das kann auch von einer event-function erledigt werden:

\version "2.18.2"

myDyn =
#(define-event-function (parser location txt)(markup?)
  (let* ((mrkp #{ \markup \normal-text \italic $txt #})
         (dyn (make-dynamic-script mrkp)))
  #{
    \tweak DynamicText.X-offset #-1
    $dyn
  #}))
 
 
\score {
  \new PianoStaff <<
      \new Staff ="up"
        \relative c'' { c4 c  c  c  }
   
      \new Dynamics {
        s4\p
        s\< s\!
        s\myDyn "dolce"
      }
     
      \new Staff ="down"
        \relative c'' { c4 c  c  c }
  >>
}

Der X-offset-tweak kann eventuell noch angepasst werden.

HTH,
  Harm
Titel: Re: Zentrierte Dynamik
Beitrag von: fugenkomponist am Sonntag, 15. November 2015, 13:41
Alternativ könntest du den \dynamic-Befehl aus openlilylib verwenden. Aktuell liegt der Code dazu hier (https://github.com/openlilylib/snippets/tree/master/input-shorthands/easy-custom-dynamics). Das vereinfacht nicht nur Angaben wie „dolce“, sondern auch zusammengesetzte wie „più p“ (setzt più kursiv und das p als Dynamik-p).
Titel: Re: Zentrierte Dynamik
Beitrag von: lilyputaner am Montag, 16. November 2015, 21:59
Danke für die freundliche Begrüßung und Hilfe - es geht!