• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

Taktwechsel und Wiederholungszeichen

Begonnen von chf, Dienstag, 16. Dezember 2008, 19:23

Vorheriges Thema - Nächstes Thema

chf

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

comper

#1
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),
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

chf

#2
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

comper

#3
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

chf

Danke, das war hilfreich! Ich bin immer ganz in der Nähe, aber zum letzten Durchblick reicht's dann doch nicht.
Gruß chf

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
           )
          }
}

comper

Es gibt einen Abstands-Mechansimus,
und in IR.3.1.114 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

chf

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

chf

#8
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