[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
tool for identifying LilyPond grobs
From: |
Han-Wen |
Subject: |
tool for identifying LilyPond grobs |
Date: |
Tue, 23 Jul 2002 13:59:17 +0200 |
address@hidden writes:
> Currently, my greatest problem is to identify grobs so that I can
> modify their properties.
>
> I suggest a tool `grob' which accepts a LilyPond code fragment (either
> as an argument to the tool or read in interactively using
> e.g. readline), returning the context and grob.
>
> Example:
>
> grob a_"foo"
>
> should return something like this:
>
> `a': `Staff.NoteHead'
> `Staff.Stem'
> `"foo"': Staff.TextScript
>
> In case this isn't possible, I suggest to add a \what keyword to
> LilyPond which emits information on its argument to stdout (but having
> no other effect):
>
> \what a_"foo"
Try \apply #(lambda (x) (display x) x) ...
The problem has two components
* the mapping from syntax to parse trees is not entirely trivial. For
example
R1
is internall converted to
{ \spanrequest \start mmrest
s1
\spanrequest \start mmrest
}
what should \what return?
* There is no automated way to tell what will happen to a specific
music event. I'm planning to add this, but that will have to wait
until after 1.6. This means that information is added to the
engravers, so that you can click all the way from NoteHead to
Note_req (the input event). It will speed things up, and lily can
be made more transparent.
> The trial-and-error method which is necessary at the moment due to
> lacking documentation costs way too much time.
Can you be more specific about "lacking documentation"? I recently
added a section on adjusting output to the tutorial, which explains
how to go about tweaking.
--
Han-Wen Nienhuys | address@hidden | http://www.cs.uu.nl/~hanwen