lilypond-devel
[Top][All Lists]
Advanced

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

Re: make metronomeMarkFormatter more flexible (issue 327620043 by addres


From: thomasmorley65
Subject: Re: make metronomeMarkFormatter more flexible (issue 327620043 by address@hidden)
Date: Thu, 12 Oct 2017 14:54:00 -0700

On 2017/10/12 08:53:31, dak wrote:
On 2017/10/12 08:27:51, Malte Meyn wrote:
> How would that reflect that parentheses are shown if and only if
text is
> present? And how could you then change this behaviour?

Pass.  For more extensive changes, we'd need a markup function.
Basically,
where we can go from some reasonably easy

\tempo \markup \specificFormatter { "(" "=" ")" } {4} #128

in single-use cases to

\override Staff.TempoFormatter = \markup \specificFormatter { "(" "="
")" } \etc

in general.  We "just" have to figure out what this is supposed to be
called/callable with, how many of those hooks we really need, and how
many
specific formatters we should provide out of the box.

I'd like to suggest a little different.
Sometimes I've the feeling we add more and more specialized context- and
grob-properties in direct contradiction to the goal to "unify"
grob/context-properties. Why not use sub-properties of 'details and let
the printing-function call a markup-command accessing and processing
them?

Here an example. Although it puts out a dummy only, the markup-command
has full access to the details-properties and could _do_ something with
it.

#(define-markup-command (tempo-test layout props)()

  (pretty-print (ly:chain-assoc-get 'details props))

  (interpret-markup layout props "tempo-dummy"))

\layout {
  \context {
    \Score
    metronomeMarkFormatter = #(lambda (evt ctx)
(make-tempo-test-markup))
  }
}

{
  \override Score.MetronomeMark.details =
    #(list
      (cons 'between-text " – ")
      (cons 'equal-sign " = ")
      (cons 'parentheses? #f)
      (cons 'note-size -1)
      )
  \tempo 8=120
  R1
}

What do you think?

https://codereview.appspot.com/327620043/

reply via email to

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