Autor Thema: Einzelne Liedtextzeile im Layoutblock formatieren  (Gelesen 2029 mal)

Notensatzzweifel

  • Gast
Einzelne Liedtextzeile im Layoutblock formatieren
« am: Sonntag, 5. Juni 2016, 11:30 »
Ich habe zwei Textzeilen an meine Notenzeile montiert. \context Lyrics = "Text_unten" {
      \lyricsto "melody" {
     
\override LyricText.font-shape = #'normal
      }

    }
     \context Lyrics = "Text_Oben" {
      \lyricsto "melody" {
\override LyricText.font-shape = #'italic
      }

    }

Ich möchte die Textzeilen unterschiedlich formatieren.  Bloß ich möchte diese Formatierungen aus pragmatischen Gründen in den Layoutbloch schreiben.
So weit bin ich gekommen
\layout {
  \context {
\Lyrics
\override  LyricText.font-size = #'4


  }

}

Aber das betifft dann beide Zeilen. Wie differneziere ich im Layoutblock zwischen Text_Oben und Text_Unten?

fugenkomponist

  • Gast
Re: Einzelne Liedtextzeile im Layoutblock formatieren
« Antwort #1 am: Sonntag, 5. Juni 2016, 12:53 »
Der \layout-Block definiert Einstellungen für Kontexte global. Ich glaube nicht, dass man da einzelne Kontexte ansprechen kann, habe etwas derartiges nie gesehen (und würde meinem Verständnis des \layout-Blocks auch widersprechen).

Einstellungen, die für einen kompletten (einzelnen) Kontext gelten, packe ich immer in den \with-Block. Ist dann näher am entsprechenden Kontext dran, aber immer noch an einer klar definierten Stelle.

Was noch möglich ist: Im \layout-Block global gültige Einstellungen definieren und die dann für einzelne Kontexte im \with-Block wieder überschreiben.

harm6

  • Gast
Re: Einzelne Liedtextzeile im Layoutblock formatieren
« Antwort #2 am: Sonntag, 5. Juni 2016, 12:58 »
Das \layout enthält Setzungen, die für alle Contexte dieses Namens gelten, je nachdem auch für Aliasse...
Um einzelne Contexte differenziert anzusprechen gibt es \with, das führt zu:

frst-with =
\with { \override LyricText.color = #cyan }

scnd-with =
\with { \override LyricText.font-shape = #'italic }

<<
  \new Voice = "v" { c''1 }
  \new Lyrics \frst-with \lyricsto "v" { foo }
  \new Lyrics \scnd-with \lyricsto "v" { bar }
>>

Allerdings kann man natürlich einen neuen Context definieren, das führt zu:

\version "2.19.42"

myLayout =
\layout {
  \context {
    \Lyrics
    \name "Lyrics"
    \override LyricText.font-shape = #'normal
    \override LyricText.color = #cyan
  }
  \context {
    %% copy all from "Lyrics"
    \Lyrics
    %% give it a name
    \name "CustomLyrics"
    %% let all functionality for Lyrics work with CustomLyrics as well
    \alias "Lyrics"
    %% custom settings
    \override LyricText.font-shape = #'italic
    \revert LyricText.color
  }
  %% let the new context be accepted by other contexts
 
  %% since 2.19.26 use next line to get all which holds for
  %% Lyrics as well
  \inherit-acceptability "CustomLyrics" "Lyrics"
 
  %% oherwise do it manually
  %\context {
  %  \Score
  %  \accepts "CustomLyrics"
  %}
  %% add the same for every context where `CustomLyrics` may happen
  %% p.e. StaffGroup, ChoirStaff ...
}

\score {
<<
  \new Voice = "v" { c''1 }
  \new Lyrics \lyricsto "v" { foo }
  \new CustomLyrics \lyricsto "v" { bar }
>>
\layout { \myLayout }
}

Beachte, daß obiger Code für neuere devel-Versionen geschrieben ist, für 2.18.2 lies die Kommentare.


Notensatzzweifel

  • Gast
Re: Einzelne Liedtextzeile im Layoutblock formatieren
« Antwort #3 am: Sonntag, 5. Juni 2016, 16:53 »
So wie deine Lösung aussieht, scheint die für mich brauchbar zu sein. Danke.

Der \layout-Block definiert Einstellungen für Kontexte global. Ich glaube nicht, dass man da einzelne Kontexte ansprechen kann, habe etwas derartiges nie gesehen (und würde meinem Verständnis des \layout-Blocks auch widersprechen).
(und würde meinem Verständnis des \layout-Blocks auch widersprechen).
Ich weiß nicht, was Du damit meinst. Aber unterschiedlich formatierte Strophen habe ich schon öfters gesehen.

Aber, wenn jemand jetzt ein Konzept verfolgt. Sagen wir Kinderlieder mit Liedtext und Rhythmussprache zu setzen, und diese durch Formatierung besser unterscheidbar zu machen, dann hat das einen Sinn.

Je mehr Musikpädagogen, Chorleiter etc. ihre Material selbersetzen wollen, desto fähiger müssen die Programme sein über die Grenzen des konventionellen Notensatzes hinauszugehen.

fugenkomponist

  • Gast
Re: Einzelne Liedtextzeile im Layoutblock formatieren
« Antwort #4 am: Sonntag, 5. Juni 2016, 18:12 »
Der \layout-Block definiert Einstellungen für Kontexte global. Ich glaube nicht, dass man da einzelne Kontexte ansprechen kann, habe etwas derartiges nie gesehen (und würde meinem Verständnis des \layout-Blocks auch widersprechen).
(und würde meinem Verständnis des \layout-Blocks auch widersprechen).
Ich weiß nicht, was Du damit meinst. Aber unterschiedlich formatierte Strophen habe ich schon öfters gesehen.
Ich meinte, dass ich nie gesehen hab, dass man per \layout einzelne Kontexte anspricht.
Zitat
Aber, wenn jemand jetzt ein Konzept verfolgt. Sagen wir Kinderlieder mit Liedtext und Rhythmussprache zu setzen, und diese durch Formatierung besser unterscheidbar zu machen, dann hat das einen Sinn.

Je mehr Musikpädagogen, Chorleiter etc. ihre Material selbersetzen wollen, desto fähiger müssen die Programme sein über die Grenzen des konventionellen Notensatzes hinauszugehen.
Natürlich hat es einen Sinn, ich habe nie etwas anderes behauptet! Und das hier hat mit unkonventionellem Notensatz nichts zu tun, mehrere Strophen in verschiedener Formatierung (z. B. kursiv/nicht kursiv) gibts ja dauernd.

Wo du es aber gerade erwähnst: Ich habe das Gefühl, dass du eine sehr skeptische/kritische Grundeinstellung LilyPond gegenüber hast (geht schon bei deinem Namen und dem ersten Thread los ;) ), wie kommt das? LilyPond kann unglaublich viel, was über den „konventionellen Notensatz“ hinausgeht und hat auch innerhalb dieser Grenzen große Stärken, du klingst aber so, als wärst du da anderer Meinung.