Re: Line break in beam including rests

2016-01-23 Thread Robert Schmaus
Hi Nils,

Add 

\override Beam. breakable = ##t

before the break in the second example. That should do it ...

Best, Robert 


__

The cure for a fallacious argument is a better argument, not the suppression of 
ideas.
-- Carl Sagan


> On 23 Jan 2016, at 11:51, Niels  wrote:
> 
> Dear Lilypond-group,
> 
> I want to break after a bar.
> In the first example this shown.
> However, when a beam spans the break the 8th rest in example 2 causes a 
> problem. How can I create a line break here?
> 
> Thanks for your help,
> Niels
> 
> ---
> \version "2.19.35"
> 
> \paper {
>  indent = 0
>  ragged-right = ##t
> }
> 
> notes={
>  %First example
>  %here the break works after the 8th rest
>  r2. a8 r \break
>  a r8 r2. \bar "|."
> 
>  \break % Go to the second example
> 
>  %First example
>  %here the break does not work after the 8th rest
>  r2. a8[ r \break
>  a] r8 r2. \bar "|."}
> 
> \score{
>  \new Staff
>  \notes
>  }
> ---
> 
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Line break in beam including rests

2016-01-23 Thread Niels

Dear Lilypond-group,

I want to break after a bar.
In the first example this shown.
However, when a beam spans the break the 8th rest in example 2 causes a 
problem. How can I create a line break here?


Thanks for your help,
Niels

---
\version "2.19.35"

\paper {
  indent = 0
  ragged-right = ##t
}

notes={
  %First example
  %here the break works after the 8th rest
  r2. a8 r \break
  a r8 r2. \bar "|."

  \break % Go to the second example

  %First example
  %here the break does not work after the 8th rest
  r2. a8[ r \break
  a] r8 r2. \bar "|."}

\score{
  \new Staff
  \notes
  }
---

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: [OT] Linking to threads in this list Re: Infinite page length

2016-01-23 Thread Felix Janda
David Wright wrote:
[snip]
> As you probably know, each email posting has a "unique" Message-ID in
> the header, and typically this will be available in replies as the
> In-Reply-To header. Earlier Message-IDs may also be included in the
> References header.
> 
> Unfortunately, the system that copies the postings onto
> http://lists.gnu.org/archive/html/lilypond-user/ strips
> these fields from the header, and considers the User-agent
> a more important line. Is anyone here seriously interested
> that I post with Mutt/1.5.21 (2010-09-15) wheras Urs uses
> Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
> Thunderbird/38.5.0?

The Message-IDs are certainly more useful.

They can still be obtained by using the mboxes from

ftp://lists.gnu.org/lilypond-user/

or from the "Subject:" link at

http://article.gmane.org/gmane.comp.gnu.lilypond.general/109513

-Felix

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Line break in beam including rests

2016-01-23 Thread Urs Liska


Am 23.01.2016 um 12:09 schrieb Robert Schmaus:
> Hi Nils,
>
> Add 
>
> \override Beam. breakable = ##t
>
> before the break in the second example. That should do it ...

Yes, and just for the record: it's not the rest that's changing the
behaviour.
Urs

>
> Best, Robert 
>
>
> __
>
> The cure for a fallacious argument is a better argument, not the
> suppression of ideas.
> /-- Carl Sagan/
>
>
> On 23 Jan 2016, at 11:51, Niels  > wrote:
>
>> Dear Lilypond-group,
>>
>> I want to break after a bar.
>> In the first example this shown.
>> However, when a beam spans the break the 8th rest in example 2 causes
>> a problem. How can I create a line break here?
>>
>> Thanks for your help,
>> Niels
>>
>> ---
>> \version "2.19.35"
>>
>> \paper {
>>  indent = 0
>>  ragged-right = ##t
>> }
>>
>> notes={
>>  %First example
>>  %here the break works after the 8th rest
>>  r2. a8 r \break
>>  a r8 r2. \bar "|."
>>
>>  \break % Go to the second example
>>
>>  %First example
>>  %here the break does not work after the 8th rest
>>  r2. a8[ r \break
>>  a] r8 r2. \bar "|."}
>>
>> \score{
>>  \new Staff
>>  \notes
>>  }
>> ---
>>
>> ___
>> lilypond-user mailing list
>> lilypond-user@gnu.org 
>> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Piano pedal mark collision (\sustainOn, \sustainOff)

