Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: kilgore am Donnerstag, 11. Februar 2010, 16:42
-
Lieber Lily's,
Hab nix dazu bisher gefunden, möchte ich aber machen. In meine Partitur möchte ich verschiedene Bar Lines in verschiedene Stimmen gleichzeitig schreiben. In mein Code unten sieht man, dass ich nur in der Trombone-Stimme ein Wiederholungszeichen möchte. Die trompeten sollten ein andere Bar bekommen, aber kein Wiederholungszeichen. Ist das möglich?
\version "2.12.1"
#(set-global-staff-size 12)
\paper { tagline = ##f }
\header { title = "Title"
composer = "Composer" }
trumpetone =
\relative c' {
\set Staff.instrumentName = "Tpt1"
c1\fermata
}
trumpettwo =
\relative c' {
\set Staff.instrumentName = "Tpt2"
\clef treble
c1
}
trumpetthree =
\relative c' {
\set Staff.instrumentName = "Tpt3"
c1
}
trombone =
\relative c' {
\set Staff.instrumentName = "Tbn"
\clef bass
\bar "|:" c4 c c c \bar ":|"
}
<<
\new StaffGroup <<
\new Staff {
\trumpetone }
\new Staff {
\trumpettwo }
\new Staff {
\trumpetthree }
>>
\new Staff {
\trombone }
>>
-
\bar durch \once \set Staff.whichBar = ersetzen.
Ist evtl. eine zu grobe Lösung; das erste Nebenproblem ist schon sichtbar.
Gruss
-
Hm erstmal hilft das mir sehr! Das erste Nebenproblem sehe ich nicht....?
-
Fällt diese Kombination am Zeilenende, sind die Trompeten-Systemen ausgefranzt.
-
Gegen Ausfransen hilft Verschieben der breitesten BarLine, in diesem Fall dem Wiederholungsstrich:
\once \override Staff.BarLine #'X-offset = #-0.4
Der Wert –0,4 hebt den Default-Wert 0,4 von gap im BarLine-Objekt auf.
\version "2.12.3"
%#(set-global-staff-size 12)
\paper { tagline = ##f }
\header {
title = "Title"
composer = "Composer"
}
trumpetone = \relative c' {
\set Staff.instrumentName = "Tpt.1"
c1\fermata
}
trumpettwo = \relative c' {
\set Staff.instrumentName = "Tpt.2"
c1
}
trumpetthree = \relative c' {
\set Staff.instrumentName = "Tpt.3"
c1
}
trombone = \relative c' {
\set Staff.instrumentName = "Tbn"
\clef bass
\bar "|:" c4 c c c
\once \override Staff.BarLine #'X-offset = #-0.4
\set Staff.whichBar = ":|" c
\unset Staff.whichBar
}
<<
\new StaffGroup
<<
\new Staff { \trumpetone }
\new Staff { \trumpettwo }
\new Staff { \trumpetthree }
>>
\new Staff { \trombone }
>>
Grüße, Robert
-
Fällt diese Kombination am Zeilenende, sind die Trompeten-Systemen ausgefranzt.
Hm...danke aber dieses Problem habe ich nicht. Ich habe "dashed" barlines oben in die Trompeten....sieht super aus!
-
@comper:
Ok jetzt sehe ich was du meinst!
Die Lösung von Rob funktioniert, aber in diesem Fall doch nicht:
\version "2.12.2"
\new Staff {
\relative c' {
\override Staff.TimeSignature #'transparent = ##t
R1
R1
R1
R1
\once \set Staff.whichBar = "dashed"
\break
\time 5/4
\once \set Staff.whichBar = "|:"
s1 s4
s1 s4
s1 s4
s1 s4
}
}
Erste Zeile sollte mit "||" enden. Erstmal wird eine vertikale BarLine wegradiert, wohl wegen des nachkommenden Wiederholungszeich am ANfang der nächsten Zeile. Ausserdem, möchte ich nicht, dass es platz für die 5/4 wechsel dort lässt am Zeilende. Ich möchte einfach kein TimeSignature haben, und dazu auch kein leeres Platz wo es sonst sein wäre.....
???
kil
-
oops! Ich wusste, ich hatte es irgendwo gesehen. Also das Problem mit dem Time Signature ist jetzt weg. Troztdem bekomme ich kein "dashed" barline am Zeilenende....
\version "2.12.2"
\new Staff {
\relative c' {
\override Staff.TimeSignature #'transparent = ##t
R1
R1
R1
R1
%\once \override Staff.BarLine #'X-offset = #-0.4
\once \set Staff.whichBar = "dashed"
\break
\once \override Staff.TimeSignature #'stencil = ##f
\time 5/4
\once \set Staff.whichBar = "|:"
s1 s4
s1 s4
s1 s4
s1 s4
}
}
-
Hallo kil,
ist ja wieder außergewöhnlich ;)
Man könnte Lily überlisten und einen unsichtbaren (sehr kurzen) Takt einfügen. Dazu noch vorübergehend die Taktnummerierung anhalten:
\version "2.12.3"
\new Staff {
\relative c' {
\override Staff.TimeSignature #'transparent = ##t
R1*4
\once \set Staff.whichBar = "dashed"
\break
\set Score.measureLength = #(ly:make-moment 1 64)
\cadenzaOn
s64
\once \override Staff.TimeSignature #'stencil = ##f
\time 5/4
\once \set Staff.whichBar = "|:"
\cadenzaOff
\repeat unfold 5 { s1 s4 } \break
\repeat unfold 5 { s1 s4 } \break
}
}
Es ist wahrscheinlich einfacher als Lily zu überreden, zwei verschiedene BarLine-Typen zu schlucken.
Grüße, Robert
-
tja, zumindest bin ich froh, dass ich auf ungefähr die selbe Lösung wie Rob gekommen bin! *STOLZ* ;D
Man muss bloss was dazwischen reinschieben.....ist nicht das tollste aber sieht ganz OK aus....
-
Inzwischen habe ich noch eine Lösung gefunden. Da ich sowieso \RemoveEmptyStaffContext benutze, habe ich einfach eine unsichtbare Zeile gemacht ziwschen den Taktstriche
c1
\bar "dashed"
\break
s1
\break
\bar "|:"
c1
Funktioniert in den meisten Fällen super.........
-
… dürfte aber die Taktnummerierung abfälschen. Oder nicht?
-
Ja, daran habe ich nicht gedacht. Aber in dem Stück ist das Taktzahl Engraver sowieso schon raus.
Das einzige Problem ist, dass eine leere, unsichtbare Zeile doch "platz" nimmt. Nicht viel Platz, aber schon merkbar. Das Resultat ist akzeptabel, aber weisst jemand vielleicht wie ich das anders machen könnte? Es ist ähnlich wie mein Problem mit dem TimeSignatureEngraver..... ich möchte es nicht nur durchsichtig sein sondern so als wäre es gar nicht da..........