Allgemein > Fragen zu Funktionen

Automatische Textmarker-Markierungen

<< < (3/3)

Thomas:

--- Zitat von: harm6 am Dienstag, 14. März 2017, 21:09 ---(1)
bei Wiederholungen müßte man dann alle einfachen BarLines vom färben ausschließen.
Aber was soll man unter "einfache BarLines" verstehen? Nur "|" oder auch "||". Was ist mit "!" oder ";" oder "S"?
(2)
Wie sind "Dal Segnos, Codas" angegeben?
Als TextScript, RehearsalMark oder noch anders?

Das zumindest müßte man beantwortet wissen und vorausschauend codiert haben, um generelle overrides zu ermöglichen.

--- Ende Zitat ---
zu (1): "einfache BarLines" wären für mich alle Taktstriche zu denen ich nicht hin- oder wegspringen muss, also "|", "||", "!", ";"
vielleicht kann man ja eine White- oder Blacklist machen in der alle Arten von Barlines drinstehen die (nicht) eingefärbt werden sollen.

zu (2): Dal Segno: \bar"S" und Varianten ("S-S", "S.|:", ...)   
Coda: \mark \markup { \musicglyph #"scripts.coda" }


--- Zitat von: harm6 am Dienstag, 14. März 2017, 21:09 ---
--- Zitat ---Bei einer Wiederholung wird bei 'dir 1' nur das Wiederholungszeichen am Zeilenanfang markiert, aber nicht in der Zeilenmitte.
--- Ende Zitat ---
In der Tat, denn so habe ich es kodiert.
Ich habe generelle overrides als wahrscheinlich zu aufwändig nicht in Betracht gezogen.

--- Ende Zitat ---
Das ist jetzt halt aufwändig, wenn man für jede Wiederholung prüfen muss, ob sie am Zeilenende oder nicht ist, um 'dir' entsprechend zu setzen. Und dann ändert sich eine Kleinigkeit und alles verschiebt sich um 1 Takt.


Ich habe beim testen festgestellt, dass die Voltenklammern nach oben verschoben werden, wenn man den Taktstrich einfärbt.

--- Code: ---\version "2.18.2"

#(define* (emphasize-in-color color padding #:optional (y-padding 0) dir)
  (lambda (grob)
(let* ((stil (ly:grob-property grob 'stencil))
       (x-ext (ly:stencil-extent stil X))
       (y-ext (ly:stencil-extent stil Y))
       (item-break-dir
         (if (ly:item? grob)
             (ly:item-break-dir grob)
             #f))
       (stil-proc
         (lambda (stl)
           (ly:stencil-add
             (stencil-with-color
               (make-filled-box-stencil
                 (interval-widen x-ext padding)
                 (interval-widen y-ext (+ y-padding padding)))
               color)
             stl))))
       
  (ly:grob-set-property! grob 'layer -100)
  (ly:grob-set-property! grob 'stencil
    (if (or (or (not dir) (zero? dir))
            (and dir (equal? item-break-dir dir)))
        (stil-proc stil)
        stil)))))


\relative c' {
  c1
  \once \override Staff.BarLine.after-line-breaking =
    #(emphasize-in-color red 0.2 1)
  \repeat volta 2 {
    c1
}
\alternative{
   {
      c1
      \once \override Staff.BarLine.after-line-breaking =
      #(emphasize-in-color red 0.2 1)
   }
   {
      c1
   }
}
    c1
}

\relative c' {
  c1
  \once \override Staff.BarLine.after-line-breaking =
    #(emphasize-in-color red 0.2 1)
  \repeat volta 2 {
    c1
}
\alternative{
   {
      c1
   }
   {
      c1
   }
}
    c1
}

--- Ende Code ---

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln