Stück/score mit verschiedenen Systemlayouts

Begonnen von bersama, Montag, 30. September 2024, 16:47

« vorheriges - nächstes »

bersama

Ich schreibe Gospelmusik. Da gibt es im gleichen Lied oft Teile mit Soli, Teile, wo der ganze Chor den gleichen Rhytmus und Text hat, Teile mit abwechselnd Solo und Chor, und Teile, wo alle "durcheinander" singen, d.h. jede Stimme hat ihren eigenen Text und Rhytmus.

In meinem Kopf denke ich das am einfachsten so:

teilX = \new StaffGroup { bla bla einzeilig }
teilY = \new StaffGroup { bla bla zweizeilig, ein Text}
teilZ = \new StaffGroup { bla bla intrikat }

und dann hätte ich gerne einfach das hier:

\score {
\teilX \teilY \teilZ
}

Funktioniert das prinzipiell? Bei mir funktioniert es nicht, die Fehlermeldung ist "spurious expression". Mein Workaround ist

\score { \teilX }
\score { \teilY }
\score { \teilZ }

aber dann bekomme ich entweder keine Midi-Datei dazu, oder drei separate, jenachdem, wo ich einen bzw drei Midi-Blöcke einfüge.


Was wäre der richtige Ansatz für ein einheitliches Notendokument für ein einziges Lied, das aber unterschiedliche Systemlayoute für seine unterschiedlichen Liedteile braucht?

Minimalbeispiel (das den Fehler "spurious expression" produziert):

\version "2.24.3"

firstPart = \new Staff {
\new Voice \relative c' { c4 c c c }
}

secondPart = \new StaffGroup {
<<
  \new Staff \new Voice \relative c' { e4 e e e }
  \new Staff \new Voice \relative c' { g4 g g g }
>>
}


\score {
  \firstPart
  \secondPart
  \midi {}
  \layout {}
}

bersama

Inzwischen bin ich mithilfe eines anderen Threads (Danke, Malte! https://lilypondforum.de/index.php/topic,549.0.html) etwas weiter gekommen. Man muss (in einem score-Block) Klammern um die Variabelgruppe machen, damit andere als die erste nicht "spurious" werden. Check.

Folgefrage:

Warum geht das erste System zusammen mit dem zweiten denn weiter in meinem neuen Minimalbeispiel?

Bzw wie kann ich es wegmachen? Es gibt sowas wie "remove empty staves", aber bevor ich mich reinlese wo genau das hingehört und als was (/set, /context /with etc etc), warum geht das erste System überhaupt weiter, wenn dessen Noten doch zu Ende sind? Um eine Gleichzeitigkeit der Systeme kann es sich doch nicht handeln, sonst wären die Noten der zweiten Systeme ja gleich von Anfang an dabei, aber die werden eventuell als "empty staves" schon einfach weggelassen.

\version "2.24.3"

firstPart = \new Staff {
\new Voice \relative c' { c4 c c c }
}

secondPart = \new StaffGroup {
<<
  \new Staff \new Voice \relative c' { e4 e e e }
  \new Staff \new Voice \relative c' { g4 g g g }
>>
}


\score {
  { \firstPart \break
  \secondPart }
  \midi {}
  \layout {}
}


amateur

du kannst leere Systeme "verstecken" mit "\RemoveEmptyStaves". Siehe https://lilypond.org/doc/v2.25/Documentation/notation/hiding-staves.html

Dein Beispiek wäre dann:
firstPart = \new Staff {

\relative c' { c4 c c c \break}
}

secondPart = \new StaffGroup {
<<
  \new Staff \new Voice \relative c' { e4 e e e }
  \new Staff \new Voice \relative c' { g4 g g g }
>>
}


\score {
  { \firstPart
  \secondPart }
  \midi {}
  \layout  {  \context {
    \Staff
    \RemoveEmptyStaves
  }}
}