Voice zu Staff hinzufügen, in existierendem Part

Begonnen von C_E, Freitag, 1. Oktober 2021, 11:41

« vorheriges - nächstes »

C_E

Hallo liebe Leute,

Die Überschrift ist etwas kryptisch, ich kann das Problem nicht so recht beschreiben.
Hier ist ein Minimalbeispiel:

\version "2.22.1"

PianoPart = \new PianoStaff
  <<
    \new Staff = "RH" \relative c'' {
      c4 c c c |
      c c |
      R1 |
    }
    \new Staff = "LH" \relative c {
      \clef bass
      f,1 |
      f2 |
      R1 |
    }
  >>
 
Strukt = \relative c'' {
  \time 4/4
  s1 |
  \time 2/4
  s2 |
  \time 4/4
  s1 |
  \bar "|."
}

% Sowas stelle ich mir vor...
% "RH" = << \RH \\ \Strukt >>

\score {
  \PianoPart
}


Der Grund für diese Arbeitsweise ist, dass ich für eine Partitur mit Klavier die 'Struktur', also Taktwechsel..., ausgelagert habe in eine extra Datei. Für die Erstellung der Partitur habe ich diese Struktur in der obersten Stimme als Voice mit eingebunden, aber wenn ich jetzt die Stimmauszüge machen will (z.B. fürs Klavier), ist diese Struktur nicht vorhanden.
Deshalb wäre es toll, wenn man den schon vorhandenen kompletten PianoPart aufrufen könnte und eine weitere Voice in die rechte Hand hinzufügen.

Vielleicht wäre es einfacher, die Struktur von vorne herein in jeder Stimme zu haben? Ich dachte mir, dass das nicht so 'sauber' ist, weil das für die Partitur nur unnötige Kompilierungsarbeit erfordert?

Danke schonmal,
Caspar

Arnold

#1
Hallo Caspar,

du meinst wohl so etwas wie:
\score {
  <<
    \PianoPart
    \context Staff = "RH" \new Voice \Strukt
  >>
}

Also in einer darüber gestülpten Parallel-Struktur den bereits existierenden »Staff« (über Name) referenzieren und dort eine neue Stimme (Voice) hinzufügen.

Ich hab's auf die Schnelle nur in Version 2.18.2 im lilybin getestet.

Arnold.

P.S. Persönlich nutze ich diese Methode allerdings nicht, zumindest normalerweise nicht.
Ich schreibe jeden Takt- und Tempowechsel im Satz als eigene Lilypond-Variable (gegebenenfalls in einer separaten LY-Datei, wenn ich auch die Einzelstimmen in je einer separaten LY-Datei anlege),
und dieses Variablen benutze ich dann in allen Stimmen.

C_E

Wundervoll! Genau das hatte ich erhofft.

Ich bin mir selber unsicher, ob es hilfreich ist oder nicht. Aber ich wollte jetzt erstmal diese Lösung finden, und dann bei den nächsten Projekten herausfinden, wie viel Zeit es spart.

Danke Arnold