lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Understanding ScriptRow


From: Thomas Morley
Subject: Understanding ScriptRow
Date: Thu, 10 May 2018 11:56:58 +0200

Hi all,

I'm trying to do:
(a) create a new grob
(b) add this grob to the 'scripts of ScriptRow
(c) let ScriptRow do the positioning according to the provided
script-priority and finger/stringNumber/strokeFingerOrientations, etc

(a) and (b) are done.
But currently I'm stuck with (c)

So I went some steps back and tried to understand how ScriptRow
actually does the positioning.
According to IR, 'before-line-breaking is set to
ly:script-column::row-before-line-breaking.
But I can't find where it is defined and thus I'm at a loss what it
does and how.
All I can say is unsetting 'before-line-breaking leads to clashing
scripts (only AccidentalPlacement is still ok). This makes me think
ly:script-column::row-before-line-breaking is indeed responsible for
the positioning.

So the questions are
Where is ly:script-column::row-before-line-breaking defined?
What does it do and how?
Is my current naiv understanding of it correct at all?
Is (c) doable at all?

Here some example code:

tst =
  \override Staff.ScriptRow.before-line-breaking =
    #(lambda (grob)
       (format #t "\nscripts in ~a:\n~y"
               grob
               (ly:grob-array->list (ly:grob-object grob 'scripts)))
       (ly:script-column::row-before-line-breaking grob)
                )

\transpose c cis
{
  \tst
  \set fingeringOrientations = #'(left)
  \set stringNumberOrientations = #'(left)
  \set strokeFingerOrientations = #'(left)

  <c' e'-1\2-\rightHandFinger #0 g'>4.\arpeggio
}

Cheers,
  Harm



reply via email to

[Prev in Thread] Current Thread [Next in Thread]