lilypond-user
[Top][All Lists]
Advanced

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

Re: box around notes


From: Klaus Blum
Subject: Re: box around notes
Date: Fri, 16 Jan 2015 10:35:41 -0700 (MST)

Hi David, 
thanks again. You're my hero: now it works.


I've added a few things so far:

- "thickness" property can be used to control frame thickness, can even be
set to zero ("color" property and "layer" property work by default)
- "filled" property (boolean) controls whether the box is to be filled with
a colored rectangle whose color can be set by "fill-color" property.

I've also added two global boolean variables "acknowledge-finger-interface"
and "acknowledge-script-interface" to control whether the boxes take care of
fingerings and dynamics. For example, if you want to mark themes and motifs,
you might only want to consider the notes and rests.
Unfortunately, these settings are valid for the whole score and therefore
cannot change during a piece. I'd prefer to use properties, because this
would allow \once \override etc. But I don't know how to access these
properties from within musicBoxerEngraver.
If a box is split due to a line break, it would be cool to have those two
boxes open at the right/left side. For this, musicBoxerEngraver would need
to tell if a box is started/stopped by a line break instead of a manual
command. 
Dear list members, can anybody help how to achieve that? Sorry for always
coming up with crazy ideas that go far beyond my scheme knowledge.  ;-)

Cheers, 
Klaus

boxer-attempt2.ly
<http://lilypond.1069038.n5.nabble.com/file/n170575/boxer-attempt2.ly>  


David Nalesnik-2 wrote
> 
> You need to make LilyPond aware of the new property: what type does it
> have? does it have a documentation string?  (The latter is important
> because the documentation in the Internals Reference is generated
> automatically.)
> 
> Add the following lines above the stencil function (make-box):
> 
> %%%%%%%%%%%
> #(define (define-grob-property symbol type? description)
>   (if (not (equal? (object-property symbol 'backend-doc) #f))
>       (ly:error (_ "symbol ~S redefined") symbol))
> 
>   (set-object-property! symbol 'backend-type? type?)
>   (set-object-property! symbol 'backend-doc description)
>   symbol)
> 
> #(map
>   (lambda (x)
>     (apply define-grob-property x))
> 
>   `(
>     (filled ,boolean?
>       "Should we fill in this box?")
> ; add more properties here
>   ))
> 
> %%%%%%%%%%%%%





--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/box-around-notes-tp35581p170575.html
Sent from the User mailing list archive at Nabble.com.



reply via email to

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