2016-01-23 Thread Przemyslaw Pawelczyk
Hi!

I have a problem with \sustainOn and \sustainOff colliding each other
in some cases.
I use following pattern

s32*31\sustainOn s32\sustainOff

instead of

s1\sustainOff\sustainOn

to achieve a bit better pedalling in MIDI, but it often looks bad on the paper.

Is there any way to improve it globally?
Is there any way to fine tune horizontal position of the pedal indication?

Or maybe there is even a way to use some Scheme magic that would allow
writing simpler form (s1\sustainOff\sustainOn), yet modifying it for
MIDI (changing off placement by given duration, 32 in  the example)?

Exemplary source file and PDF:
http://paste.przemoc.net/lilypond/piano-pedal-mark-collision/

Regards.

-- 
Przemyslaw Pawelczyk
Cross-site thinker, rookie composer, Linux apprentice
https://soundcloud.com/przemoc86

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Edition-engraver: Multiple editions in same file

2016-01-23 Thread Urs Liska


Am 22.01.2016 um 22:00 schrieb Ben Strecker:
> I’m working on a project that would have the same melody appearing in 
> different ranges in the same document.  Each range has its own set of 
> modifications through the edition-engraver, but using \removeEdition anywhere 
> in the file appears to remove that edition for all of the scores.  What is 
> the best practice for managing multiple editions in the same file?  
>
> I have attached a very simple example where I have two scores:  one that 
> should have a color modification applied, and another that should not have 
> any editionMods applied.

If your actual file is also organized using different \score blocks you
can achieve what you want by moving the layout block *inside* the score
block:

\score {
  \new Staff { \melody }
  \layout {
\context {
  \Score
  \consists \editionEngraver my.Test
}
\context {
  \Staff
  \consists \editionEngraver ##f
}
\context {
  \Voice
  \consists \editionEngraver ##f
}
  }
}

If that's not what you need please give more details on the actual use
case. It may be that we can help you further

HTH
Urs

>
> Thanks,
> Ben
>
>
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Edition-engraver: Multiple editions in same file

2016-01-23 Thread Kieren MacMillan
Hi Benjamin,

> So far this seems to be working, but I don't know if this is considered the 
> 'correct' way to do it.
> So have I kept myself on the beaten path or wandered into inadvisable 
> territory?

This is what I do, all the time.
I’ve never had any problems with it, so I’m assuming it’s the “correct” way.

n.b. You can even have multiple editions *in the same score*, by adding them 
[individually] to the appropriate contexts inside the \score block.

Cheers,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Controlling hairpin length

2016-01-23 Thread Michael Gerdau
Dear Harm and David,

I find this whole thread rather helpful and have just copied the
consolidated example as of Harm's last post into my personal snippet
archive.

Thank you guys,
Michael
-- 
 Michael Gerdau   email: m...@qata.de
 GPG-keys available on request or at public keyserver

signature.asc
Description: This is a digitally signed message part.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Determining what parameters exist for an item

2016-01-23 Thread Kevin Barry
On 23 January 2016 at 18:01, Charles O. Lawrence <
charlesolawre...@bellsouth.net> wrote:

> For example, what are all the parameters for a TextSpanner?


Do you mean this?
http://lilypond.org/doc/v2.18/Documentation/internals/textspanner
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Determining what parameters exist for an item

2016-01-23 Thread Charles O. Lawrence
Gentlemen,

 

How can I determine what parameters exist for an item?  For example, what
are all the parameters for a TextSpanner?  If my terminology is not correct,
please correct me.

 

If this kind of information is in the documentation, I cannot seem to
uncover it.  If so, Please point me in the right direction.  Is there a way
to programmatically uncover this information?  If so, please provide this
newbie with a code sample to do it.

 

Thanks,

Charles

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Edition-engraver: Multiple editions in same file

