lilypond-user
[Top][All Lists]
Advanced

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

Re: writing text on the staff & using numbers in music functions


From: Flaming Hakama by Elaine
Subject: Re: writing text on the staff & using numbers in music functions
Date: Mon, 2 May 2016 14:08:42 -0700

> > But I could not get it to move down onto the staff.  As described in
> > http://www.lilypond.org/doc/v2.19/Documentation/notation/formatting-text#text-alignment
> > "Vertical alignment is a bit more complex. As stated above, markup objects
> > can be moved as a whole; however, it is also possible to move specific elements 
> > inside a markup block."
> >
> > It took me a while to realize this meant that the techniques using
> > raise, lower, translate, general-align and translate-scaled
> > will NOT affect the "markup object moved as a whole",
> > but rather affect the relative position of objects within the markup object.
...
> Well, it's not true, see:
...
> Printing text in Staff depends of the settings for TextScript
> {
>   \override TextScript.outside-staff-priority = #'()
>   \override TextScript.staff-padding = #'()
>   s1^\markup {
>         \line { \circle "."  "This is the anchor" }
>         \translate #'(-25 . 0) \with-dimensions #empty-interval
> #empty-interval "xy"
>       }
> }

 
That's great, thanks for demonstrating that.
Just curious, but how did you ever learn this?

It seems doubtful that one would have arrived at this insight using the manuals.


Trying to find this info in the docs, the formatting-text page http://lilypond.org/doc/v2.19/Documentation/learning/moving-objects
starts out with a link to the LM about moving objects.

But neither that page, nor the NR section about text alignment 
http://www.lilypond.org/doc/v2.19/Documentation/notation/formatting-text#text-alignment
mentions the outside-staff-priority.


Searching for this property, it can be found in 
Tweaking Output > Placement of Objects > Outside-staff objects http://lilypond.org/doc/v2.19/Documentation/learning/outside_002dstaff-objects

But even here, there is no mention of how to get outside-staff objects placed in the staff.  

Of course, based on the naming convention "outside-staff objects", it seems unlikely that you could place an outside-staff object within the staff.  So, maybe this is a silly discussion to begin with.  However, since it is possible, I wonder if it should be mentioned?


"Objects with the lower value of the outside-staff-priority property are placed nearer to the staff, and other outside-staff objects are then raised as far as necessary to avoid collisions. The outside-staff-priority is defined in the grob-interface and so is a property of all layout objects. By default it is set to #f for all within-staff objects, and to a numerical value appropriate to each outside-staff object when the object is created."

If anything, one might guess that in order to get an outside staff object placed in the staff, you would specify it's outside-staff-priority as "#f", since the above quoted passase says that's the default for within-staff objects.

Yet, the example you provide sets TextScript.outside-staff-priority to an empty list.  Is an empty list equivalent to "#f"?


Then there is the matter of staff-padding.  The LM section on grob sizing mentions it with respect to vertical alignment of dynamics and refers to the section on Collisions of objects http://lilypond.org/doc/v2.19/Documentation/learning/collisions-of-objects

Within there, it is described in the section on Moving Objects  http://lilypond.org/doc/v2.19/Documentation/learning/moving-objects

"staff-padding applies only to those objects which are always set outside the staff – it controls the minimum distance from the staff to the outside-staff object."

This also seems to imply that an outside-staff object cannot be set within the staff.  

If you read this literally--but keeping in mind that you've demonstrated that it is possible to set text within the staff--it is saying that staff-padding does not apply to text markup (since text markup is not always set outside the staff.)

This would be more consistent if it said, "staff-padding applies only to outside-staff objects – it controls the minimum distance from the staff to the outside-staff object."  In which case the discrepancy is only in the naming convention, since an outside-staff object is not necessarily always set outside the staff.


And in the section specifically on the staff-padding property: 

"staff-padding can be used to align objects such as dynamics along a baseline at a fixed distance from the staff, when no other notation forces them further from the staff."" 

Which is to say, it is unclear why and how this relates to setting text within the staff.


So, it is not very clear where one would learn that both of these are necessary:

  \override TextScript.outside-staff-priority = #'()
  \override TextScript.staff-padding = #'()


In any case, thanks for your help.  What would I do without this list?



David Elaine Alt
415 . 341 .4954                                           "Confusion is highly underrated"
address@hidden
self-immolation.info
skype: flaming_hakama
Producer ~ Composer ~ Instrumentalist
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


reply via email to

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