Dynamics auf eine einzige Note - GELÖST-

Begonnen von Swetom2011, Freitag, 3. Februar 2023, 14:45

« vorheriges - nächstes »

Swetom2011

Hallo,
ich bin dabei ein Werk von dem schwedischen Komponisten Stenhammar fertigzustellen. Eigentlich ist alles fertig, aber jetzt geht es um die Feinheiten. Das Werk hat sehr viel "Dynamics".

Das erste Bild zeigt die handschriftliche Partitur vom den Komponisten selbst und das zweite Bild was ich bisher geschafft habe.
- das erste fzp hairpin molto hairpin ist nicht so schlecht, aber muss vertikal auf eine Linie sein
- die zwei \espressivo versuche sind auch nicht gut und man müsste dann das \espressivo verändern. Ausseerdem bekomme ich eine Fehlermeldung

Wie kann ich es so bekommen, wie es im Originalpartitur geschrieben ist?
Mein Lilypond Code zum Üben ist wie folgt:

\version "2.22.2"

\layout {
        \context {
        \Staff \RemoveEmptyStaves
        \override Hairpin.minimum-length = #8
        \override DynamicTextSpanner.style = #'none
        }
}
       
fzp = #(make-dynamic-script (markup #:line (
#:dynamic "fz" #:hspace -0.5
#:dynamic "p" )))

