Autor Thema: Abstand der Voltenklammern bei geändertem Wiederholungstaktstrich  (Gelesen 2753 mal)

Thomas

  • Member
Abstand der Voltenklammern bei geändertem Wiederholungstaktstrich
« am: Montag, 26. September 2016, 18:47 »
Hallo,

normalerweise gibt es zwischen 1er und 2er Haus einen kleinen Abstand. Wenn man den Wiederholungstaktstrich mit \set Score.endRepeatType = #":|]" ändert, verschwindet der Abstand.

Kann man da was dagegen machen?

Gruß Thomas

\version "2.18.2"

\relative c' {
  \repeat volta 2 {
    \repeat unfold 8 { c1 }
  }
  \alternative {
    {
      \repeat unfold 8 { c1 }

    }{
      \repeat unfold 8 { d1 }
    }
  }
  \repeat unfold 8 { c1 }
}

\relative c' {
\set Score.endRepeatType = #":|]"

  \repeat volta 2 {
    \repeat unfold 8 { c1 }
  }
  \alternative {
    {
      \repeat unfold 8 { c1 }

    }{
      \repeat unfold 8 { d1 }
    }
  }
  \repeat unfold 8 { c1 }
}

fugenkomponist

  • Member
Re: Abstand der Voltenklammern bei geändertem Wiederholungstaktstrich
« Antwort #1 am: Montag, 26. September 2016, 19:20 »
Ich fürchte, das ist einer von mehreren Bugs im Zusammenhang mit diesen Klammer-Taktstrichen. Hier eine Abhilfe:
\relative c' {
  \set Score.endRepeatType = #":|]"
  \repeat volta 2 {
    \repeat unfold 8 { c1 }
  }
  \alternative {
    {
      \repeat unfold 8 { c1 }
    }{
      \once \override Score.VoltaBracket.shorten-pair = #'(1 . 0)
      \repeat unfold 8 { d1 }
    }
  }
  \repeat unfold 8 { c1 }
}
Die hat allerdings eine kleine Schwäche. Solltest du einen Zeilenumbruch während der zweiten Klammer haben (und z. B. wie im Nachbar-Thread per allow-volta-hook die Klammer auch tatsächlich nach dem Zeilenumbruch noch weitergeführt werden), wirkt sich der \override auf alle Teile aus, d. h. die sind alle links ein Stück kürzer. Ich dachte, man könnte das (mit etwas Aufwand) ändern, indem man VoltaBracket.after-line-breaking überschreibt, da scheint shorten-pair aber leider dann gar keinen Effekt mehr zu zeigen :/

Thomas

  • Member
Re: Abstand der Voltenklammern bei geändertem Wiederholungstaktstrich
« Antwort #2 am: Montag, 26. September 2016, 20:02 »
Muß man "\once \override Score.VoltaBracket.shorten-pair = #'(1 . 0)" jedesmal hinschreiben? Oder gibt es eine Stelle, wo man es nur einmal für alle Wiederholungen hinschreiben kann?

fugenkomponist

  • Member
Re: Abstand der Voltenklammern bei geändertem Wiederholungstaktstrich
« Antwort #3 am: Montag, 26. September 2016, 20:45 »
Du kannst es an den Anfang schreiben und das \once weglassen, dann gilts für den gesamten \score. Wenn du mehrere Stücke nacheinander hast, für die das gelten soll, schreib
\layout {
  \context {
    \Score
    \override VoltaBracket.shorten-pair = #'(1 . 0)
  }
}
irgendwo vor das erste statt an den Anfang von jedem Stück (diese Lösung geht auch, wenn du nur ein Stück hast, ist aber eben mehr Tippaufwand).

harm6

  • Member
Re: Abstand der Voltenklammern bei geändertem Wiederholungstaktstrich
« Antwort #4 am: Dienstag, 27. September 2016, 01:04 »
Das war

