Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: spinne am Donnerstag, 18. Oktober 2012, 02:44
-
Hallo,
gibt es eine Möglichkeit alle Dynamikzeichen in einer Stimmen nicht anzuzeigen? Sie sollen weder angezeigt werden noch Platz brauchen. Allerdings sollen die ganzen Dynamikanweisungen im Quelltext stehen bleiben.
Hintergrund:
Ich mache ein ziemlich grosse Werk mit Einzelstimmen und Partitur. In der Partitur werden einige Stimmen mit partcombine zusammengefasst welche aber in den Einzelstimmen nicht zusammengefasst werden. Z. B. 2. und 3 Klarinette sind in der Partitur zusammengefasst. 2. und 3. Trompete, ebenso Posaune und 2. und 3. Tenorhorn; Tuben; Grosse Trommel und Becken. Das spart in der Partitur erheblich Platz. Allerdings werden in der Partitur die Dynamikangaben einmal oberhalb und einmal unterhalb des zusammengefassten Systems angezeigt. Z. B. stehen die Dynamikangaben der 2. Klarinette über, und die Dynamikangaben der 3. Klarinette unter dem zusammengefassten System mit den Noten für 2. und 3. Klarinette. Dies verbraucht ziemlich viel Platz.
Ich suche nun nach einem Befehl mit dem ich in der Stimme sagen kann, dass alle Dynamikangaben z. B. der 2. Klarinette nicht in angezeigt werden sollen. Somit hätte ich in der Partitur nur die Dynamikangaben der 3. Klarinette unter dem System. Für die Einzelstimmen kann ich diesen Befehl wieder rausnehmen und ich habe in allen Stimmauszügen alle Angaben.
Ist das Möglich?
Ich hab von der Möglichkeit gelesen die Dynamik für zusammengehörende Stimmen in einen extra "Stimme" zu schreiben mit unsichtbaren Noten und diese entsprechend zu kombinieren. Ich denke, bei so vielen und umfangreichen Stimmen ist das nicht praktikabel.
Gruss
Holger
Edit: Da ich grad schon dabei bin Screenshots zu machen, hab ich mal noch einen angehängt und die "Problemstellen" rot markiert.
Edit 2: Im Moment fällt mir auf, dass bei Trompete 2/3 in dem Screenshot die Dynamik nur einmal vorkommt... so wie ich es gerne möchte. Aber in beiden Stimmen ist sie trotzdem drin. ... ah, ok.. bei der Unisonostelle. Hat das etwas damit zu tun? Bin etwas verwirrt gerade.
-
hallo
hast schon daran gedacht den (New_) Dynamic_engraver wegzulassen?
\new Voice/Staff
\with {\remove New_dynamic_engraver }
Eluze
-
ah, ok.. bei der Unisonostelle. Hat das etwas damit zu tun? Bin etwas verwirrt gerade.
Hallo Holger,
jain, es hat "fast" etwas damit zu tun. Der \partcombine-Befehl führt die Dynamik nur doppelt auf, wenn sie in den beiden Stimmen voneinander abweicht. Die Stimmen müssen nicht unisono sein, nur die Dynamik muß übereinstimmen - dann wird sie auch nur einmal gedruckt.
In der Partitur werden einige Stimmen mit partcombine zusammengefasst welche aber in den Einzelstimmen nicht zusammengefasst werden.
[...]
Ich suche nun nach einem Befehl mit dem ich in der Stimme sagen kann, dass alle Dynamikangaben z. B. der 2. Klarinette nicht in angezeigt werden sollen.
Du kannst einerseits - wie Eluze schon geschrieben hat - den New_dynamic_engraver weglassen (hier mußt Du bei \partcombine nur die richtige Stelle erwischen, damit es funktioniert; eventuell bekommst Du dann Warnungen mit "clashing note columns").
Oder es gibt die Möglichkeit, in der Stimme, in der die Dynamik nicht gedruckt werden und auch keinen Platz wegnehmen soll, die enstprechenden Stencils auf ##f setzen. Somit hast Du eine recht detaillierte Kontrolle darüber, was gedruckt wird und was nicht, z. B.
\override Voice.Hairpin #'stencil = ##f läßt die Crescendo- und Decrescendo-Gabeln verschwinden
\override Voice.DynamicText #'stencil = ##f läßt die textuellen Dynamik-Angaben (p, ff, usw.) verschwinden
In Verbindung mit Tags lassen sich je nach Bedarf dank \keepWithTag und/oder \removeWithTag aus ein und derselben Stimme individuell verschiedene Auszüge/Partituren erzeugen.
Viele Grüße
Torsten
-
Ich hab mich dem Thema jetzt nochmal angenommen und habe versucht zwei einzelene Fagottstimmen zu kombinieren. Ich hab erst eine Stimme geschrieben, diesen Quelltext dann kopiert und die Änderungen gemacht damit daraus die zweite wird. D. h. die Dynamiczeichen sollten alle an exakt den selben Stellen in beiden Stimmen sein. Ergebnis: Manchmal gehts und manchmal nicht. Manchmal erkennt Lilypond auch anscheinend nicht, dass beide Stimmen unisono sind.
Ich hab mal die Stimmen angehängt und das Ergebnis. Es gibt noch eine Header-Datei aus der ein paar Makros kommen (die sind aber denk ich hier nicht relevant)
Also siehe im PDF: Von vorne gehts. Ab 3. Takt nach B erkennt er nicht mehr das beide weiterhin das selbe haben. Warum? Und hier ist dann auch die Dynamik doppelt vorhanden.
Ab dem 2. Takt von D gehts dann wieder (im 1. aber nicht).
Wie kann ich erreichen dass ein Markup wie bei E "dolce" nur einmal erscheint?
Bis 4 Takte vor H gehts dann wieder, Ab dort bis K nicht mehr. Dann gehts wieder. N ist ok so:-) Aber 5,5 Takte vor O würde wieder eine Dynamik reichen.
Bei O im 3. Takt erkennt er nicht, dass die stimmen ab da dasselbe haben.
Warum ist im Takt 188 die erste Note anders wie die restlichen?
Ab 299 wieder Probleme.
Was kann ich mit der Pause im 4. Takt nach T machen? Die ist in der 2. Stimme und die 1. hat Solo. Genau dasselbe funktioniert ab 6 Takte nach V
lg
Holger
-
Auch ich mpfe mit diesem Problem:
aus 4 einzelstimmen (sopran, alt und tenor, bass) setze ich einen klaviersatz:
<<
\new StaffGroup
<<
\new Staff
<<
\clef "treble"
\gdmsopran
% \\ \gdmalt
>>
\new Staff
<<
\clef "bass"
\gdmtenor
\\ \gdmbass
>>
>>
>>
Ergebnis:
Ein System mit Sopran und Alt
Ein System mit Tenor und Bass
wie gewünscht. Aber:
Tempoangabe 4x (\tempo 4=72)
Dynamik 4x
Andere Bezeichnungen 4x (c4^"Fine")
Was muss ich zusätzlich eingeben - in der partitur.ly und in der einzelstimme.ly
Gruß
Guido
-
hallo Jolander
dein beispiel compiliert nicht - bitte gib an was in den variablen \gdm… steht!
Eluze
-
Sorry,
nachstehen der erweiterte Code
\version "2.16.2"
gdmsopran = \relative c''{ c^"rubato" d\p e f g^"Fine"}
gdmalt = \relative c''{ a^"rubato" b\p c d e^"Fine"}
gdmtenor = \relative c { c^"rubato" d\p e f g^"Fine"}
gdmbass = \relative c { c^"rubato" e\p f g a^"Fine"}
\score {
<<
\new StaffGroup
<<
\new Staff
<<
\clef "treble"
\gdmsopran
\\ \gdmalt
>>
\new Staff
<<
\clef "bass"
\gdmtenor
\\ \gdmbass
>>
>>
>>
}
Gruß
Guido
-
Hallo,
ne "Zwischenlösung" :-) Die Tempoangabe und das Fine wird nur noch einmal ausgegeben, die Dynamik funktioniert noch nicht ganz... Warum nicht?
\version "2.16.2"
gdmsopran = \relative c''{ \tempo "rubato" c d\p e f \mark "Fine" g }
gdmalt = \relative c''{ \tempo "rubato" a b\p c d \mark "Fine" e }
gdmtenor = \relative c { \clef bass \tempo "rubato" c d\p e f \mark "Fine" g }
gdmbass = \relative c { \clef bass \tempo "rubato" c e\p f g \mark "Fine" a }
\score {
<<
\new StaffGroup
<<
\new Staff \partcombine \gdmsopran \gdmalt
\new Staff \partcombine \gdmtenor \gdmbass
>>
>>
}
In Stimme 1 und 2 gehts mit der Dynamik, bei 3 und 4 nicht????
-
Hallo Guido,
natürlich ist es immer enorm, erleichternd, wenn man compilierbare Beispiele hat - man kann dann einfach auch mal drauflosprobieren.
Aber in diesem Fall ist es besonderns wichtig, denn die "störenden" doppelten Angaben stammen ja aus den Stimmen, und für deren Vermeidung ist es sehr wohl von belang, wie diese erzeugt wurden: als \tempo-Anweisung oder "normales" Markup etc...
Wie so oft führen meherere Wege auf einen Berg. Die \partcombine-Anweisung berücksichtigt Dynamik-Angaben, aber sie ist da extrem kleinlich und nicht unproblematisch, bei den reinen Text-Markups hilft sie auch nicht.
Deshalb habe ich Dein Beispiel im wesentlichen so gelassen, wie es ist, und zu folgenden Maßnahmen gegriffen:
Für den Klavierauszug in der Alt-Stimme alle Stencils der Text-Markups (TextScript) und der Dynamik-Angaben (das sind verschiedene: DynamicText für die "Buchstaben", DanymicTextSpanner für cresc./decr. mit Linie, Hairpin für die Crescendo- und Descrescendo-Gabeln) ausgeschaltet.
Für das untere System komplett auch.
So "überleben" nur die Angaben aus dem Sopran.
Im abgeänderten Beispielcoding habe ich zu Demonstrationszwecken zuerst eine Chorpartitur mit allerlei lustigen Schlüsseln und Einzelzeilen eingefügt und danach einen "bereinigten" Klavierauszug:
\version "2.16.1"
\version "2.16.2"
gdmsopran = \relative c''{ c^"rubato" d\p e f g^"Fine"}
gdmalt = \relative c''{
a^"rubato" b\p c d e^"Fine"
}
gdmtenor = \relative c { c^"rubato" d\p e f g^"Fine"}
gdmbass = \relative c {
c^"rubato" e\p f g a^"Fine"
}
\score {
<<
\new ChoirStaff
<<
\new Staff { \clef "soprano" \gdmsopran }
\new Staff { \clef "alto" \gdmalt }
\new Staff { \clef "tenor" \gdmtenor }
\new Staff { \clef "bass" \gdmbass }
>>
>>
\header { piece = "Chorsatz" }
}
\score {
<<
\new PianoStaff
<<
\new Staff
<<
\clef "treble"
\gdmsopran
\\ { \override TextScript #'stencil = ##f
\override DynamicText #'stencil = ##f
\override DynamicTextSpanner #'stencil = ##f
\override Hairpin #'stencil = ##f
\gdmalt }
>>
\new Staff \with {
\override TextScript #'stencil = ##f
\override DynamicText #'stencil = ##f
\override DynamicTextSpanner #'stencil = ##f
\override Hairpin #'stencil = ##f
}
<<
\clef "bass"
\gdmtenor
\\ \gdmbass
>>
>>
>>
\header { piece = "Klavierauszug" }
}
Alternativen:
Eine andere Möglichkeit wäre, eine separate "Dynamik-Stimme" zu definieren, die jeweils bei Bedarf dazu eingebunden wird. Im Klavierauszug eben nur einmal statt viermal ;)
Für feinere Unterteilungen (stellenweise Ausnahmen, speziell andere Anordnung usw.) besteht noch die Möglichkeit, mit Tags zu arbeiten und somit speziell für Partitur, Chorheft, Klavierauszug und Einzelstimmen abweichendes Coding in ein und derselben Stimmdefinition zu haben.
Siehe hierzu im Handbuch 3.3.2 Verschiedene Editionen aus einer Quelldatei (http://www.lilypond.org/doc/v2.16/Documentation/notation/different-editions-from-one-source.de.html). Da wird ein Klavierauszug per \partcombine demonstriert und beim "Marken benutzen" der Umgang mit Tags erläutert.
Viele Grüße
Torsten
Edit: Spinne ist mir zuvorgekommen und hat die \partcombine-Lösung demonstriert. Wobei ich dann noch die Partcombine-Texte wie "a2" usw. per printPartCombineTexts = ##f ausgeschalten würde...
die Dynamik funktioniert noch nicht ganz... Warum nicht?
[...]
In Stimme 1 und 2 gehts mit der Dynamik, bei 3 und 4 nicht????
Tja, solche Dinge meinte ich mit "Die \partcombine-Anweisung berücksichtigt Dynamik-Angaben, aber sie ist da extrem kleinlich und nicht unproblematisch [...]" :P
Der Grund dafür, daß \partcombine die Dynamik für Tenor und Baß nicht "zusammenfaßt" ist, daß der Baß höher als der Sopran singt, und um die Noten eindeutig den Stimmen zuordnen zu können, wird in den "Apart-Modus" gewechselt, also eigene Hälse nach oben für den Tenor, eigene Hälse nach unten für den Baß - und als Nebeneffekt auch separate (und somit doppelte) Dynamik-Angaben.
-
[Fehlbedienung - gelöscht!] :-[
-
Danke für die rasche Antwort, ich werde heute Abend das mal austesten.
Eine andere Möglichkeit wäre, eine separate "Dynamik-Stimme" zu definieren, die jeweils bei Bedarf dazu eingebunden wird. Im Klavierauszug eben nur einmal statt viermal
In meinem Falle sind die Einzelstimmen zuerst da. Diese binde ich mit \Include in die Partitur ein.
Bei versetzten Einsätzen und verschieden angeordneten Mehrtaktpausen wäre für die Dynamik bei jeder Einzelstimme eine eigene Datei erforderlich.
Ich denke eher, das das Ausschalten der einzelnen Inhalte eher zum Ziel führt.
Guido
-
Ich muss doch noch mal dumm nachfragen:
Wie sieht eine solche Dynamik-Stimme den aus?
Gruß
Guido