Autor Thema: Rekursion bei Zitaten verhindern  (Gelesen 2265 mal)

spinne

  • Member
Rekursion bei Zitaten verhindern
« am: Sonntag, 14. Oktober 2012, 16:44 »
Hallo,
das Thema Zitate lässt mich noch nicht los:-(

Folgendes Problem:
Grosses Orchesterprojekt mit komplettem Stimmensatz.
- Bariton zitiert aus Tenorsax
- Tenorsax zitiert aus Bariton

Baritonstimme:
\include "Header.ly"
\include "part_Tenorsax.ly"
Bariton = {
% hier kommt viel Musik
}
\addQuote "Bariton" { \Bariton }

Tenorsaxstimme
\include "Header.ly"
\include "part_Bariton.ly"
Tenorsax = {
% hier kommt viel Musik
}
\addQuote "Tenorsax" { \Tenorsax }

Tenorsax ruft Bariton auf und umgekehrt :-) Aber was muss ich tun, damit ich die jeweilig andere Stimme (natürlich an unterschiedlichen Stellen) zitieren kann?

Gruss
Holger

harm6

  • Member
Re: Rekursion bei Zitaten verhindern
« Antwort #1 am: Sonntag, 14. Oktober 2012, 18:48 »
Hallo Holger,

es scheint ich verstehe Dein Problem nicht, denn folgendes funktioniert:

\version "2.12.3"

musI = \relative c' {
        c4 d e f \cueDuring #"II" #UP { R1 }
        c4 d e f g a b c
        c,4 d e f g a b c
}

musII = \relative c {
        c'2 e c2 e
        \cueDuring #"I" #UP { R1*2 }
        c2 e c2 e
}

\addQuote "I" { \musI }
\addQuote "II" { \musII }

\new Staff \musI
\new Staff \musII

<<
\new Staff \musI
\new Staff \musII
>>


Gruß,
  Harm

spinne

  • Member
Re: Rekursion bei Zitaten verhindern
« Antwort #2 am: Sonntag, 14. Oktober 2012, 19:10 »
Hallo Holger,

es scheint ich verstehe Dein Problem nicht, denn folgendes funktioniert:


Wenn ich den Quelltext übersetze kommt nur noch:

Interpretation der Musik...

Und das immer wieder bis ich ctrl-c drücke. Also eine Schleife. Wenn ich in einer der beiden Stimmen die include Anweisung für die andere rausnehme funktionierts. Nur fehlt mir dann eben in der anderen Stimme das Zitat. Für die einzelnen Stimmen könnte ich das ja von hand so machen, aber in der Partitur gehts eben nicht.

Be-3

  • Member
Re: Rekursion bei Zitaten verhindern
« Antwort #3 am: Sonntag, 14. Oktober 2012, 19:25 »
Wenn ich den Quelltext übersetze kommt nur noch:

Interpretation der Musik...

Und das immer wieder bis ich ctrl-c drücke. Also eine Schleife. Wenn ich in einer der beiden Stimmen die include Anweisung für die andere rausnehme funktionierts.

Tja,

Harm hat ja bewiesen, daß es funktioniert...
Ich habe sein Beispiel sogar mal so verschärft, daß die beiden Stimmen sich gleichzeitig im selben Takt gegenseitig zitieren. Funktioniert (zwar sinnlos, aber es gibt keine Endlosschleife).

Mir scheint das Problem nicht in der Zitierfunktionalität von Lilypond zu liegen, sondern in Deinem Dateiaufbau, also an welches Stelle was mit \include eingebunden wird.
Da scheint sich irgendwas im Kringel herum aufzurufen.
A prpops "herum": ich glaube, um ein kompilierbares Beispiel (so stark wie möglich/nötig vereinfacht) kommen wir nicht herum. :D ;D

Viele Grüße
Torsten

harm6

  • Member
Re: Rekursion bei Zitaten verhindern
« Antwort #4 am: Sonntag, 14. Oktober 2012, 23:01 »
Hallo Holger,

es scheint tatsächlich am grundsätzlichen Aufbau zu liegen.

Wenn Du zwei files nimmst:

file-1.ly mit
\version "2.12.3"
\include "file-2.ly"
{ c }

file-2.ly mit
\version "2.12.3"
\include "file-1.ly"
{ d }

und dann eines davon kompilierst, so rufen sie sich immer gegenseitig auf, eine Endlosschleife.

Mein Vorschlag:
a-file.ly und b-file.ly mit der Musik der jeweiligen Stimme in einer Variablen, sowie \addQuote-Angabe.
parts.ly mit den eingebundenen a-file.ly und b-file.ly und \score für jede Stimme.
score.ly mit den eingebundenen a-file.ly und b-file.ly sowie einer cueDuring-dummy-function, um dieselben Ursprungsfiles nutzen zu können, aber ohne Zitate in der Partitur.
Und, falls Du das möchtest, parts-and-score.ly welches zwei books enthält, für die Stimmen (mit Zitaten) und für die Partitur (ohne Zitate).

->Anhang


HTH,
  Harm

spinne

  • Member
Re: Rekursion bei Zitaten verhindern
« Antwort #5 am: Sonntag, 14. Oktober 2012, 23:02 »

Da scheint sich irgendwas im Kringel herum aufzurufen.
A prpops "herum": ich glaube, um ein kompilierbares Beispiel (so stark wie möglich/nötig vereinfacht) kommen wir nicht herum. :D ;D

Viele Grüße
Torsten

Offensichtlich Beides richtig :-)
Aber im Projektordner:
cat *.ly | wc -l
5250

Da ist ein kompilierbares Beispiel daraus zu erstellen ne etwas aufwändigere Angelegenheit... leider:-)

lg