Zitat
commit [r5012705f74151e8c53f7bc41abf7094224d40ae2]
Author: Thomas Morley <thomasmorley65@gmail.com>
Date:   Sun Apr 27 23:00:26 2014 +0200

    corrects typo in bar-line.scm
   
    issue 3908
   
    Missing space in (define-bar-line ":|]" ":|]" #f " |") caused bad
    visual output of VoltaBracket.
    Changed to (define-bar-line ":|]" ":|]" #f " | ")
    The space added will cause that the SpanBar x-extent will be calculated
    correctly to determine the gap between two VoltaBrackets

Gefixt in 2.19.6

Der bessere workaround für 2.18.2 wäre:

#(define-bar-line ":|]" ":|]" #f " | ")

ins file zu schreiben.

Zitat von: fugenkomponist
Ich fürchte, das ist einer von mehreren Bugs im Zusammenhang mit diesen Klammer-Taktstrichen.
Welche meist Du im einzelnen?

Gruß,
  Harm


fugenkomponist

  • Member
Re: Abstand der Voltenklammern bei geändertem Wiederholungstaktstrich
« Antwort #5 am: Dienstag, 27. September 2016, 02:07 »
Gefixt in 2.19.6
Öhm ja, wieso bin ich selbst nicht drauf gekommen, das auszuprobieren?
Zitat
Der bessere workaround für 2.18.2 wäre:

#(define-bar-line ":|]" ":|]" #f " | ")

ins file zu schreiben.
Auf die Idee, dass sich die Voltenklammer am SpanBar orientiert, bin ich nicht gekommen … aber ergibt irgendwie Sinn, weil so die Punkte des Wiederholungszeichens nicht mitberechnet werden.
Zitat
Zitat von: fugenkomponist
Ich fürchte, das ist einer von mehreren Bugs im Zusammenhang mit diesen Klammer-Taktstrichen.
Welche meist Du im einzelnen?
Ich muss zugeben, ich hab nur so ein Gefühl, dass da öfter schon threads zu kaputtem Verhalten aufgetaucht sind (hier und auf der Mailingliste), aber vielleicht kam mir das auch nur so vor. Für anständige SpanBars (bzw. Klammern nur oben und unten an ner StaffGroup) hast du ja irgendwo mal nen schönen Workaround gepostet, aber ich glaub, das war nicht das einzige.

Wohl alles in allem ein relativ voreiliger Post von mir (mit ner unbefriedigenden Lösung und ner vagen Aussage über Bugs oder so) …
« Letzte Änderung: Dienstag, 27. September 2016, 02:09 von fugenkomponist »

harm6

  • Member
Re: Abstand der Voltenklammern bei geändertem Wiederholungstaktstrich
« Antwort #6 am: Dienstag, 27. September 2016, 10:16 »
Zitat von: fugenkomponist
Wohl alles in allem ein relativ voreiliger Post von mir (mit ner unbefriedigenden Lösung und ner vagen Aussage über Bugs oder so) …

Kein Grund einen Rückzieher zu machen. Meine Frage war durchaus ernst gemeint. ;)

Hintergrund:
Bis ich gezwungen war auf Grund einer schweren Unfallverletzung zu pausieren habe ich zusammen mit Marc Hohl an dem bar-line-interface gearbeitet, welches jetzt seit einiger Zeit der standard ist.
Die bar-lines mit "[" oder "]" sind tatsächlich allein auf meinem Mist gewachsen. Vorher gab es sie nicht. Allerdings war mir schon bei der Implementierung klar, daß sie nur für single-Staff taugen, nicht für StaffGroups mit SpanBars.
Für diesen Zweck hatte
http://lsr.di.unimi.it/LSR/Item?id=1032
entworfen.
Ich habe schon mal die Gründe warum das für StaffGroups problematisch ist auf der internationalen mailing-list darzustellen versucht. Der thread endete unerfreulich (ich such ihn jetzt nicht raus).

Wenn es also bugs gibt interessiert es mich nicht nur, sondern ich kenne den Code auch ziemlich gut und wäre vielleicht in der Lage für Abhilfe zu sorgen.

Allerdings ist vieles was an diesen bar-lines bemängelt werden kann, folge der Art und Weise wie LilyPond "Taktstriche" in BarLines und SpanBars zerlegt, berechnet und wieder zusammenfügt.
Ich fürchte man wird darüber nachdenken müssen, ob die Implementierung als BarLine nicht von vorn herein unzulänglich ist. (Ich hatte schon in dem unerfreulichen thread ein revert in Erwägung gezogen.)
Allerdings habe ich nicht den Hauch eines Schimmers wie man es sonst machen könnte.


Gruß,
  Harm

Thomas

  • Member
Re: Abstand der Voltenklammern bei geändertem Wiederholungstaktstrich
« Antwort #7 am: Mittwoch, 28. September 2016, 19:25 »
Der bessere workaround für 2.18.2 wäre:

#(define-bar-line ":|]" ":|]" #f " | ")


das hilft