lilypond-user
[Top][All Lists]
Advanced

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

Re: Beam direction property


From: David Nalesnik
Subject: Re: Beam direction property
Date: Wed, 13 Jul 2016 18:04:29 -0500

On Wed, Jul 13, 2016 at 5:53 PM, tisimst <address@hidden> wrote:
> On Wed, Jul 13, 2016 at 4:36 PM, Andrew Bernard [via Lilypond] <[hidden
> email]> wrote:
>>
>> Hi Abraham,
>>
>> Thanks for the suggestion. Since lilypond internals are not documented
>> nicely, in terms of plain examples and behaviour, you just have to use trial
>> and error to code these things (unless there is a Secret Book I am unaware
>> of…). Using the beam seems to work better for the right hand case nad for my
>> way of doing it, for reasons too long to explain just here. I still need to
>> know what the Beam.direction property is, and why it can’t be set, and what
>> it represents. It is this sort to information that that NR and IR lack,
>> frustratingly,
>>
>> Things like knowing a beam has a stems object. How does one find out about
>> things like this, without reading al the source code, and trying to figure
>> that out?
>>
>> I do need the beam information and understanding because there are other
>> beam modifications I want to make as well involving changing the beam shape
>> in certain ways.
>
>
> Believe me, I understand your frustration. Here are a couple of things I've
> learned about the IR:
>
> 1. The "Standard Settings" table on grob's web page are all grob properties
> that have been defined in "define-grobs.scm" or internally in the C++ source
> code.
> 2. At the top of each grob's web page is shows which engraver(s) creates the
> grob. Clicking on the engraver links leads to a page that shows engraver
> properties that you can modify to adjust the engraver's procedure.
> 3. At the bottom of each grob's web page it shows the interface(s) that
> affect the grob, including generic ones (e.g., font-interface) and some
> grob-specific ones (e.g., beam-interface) though the grob may not know how
> to use all user-settable properties in each of these interfaces. Clicking on
> the interface link(s) leads to more grob properties that you can
> access/change via ly:grob-property and ly:grob-set-property!, respectively.
> Towards of the bottom of the interface web page will be a "Interface
> Properties" table that lists various objects that the grob has access to.
> This is where you find out that a Beam grob has a 'stems object you can
> access via ly:grob-object.
>
> In this particular case, you can access the 'stems from the Beam grob or,
> vice-versa, the 'beam from the Stem grob. You pick.
>

A function which you might find useful is grob::display-objects.  From
the commit message:

"Issue 4328: Add means to display objects accessible from a grob

A convenient way to display the grobs and grob-objects pointed to by
various internal properties of a given grob would be very helpful for
debugging and development purposes.  For example, it would facilitate the
creation of advanced tweaks, which frequently require "lateral" access
to other grobs.

The output of the function 'grob::display-objects' shows all of the grobs
accessible to a given grob through ly:grob-object together with the relevant
interfaces and properties.  It includes properties which are empty: not all
properties within an interface may be set for or used by a grob supporting
that interface."

====

You'd simply call it with the grob as argument.

Hope this is helpful--
David



reply via email to

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