mol = \markup { \center-align \line {
              \hspace #-0.5 \normal-text \italic molto } }

molDynamic = #(make-dynamic-script mol)


\relative c''{
  \key es \major
  \time 4/4
    e,2 ( \> d4) \tuplet 3/2 { b8( \pp \< cis d) }
    d1 \fzp \<( cis4) \> r \pp r2
    <<
    d1 \fzp { s4 s\< s\> \molDynamic s\! }
    >>
    R1
    d1\fzp \espressivo
    R1
    <<
    d1 \fzp { s4 s2 \espressivo s4}
    >>
 }

lfm

Für solche Dinge ist die \after-Funktion sehr hilfreich. Man kann ihre Definition manuell in den Quelltext einfügen, aber irgendwann in der 2.23er-Versionsreihe habe ich die (schon lange kursierende) Funktion ins Hauptprogramm integriert, so dass Du sie in 2.24 einfach verwenden könntest. Im englischsprachigen Handbuch gibt es Beispiele: https://lilypond.org/doc/v2.24/Documentation/notation/expressive-marks-attached-to-notes.html#dynamics

In deinem Fall würde ich, wie du, die Dynamiken einzeln zusammenbauen (also ohne \espressivo). Man muss nur für eine lückenlose Reihen von Dynamiken sorgen, damit die vertikale Ausrichtung stimmt, also etwa:

\version "2.24.0"

\layout {
  \override Hairpin.minimum-length = #14
}

fzp = #
(make-dynamic-script
 (markup #:line (#:dynamic "fz"
                 #:hspace -0.5
                 #:dynamic "p")))

mol = \markup {
  \center-align \line {
    \hspace #-0.5 \normal-text \italic molto
  }
}

molDynamic = #(make-dynamic-script mol)

{
  <>\fzp\<
  \after 2 \molDynamic
  \after 2 \>
  \after 1 \!
  d'1
}

Ich habe mir irgendwann abgewöhnt,
s8\p zu schreiben, weil die Reihenfolge so unintuitiv ist: "Bevor ein Achtel wartest, setze ein piano." Ich schreibe jetzt immer
<>\p s8benutze also einen leeren Akkord (der keine Dauer hat) zum Unterbringen der Dynamik. Das ist mehr Tipparbeit, aber viel weniger verwirrend. Eigentlich wollte ich schon lange die Beispiele im Handbuch auf diese Konvention umstellen, bin aber bislang noch nicht dazugekommen...

Swetom2011

Vielen Dank, werde ich ausprobieren. Allerdings das es Kompatibilitätsprobleme gibt zwischen  2.24 und 2.22.2 muss ich dann zuerst mein Werk mit 2.24 zum Laufen bringen. Ich habe einmal versucht mit ein Haufen Fehlermeldungen. Muss wohl concert-ly benutzen. Das wäre dann das erste Mal für mich 🫣

Rudi Guggt

#3
Hallo,

Zitat von: Swetom2011 am Freitag,  3. Februar 2023, 21:59Muss wohl concert-ly benutzen.

nein, concert.ly ist für das automatische Komponieren und Aufführen ganzer Konzerte.  ;)

Du brauchst convert.ly!

Gruß
Rudi

Swetom2011

Stimmt, da hat sich ein Schreibfehler herein geschlichen :-[ .

Ich habe mit convert-ly versucht aber bin nicht schlau darüber wie es gehen soll, jedenfalls kennt mein Recher das  convert-ly nicht und so einfach wie es im Handbuch steht mit "convert-ly -e myfile.ly" geht's natürlich auch nicht.

Ich kann dann zwar das program laufen lassen wenn ich zuerst zum richtigen Ordner navigiere, aber das startet in meinem Fall nur Visual Studio Code.

Letztendlich habe ich aufgegeben und alle etwa 100 files über Frescobaldi konvertiert ??? .  Ob das auch per Batch möglich ist, weiß ich nicht.

Jedenfalls, jetzt get's zuerst weiter. Das mit convert-ly versuche ich später zum laufen zu bringen.

Swetom2011

Also, es funktioniert recht gut mit \after aber ich verstehe das Syntax nicht ganz, z. B. bei \after 2, wofür steht die Zahl "2"?

Aber jetzt zu mein Problem.  Ich habe jetzt versucht durchgehend das \after Funktion zu benutzen.  Es sieht auch recht gut aus in die einzelne Stimmen, aber bei \parcombine sieht es nicht so gut aus.  Das erste Bild zeigt eine einzelne Stimme (in diesem Fall Horn 1), aber bei Horn 2 sieht es ähnlich aus.

Der Lilypondcoe dafür ist hier.

\version "2.24.0"

\layout {
  \override Hairpin.minimum-length = #14
}
 
fzp = #
(make-dynamic-script
 (markup #:line (#:dynamic "fz"
                #:hspace -0.5
                #:dynamic "p")))

mol = \markup {
  \center-align \line {
    \hspace #-0.5 \normal-text \italic molto
  }
}

molDynamic = #(make-dynamic-script mol)

rinfor = \markup { \center-align \line {
              \hspace #-0.5 \normal-text \italic rinforz. } }

rinforDynamic = #(make-dynamic-script rinfor)

\relative c''{
  \key es \major
  \time 4/4
      r2 r4 <<bes \pp  {s \<}>>
 
<>\fzp\<
  \after 2 \molDynamic
  \after 2 \>
  \after 1 \!
  bes1 (

<>\>
  \after 2 \pp
  a1)   
}

Du darfst diesen Dateianhang nicht ansehen.

Im Partitur benutze ich \partcombine um zwei Hornstimmen auf ein Staff zu bekommen, d.h. durch

\new Staff = "horns" {
    \set Staff.instrumentName = "Corno I, II"
    \set Staff.shortInstrumentName = "Cor. I, II"
    \partCombine
    \HornOne
    \HornTwo   
}

Das Ergebnis ist allerdings nicht so schön, siehe Bild.  Die Dynamics sind oben und unten am Staff zu sehen.  Das kann ich eventuell mit ein Tag lösen.  Benutze ich so wie so be den Stichnoten aber ist das, das problem hier?

Du darfst diesen Dateianhang nicht ansehen.

Wie kann man das Problem lösen?

Swetom2011

Ich habe bei \partcombine die Dynamics mit ein Tag versehen "ScoreOnly" und "PartsOnly" und dann entsprechend in Parts und Score das richtige ausgewählt.

Das hat gut funktioniert.  Es gibt sicherlich andere verbesserungswürdige stellen im Score/Parts die noch verbessert werden muss.  Falls ich weitere Problem bekomme, mache ich neuen Beitrag dazu.

Danke für die Hilfe bisher.