lilypond-user
[Top][All Lists]
Advanced

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

Re: Determining what parameters exist for an item


From: Charles O. Lawrence
Subject: Re: Determining what parameters exist for an item
Date: Sat, 23 Jan 2016 19:49:44 -0500

Hello Thomas,

I thought I was replying to the list, but I see now that I sent you a
personal email.  I was inside the archives and clicked on the reply button.
Sorry.  I'm not exactly sure how to respond and keep the post's hierarchy
going.  I hope I got it right this time.  All I did was reply to the digest
email, strip out what I didn't need, and replace the default subject.

Thanks for the info.  I had not looked at the "Extending"  manual yet.  I
had gone through first two chapters of the "Learning" manual already.  I had
already "googled" and downloaded a Scheme and Guile manual.  I also had
discovered the "Scores of Beauty" blog, but had not gone through all the
Scheme tutorials yet.  I have a lot of reading studying to do.  Your reply
has been very helpful.

Thanks,
Charles

----------------------------------------------------------------------------
--------

Hi Charles,

please keep the discussion on the list, apart from real private stuff.

2016-01-23 20:33 GMT+01:00 Charles O. Lawrence
<address@hidden>:
> Thank you for your replies.
>
> This is an example of you giving me a code sample that will display the
properties, and I thank you for it, but to a newbie to lilypond such as I
am, I have no clue what or why is in the procedure.  A little elaboration
would be nice.  For example, what is the lambda?  I can guess what the
string-upcase, display and display-scheme-music are, but where did you find
out about their existence and how to call them?   Is there a document or
book that explains all this stuff, more than the reference material, which
is more than overwhelming?  I realize you are an advanced user.  [...] I
never had the need or opportunity to study Lisp or Scheme, or whatever
lilypond input syntax is.  Any guidance is greatly appreciated.
>
> Charles

LilyPond uses an input language, which you will need to learn. Best start
reading the "Learning Manual".
Scheme/guile is used as an extension-language in LilyPond. A good starting
point for getting deeper into it is the "Extending Manual".
And ofcourse the guile-manual itself, please note we use guile-1.8 Apart
from the guile-manual, there are a lot of tutorials out there.

Details:
display, string-upcase and lambda are native guile
-> see guile-manual
Maybe look at this one, too:
http://lilypondblog.org/category/using-lilypond/advanced/scheme-tutorials/

display-scheme-music is defined in our source and is the scheme-version of
(LilyPond-syntax) `displayMusic', which is explained in the docs.
I sort of abuse it quite often, because it internally uses `pretty-print'.
(In .ly file I would always need to include the relevant module from guile
for pretty-print, which is tedious).
pretty-print puts out nicely formatted lists.
guile and LilyPond provide a plethora of different displaying procedures ...

ly:grob-properties and ly:grob-basic-properties are defined in C++ for use
in guile.
--> see Internals Reference
Same for 'after-line-breaking, which is a dummy-property called at a certain
point during compilation. Nice to put in all sort of stuff or for displaying
this and that, as done here.

`all-grob-descriptions' is an alist defined in define-grobs.scm.
Although it's public you'll find no documentation about it. Reason:
you shouldn't mess around with internals unless you really know what you're
doing ;)

So far the details for the little coding, but I'm afraid my explanations
will more obfuscate then enlightning...

My recommendation would be:
- try to read and understand the codings provided here on the list.
- Read the manuals: LilyPond, guile, guile-tutorials, etc

I'm not a programmer, though as a LilyPond-starter I had found that not all
was as I wanted it to be. So I started to learn guile to say her what to do
how. I did a lot of exercises: defining substitution-functions and
markup-commands, etc And ofcourse it's very good practise to read/understand
code from others and/or try helping other user.
The LSR is quite nice as well
http://lsr.di.unimi.it/LSR/


Hope it helps a bit,
  Harm



------------------------------





reply via email to

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