2016-01-23 Thread Benjamin Strecker
Thanks, Urs.

That occurred to me after a good night’s sleep.  I think I have *a*
solution now, but I don’t know if it’s the recommended way to do things.

My project contains four scores where the melody is the same but in
different registers.  There are some modifications that I want applied
universally to each score, but the individual scores have their own
requirements from different BreathingSign collisions, slur shapes, etc.

I now have my file organized with a global \layout block:

\layout {
  \context {
\Score
\consists \editionEngraver beams
  }
  \context {
\Staff
\consists \editionEngraver ##f
  }
  \context {
\Voice
\consists \editionEngraver ##f
  }
}

And each of the scores has it's own layout block consisted with an
editionEngraver unique to that score.  Here are the first two, for example:

\score {
  \new Staff {
<< \melody \dynamics \global >>
  }
  \layout {
\context {
  \Staff
  \consists \editionEngraver firstTreble
}
  }
}


\score {
  \new Staff {
<< \transpose e b \melody \dynamics \global >>
  }
  \layout {
\context {
  \Staff
  \consists \editionEngraver highest
}
  }
}

So far this seems to be working, but I don't know if this is considered the
'correct' way to do it.

So have I kept myself on the beaten path or wandered into inadvisable
territory?

Ben

On Jan 23, 2016, at 9:17 AM, Urs Liska  wrote:



Am 22.01.2016 um 22:00 schrieb Ben Strecker:

I’m working on a project that would have the same melody appearing in
different ranges in the same document.  Each range has its own set of
modifications through the edition-engraver, but using \removeEdition
anywhere in the file appears to remove that edition for all of the
scores.  What is the best practice for managing multiple editions in
the same file?

I have attached a very simple example where I have two scores:  one
that should have a color modification applied, and another that should
not have any editionMods applied.


If your actual file is also organized using different \score blocks you can
achieve what you want by moving the layout block *inside* the score block:

\score {
  \new Staff { \melody }
  \layout {
\context {
  \Score
  \consists \editionEngraver my.Test
}
\context {
  \Staff
  \consists \editionEngraver ##f
}
\context {
  \Voice
  \consists \editionEngraver ##f
}
  }
}

If that's not what you need please give more details on the actual use
case. It may be that we can help you further

HTH
Urs

Thanks,
Ben




___
lilypond-user mailing
listlilypond-user@gnu.orghttps://lists.gnu.org/mailman/listinfo/lilypond-user


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Determining what parameters exist for an item

2016-01-23 Thread Carl Sorensen
Charles O. Lawrence wrote:


> Gentlemen,
 
> How can I determine what parameters exist for an item?  For example,
>what are all the parameters for a
>  TextSpanner?  If my terminology is not correct, please correct me.
 


Charles,

Here is the way I do it, without programming.  You may find this less
confusing.

1) Look up the object in the Internals Reference, Section 3.1 All layout
objects.  For TextSpanner, you can use this link for version 2.18:

http://www.lilypond.org/doc/v2.18/Documentation/internals/textspanner


2)  The standard settings on this page tell you the default settings for
this object.  These are the most commonly used, but they are not all.

3) At the bottom of the page, the interfaces the object supports are
listed.  In the case of the TextSpanner,
these are font-interface, grog-interface, line-interface,
line-spanner-interface, side-position-interface, and spanner-interface.
Each of these interfaces has a list of properties found in the Internals
Reference section 3.2.  And the property lists are linked from the
TextSpanner page.

4) Going to one of these interfaces, e.g. the font-interface found in the
Internals Reference, section 3.2.36,

http://www.lilypond.org/doc/v2.18/Documentation/internals/font_002dinterfac
e


provides a list of user-settable properties for that interface, which will
affect any output item having that interface.

All of this is explained in section 5.2 of the Notation Reference.
Please read it for more information.

HTH,

Carl Sorensen






___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Determining what parameters exist for an item

2016-01-23 Thread David Nalesnik
Harm,

On Sat, Jan 23, 2016 at 3:29 PM, Thomas Morley 
wrote:

>
> 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
> ...
>

Actually, you can use pretty-print directly, as of 2.19.18.  See
https://sourceforge.net/p/testlilyissues/issues/4331/

