Dynamik und Liedtext tauschen

Begonnen von FionaFelamìn, Dienstag, 16. August 2022, 12:01

« vorheriges - nächstes »

FionaFelamìn

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 { }
 
}

harm6

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


FionaFelamìn

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

harm6

\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

Manuela

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?
Danke für eure Hilfe
viele Grüße
-- Manuela