That worked perfectly!

Thanks to all for responding.

On 25 March 2018 at 19:46, Thomas Morley <thomasmorle...@gmail.com> wrote:

> 2018-03-25 0:04 GMT+01:00 Kevin Barry <barr...@gmail.com>:
> > Hi Jan/Wols,
> >
> > Thank you for responding. I have tinkered with \applyContext and
> > cannot get the property out of it to do anything useful with it. Since
> > it always returns music I can't feed it to a markup command or convert
> > it to markup or set it as the value for a property (using a callback
> > or something like that). I have tried using it to set! another
> > property and print that, but it doesn't work.
> >
> > I tried looking at the code for the rehearsal mark engraver, but it's
> > in C++ and I don't understand it (and I suspect context objects are in
> > the #included contexts.hh). I also looked at the code for the
> > Measure_counter_engraver, which is in scheme, but it takes a context
> > object as its parameter, which doesn't seem to get me any closer.
> >
> > I must be misunderstanding something. My best attempt is below. Any
> > further help would be appreciated.
> >
> > #(define-markup-command (print-bar-number layout props) ()
> >   (define barnum 0)
> >   (let* ((setbarnum (lambda (context)
> >                        (set! barnum
> >                              (ly:context-property context
> 'currentBarNumber)))))
> >     (make-apply-context setbarnum)
> >     (interpret-markup layout props
> >       (markup (number->string barnum)))))
> >
> > \repeat unfold 3 { b1^\markup \print-bar-number }
> >
> > Kevin
>
>
>
> How about:
>
> foo =
> \applyOutput Voice.TextScript
>   #(lambda (grob ctx c)
>     (ly:grob-set-property!
>       grob
>       'text
>       (format #f "\ncurrentBarNumber: ~a"
>         (ly:context-property ctx 'currentBarNumber))))
>
> {
>   \textLengthOn
>   \repeat unfold 3 { \foo c1^"" }
> }
>
> HTH,
>   Harm
>
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to