David
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Determining what parameters exist for an item

2016-01-23 Thread Kieren MacMillan
Hi Carl,

> 4) Going to one of these interfaces […]
> provides a list of user-settable properties for that interface

Yes, but unless I’m missing something, you can’t find the default value(s) 
there, right?

I personally would love to be able to get, for any grob, a list of every 
settable value (“native” or “interfaced”) *including the default value for each 
setting*.

Cheers,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Determining what parameters exist for an item

2016-01-23 Thread Charles O. Lawrence
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
:
> 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



--



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


RE: Determining what parameters exist for an item

2016-01-23 Thread Charles O. Lawrence
Thanks Carl,

I will see where I get using your method.  As you pointed out, I had noticed
earlier that the property lists in the manuals are not all inclusive in one
place.

Charles


-Original Message-
From: Carl Sorensen [mailto:c_soren...@byu.edu] 
Sent: Saturday, January 23, 2016 8:07 PM
To: Charles O. Lawrence ;
lilypond-user@gnu.org
Subject: Re: Determining what parameters exist for an item

Charles O. Lawrence wrote:


> Gentlemen,
 
> How can I determine what parameters exist for an item?  For example, 
>what are all the parameters for a
>  TextSpanner?  If my terminology is not correct, please correct me.
 


Charles,

Here is the way I do it, without programming.  You may find this less
confusing.

1) Look up the object in the Internals Reference, Section 3.1 All layout
objects.  For TextSpanner, you can use this link for version 2.18:

http://www.lilypond.org/doc/v2.18/Documentation/internals/textspanner


2)  The standard settings on this page tell you the default settings for
this object.  These are the most commonly used, but they are not all.

3) At the bottom of the page, the interfaces the object supports are listed.
In the case of the TextSpanner, these are font-interface, grog-interface,
line-interface, line-spanner-interface, side-position-interface, and
spanner-interface.
Each of these interfaces has a list of properties found in the Internals
Reference section 3.2.  And the property lists are linked from the
TextSpanner page.

4) Going to one of these interfaces, e.g. the font-interface found in the
Internals Reference, section 3.2.36,

http://www.lilypond.org/doc/v2.18/Documentation/internals/font_002dinterfac
e


provides a list of user-settable properties for that interface, which will
affect any output item having that interface.

All of this is explained in section 5.2 of the Notation Reference.
Please read it for more information.

HTH,

Carl Sorensen






___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Determining what parameters exist for an item

2016-01-23 Thread David Nalesnik
On Sat, Jan 23, 2016 at 3:58 PM, David Nalesnik 
wrote:

> Harm,
>
> On Sat, Jan 23, 2016 at 3:29 PM, Thomas Morley 
> wrote:
>
>>
>> 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
>> ...
>>
>
> Actually, you can use pretty-print directly, as of 2.19.18.  See
> https://sourceforge.net/p/testlilyissues/issues/4331/
>
>
Hmm.  Though objections were voiced after this was pushed.  (See
https://codereview.appspot.com/222810043.  I'll offer again there to remove
the enhancement.)

--David
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


RE: Determining what parameters exist for an item

2016-01-23 Thread Charles O. Lawrence
Thanks for your reply Kieren.

I'm glad to see that I am not the only one who would like a list of all the 
properties of an "object" and their default values.

Charles

-Original Message-
From: Kieren MacMillan [mailto:kieren_macmil...@sympatico.ca] 
Sent: Saturday, January 23, 2016 8:21 PM
To: Carl Sorensen 
Cc: Charles O. Lawrence ; Lilypond-User Mailing 
List 
Subject: Re: Determining what parameters exist for an item

Hi Carl,

> 4) Going to one of these interfaces […] provides a list of 
> user-settable properties for that interface

Yes, but unless I’m missing something, you can’t find the default value(s) 
there, right?

I personally would love to be able to get, for any grob, a list of every 
settable value (“native” or “interfaced”) *including the default value for each 
setting*.

Cheers,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Determining what parameters exist for an item

2016-01-23 Thread Thomas Morley
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 :
> 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

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user