Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: chf am Dienstag, 16. Dezember 2008, 19:23
-
Heute habe ich nochmal ein wirkliches Problem, das mir bisher entgangen ist:
Wenn im Notentext ein Taktwechsel vor einem Wiederholungszeichen passiert, erscheint (gleich, in welcher Reihenfolge die Codes stehen, die Taktart i n der Wiederholung, sie sll aber v o r dem Wiederholungszeichen stehen. Was ist zu tun?
\version "2.11.63"
\relative c {
c c c c \time 6/8 \bar "|:" c8 c c c c c }
Gruß chf
-
Das ist jetzt ein fortgeschrittener Wunsch.
Den Reihenfolge-Mechanismus ausfindig machen (break-align-orders),
dessen voreingestellte Reihenfolge orten (in define-grobs.scm bzw. IR.3.1.22 (http://lilypond.org/doc/v2.11/Documentation/user/lilypond-internals/BreakAlignment)),
daraus eine andere Reihenfolge ableiten (time-signature vor staff-bar),
und definieren:
rochade = \override Score.BreakAlignment #'break-align-orders =
#(make-vector 3
'(left-edge
ambitus
breathing-sign
clef
time-signature
staff-bar
key-cancellation
key-signature
custos))
Dann diese abweichende Reihenfolge anwenden, etwa so:
\relative c' { \rochade
c c c c \time 6/8 \repeat volta 2 { c8 c c c c c }
Gruss
-
Das funktioniert prima in score.
Lässt sich das auch für den Einzelfall zurechtmachen? Jetzt sind auch die Doppelstriche betroffen (\bar "||"), ich brauche aber nur \bar "|:" ...
Gruß chf
-
Der Einzelfall geht so:
Bei der Definition \once mitgeben
rochade = \once \override Score.BreakAlignment #'break-align-orders =
#(make-vector 3
'(left-edge
ambitus
breathing-sign
clef
time-signature
staff-bar
key-cancellation
key-signature
custos))
Und dann unmittelbar anwenden
\relative c' {
c c c c \time 6/8 \rochade \repeat volta 2 { c8 c c c c c } % vor c8
\time 4/4 c4 c c c \time 6/8 \repeat volta 2 { c8 c c c c c } % normal
}
Gruss
-
Danke, das war hilfreich! Ich bin immer ganz in der Nähe, aber zum letzten Durchblick reicht's dann doch nicht.
Gruß chf
-
Leider muss ich auf dieses Thema nochmal zurückkommen.
An einer Stelle gefällt mir die Sache noch nicht:
das erste "C" müsste ein wenig weiter weg von \bar ":|" Egal, wie ich die Befehle anordne - das Bild ist immer gleich. In der Dokumentation finde ich nicht die richtige Stelle, und selbst wenn - ???
Gruß chf
\version "2.11.63"
rochade = \once \override Score.BreakAlignment #'break-align-orders =
#(make-vector 3
'(left-edge
ambitus
breathing-sign
clef
time-signature
staff-bar
key-cancellation
key-signature
custos))
\relative c' {
\time 6/8
d'8 g, a e4 r8 \bar ":|:"
\rochade \time 4/4
r2^\markup {
(
\smaller \general-align #Y #DOWN \note #"4." #1
=
\smaller \general-align #Y #DOWN \note #"4" #1
)
}
}
-
Es gibt einen Abstands-Mechansimus,
und in IR.3.1.114 (http://lilypond.org/doc/v2.11/Documentation/user/lilypond-internals/TimeSignature) hat der relevanter Wert 2.0 als Voreinstellung.
Mit diesem Wert spielen, z.B. 3.0:
padTsBar = \once \override Score.TimeSignature #'space-alist = #'(
(first-note fixed-space . 2.0)
(right-edge extra-space . 0.5)
(staff-bar minimum-space . 3.0))
\relative c' {
\time 6/8
d'8 g, a e4 r8 \bar ":|:"
\rochade \padTsBar \time 4/4
r2}
Aber warum wird die tatsächliche Taktstrich-Breite nicht berücksichtigt?
Gruss
-
Lieber "Comper",
danke! Jetzt sieht's fein aus.
Was meinst du mit tatsächlicher Taktstrichbreite? So : ":||:" ? Darauf wäre ich nie gekommen. Ich habe beide Zeichen getrennt aneinandergereiht, aber ohne Erfolg. - ? -
Gruß
chf
-
Liebe Freunde,
lasst mich nochmal an ein altes Problem anknüpfen ("Wiederholungszeichen und Taktwechsel").
Die Lösung mit
rochade = \once \override Score.BreakAlignment #'break-align-orders =
#(make-vector 3
'(left-edge
ambitus
breathing-sign
clef
time-signature
staff-bar
key-cancellation
key-signature
custos))
funktioniert wunderbar a u ß e r bei diesem Zeilenwechsel: (pardon - ich hatte was Wesentliches in meinem Code vergessen)
\version "2.12.2"
rochade = \once \override Score.BreakAlignment #'break-align-orders =
#(make-vector 3
'(left-edge
ambitus
breathing-sign
clef
time-signature
staff-bar
key-cancellation
key-signature
custos))
\relative c' {
a,16^\markup {etwas frei} es' c b a es' a,32 es' c b a es' c b a es c b a\fermata b c es g a d e! a, d e g a^\markup {sehr verbreitern} b c es d16 e g a r8 a,8^\markup {frei} ([dis,] e g cis, f4) d8 (c [es a,]) \once \override Score.RehearsalMark #'self-alignment-X = #right \mark \markup { \musicglyph #"scripts.ufermata" } \time 5/4 \rochade \tempo \markup { \fontsize #2 "erstes Zeitmaß"} \break \noPageBreak \bar "|:" \once \override Script #'padding = #-1
<<
{ r4 a'2\prallprall~a4 r4 }\\
{r4 <es, c'>2.\f r4}
>>
\noBreak R1*5/4*3 \bar ":|" R1*5/4 \time 3/4 R1*5/4*3 \bar ":|" R1*5/4 \time 3/4
<<
{a'4^\markup {tast.} a d }\\
{<d,, fis'>2.\mp}
>>
\stemUp <d fis' a>4 <a e' cis' g'> <d d' fis> \time 5/4 R1*5/4 \bar "|."
}
\noPageBreak
Hier kann ich auch den Zeilenwechsel nicht gut verlagern, es handelt sich um eine sechsstimmige Partitur eines viersätzigen Werkes - es ist also alles ziemlich ausgeklügelt.
Es müsste also am Zeilenende 5/4 h i n t e r dem Taktstrich stehen, am Zeilenanfang aber v o r dem Wiederholungszeichen. Gibt es ein Rezept?
Gruß chf