Deutschsprachiges LilyPond-Forum

Spezielle Notation => Gesang => Thema gestartet von: FionaFelamìn am Dienstag, 16. August 2022, 12:01

Titel: Dynamik und Liedtext tauschen
Beitrag von: FionaFelamìn am Dienstag, 16. August 2022, 12:01
Hallo,

ich schreibe einen Chorsatz, bei dem über dem System Text steht und hätte gern die Dynamikbezeichnungen dadrüber (also nicht zwischen den Noten und dem Text, wie es im Beispiel aussieht). Wahrscheinlich ist die Frage banal, aber ich krieg es grad nicht raus ...

Wäre sehr dankbar für einen Tipp, selbst wenn es nur das Schlagwort ist, dass ich googlen muss.

LG, Fiona


\version "2.22.0"

global = {
  \key c \major
  \time 4/4
}

soprano = \relative c' {
  \global
  \dynamicUp
 
  c2\p \< d4 e | f \! \f \> g a2\!
  }



sopranoVerse = \lyricmode {
Was für ein schö -- es Lied
 
}

\score {
  \new ChoirStaff <<
    \new Staff = "s" \with {     
    } <<
      \new Voice = "soprano" { \voiceOne \soprano }
          >>
    \new Lyrics \with {
      alignAboveContext = "s"
    } \lyricsto "soprano" \sopranoVerse
      >>
  \layout { }
 
}
Titel: Antw:Dynamik und Liedtext tauschen
Beitrag von: harm6 am Mittwoch, 17. August 2022, 22:40
So wie Du die dynamischen Zeichen eingegeben hast, d.h. angehängt an die Noten einer Voice, können sie nicht jenseits/über dem Inhalt eines anderen Contexts (hier Lyrics) ausgegeben werden.

Stattdessen verwende einen extra Dynamics Context (und justiere die Abstände ein klein wenig):

\version "2.22.0"

global = {
  \key c \major
  \time 4/4
}

soprano = \relative c' {
  \global
  c2 d4 e | f g a2
}

sopranoVerse = \lyricmode {
  Was für ein schö -- nes Lied
}

\score {
  \new ChoirStaff <<
%% >>>>>>>>>>>>>>>>>>>>>
    \new Dynamics \with {
      \override VerticalAxisGroup.nonstaff-nonstaff-spacing.padding = 1
    }
    { s1\p\< s2\f\> s\! }
%% <<<<<<<<<<<<<<<<<<<<<
    \new Staff = "s" \with {     
    } <<
        \new Voice = "soprano" { \voiceOne \soprano }
      >>
    \new Lyrics \with {
      alignAboveContext = "s"
    } \lyricsto "soprano" \sopranoVerse
  >>
  \layout { }
}

Gruß,
  Harm
Titel: Antw:Dynamik und Liedtext tauschen
Beitrag von: FionaFelamìn am Freitag, 2. September 2022, 09:10
1000 Dank!
Titel: Antw:Dynamik und Liedtext tauschen
Beitrag von: FionaFelamìn am Freitag, 24. Mai 2024, 11:10
Hallo,

das hat damals super geklappt, jetzt hab ich ein paralleles Problem versucht, parallel zu lösen:

markup oberhalb von den Akkordsymbolen wäre jetzt mein Traum. Dynamik kriege ich mit diesem Trick drüber, aber ich schaffe es nicht, im Dynamics-Kontext markup zu verwenden, obwohl ich gehofft hatte, dass das vielleicht einfach gehen würde (und nicht ganz unlogisch wäre, weil es Vortragsbezichnungen sind).

Geht das prinzipiell?

LG, Fiona
Titel: Antw:Dynamik und Liedtext tauschen
Beitrag von: harm6 am Samstag, 25. Mai 2024, 11:21
\version "2.24.3"

<<
  \new Dynamics
    \with { \override VerticalAxisGroup.nonstaff-nonstaff-spacing.padding = 1 }
    { \textLengthOn s1-"C-Dur" s1-"D-Dur" }
  \new ChordNames
    { c1 d }
>>

funktioniert.
Oder meinst Du was anderes?

Gruß,
  Harm
Titel: Antw:Dynamik und Liedtext tauschen
Beitrag von: Manuela am Mittwoch, 5. Juni 2024, 18:32
Ich finde jetzt das Snippet für die Verwendung von markup im Dynamics Context nicht, deswegen kopiere ich den Code hier rein

\version "2.25.7"
\language "deutsch"

dynamictext =
#(define-event-function (text) (markup?)
   (if (string? text)
       (let* ((underscores-replaced
               (string-map
                (lambda (x) (if (eq? x #\_) #\space x))
                text))
              (split-text (string-split underscores-replaced #\space))
              (formatted (map
                          (lambda (word)
                            (if (string-match "^[mrzfps]*$" word)
                                (markup #:dynamic word)
                                (markup #:normal-text #:italic word)))
                          split-text)))
         #{
           #(make-dynamic-script (make-line-markup formatted))
         #})
       ;; user provided a full-blown markup, so we don't mess with it:
       #{
         #(make-dynamic-script (markup #:normal-text text))
       #}))

{
  c''4\dynamictext
  \markup {
    \fontsize #4 \dynamic "p" \italic \fontsize #2 "dolce"
    \bold "poco a poco diminuendo"
    \italic "a tempo" \typewriter "brilliante"
  }
}

Ist es das, was du wolltest?