lilypond-user
[Top][All Lists]
Advanced

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

Re: "Instrument" as first-class citizen


From: Urs Liska
Subject: Re: "Instrument" as first-class citizen
Date: Thu, 23 Apr 2015 08:38:27 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.6.0



Am 23.04.2015 um 05:47 schrieb Carl Sorensen:
On 4/22/15 7:17 PM, "Flaming Hakama by Elaine" <address@hidden>
wrote:

Since I understand programming languages rather well, if I understanding
how something is organized, then I can code it 100% of the time.

Surely, I will have to refer to manuals to find out specifics about
objects, functional prototypes, etc.

But the transition from concept to execution is simply a matter of
following the recipe.

Within the lilypond universe, however, this is complicated due to the
several languages used (scheme, guile scheme and lilypond-specific
syntax).
As far as I know, the only scheme used within lilypond is guile scheme.

Yes, but it is very obscure to find your way around Guile Scheme syntax and functions provided by LilyPond itself.


So, it is often not enough to know what you want to do, you need to know
in which realm this activity is conducted.
I agree.


It doesn't help that many things are implicit and based on contexts which
are invisible and undocumented--or you can't find the documentation,
which in the heat of the moment is more or less the same thing.
Hmm.  I have a bit more trouble understanding this.  I think the
documentation is pretty complete when it comes to contexts, engravers, and
grobs, and I can find pretty much anything I want in the documentation of
these things.

Again, yes, but it is very obscure to get to a point where you can actually make use of this documentation.


Scheme functions, not so much.  I may have to grep the source.


Also, the tendency of schemers to endlessly repeat the mantra "everything
is a list" without really acknowledging that is both inaccurate and
unhelpful.
Do you see a lot of that in the lilypond universe?  Maybe I haven't been
sensitive enough to that problem, but I haven't dealt with it a lot.


(Yes, everything may be a list.  But depending on what you need to *do*
with that list, there are undocumented requirements like, the first
element needs to be a function, the second and third elements need to be
strings, the fourth needs to be an ly:music type, the fifth element needs
to be a list of notes.)

Pretty much every lilypond scheme function has a doc string that explains
the required inputs, in my experience.

The docstrings are often cryptic, and this is also true for the publicly visible docstrings that are on the "Scheme functions" page of the documentation. It may sound trivial, but what would have massively helped me is a sentence on that page saying "this is a very concise auto-generated documentation page, and if you don't understand what the arguments of the functions are doing it's not you but it's the documentation". This would have helped me asking more instead of thinking I'm too stupid.


Urs



reply via email to

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