lilypond-user
[Top][All Lists]
Advanced

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

Re: Tweaking Hairpin shape


From: Stefano Troncaro
Subject: Re: Tweaking Hairpin shape
Date: Tue, 6 Feb 2018 11:36:40 -0300

Sorry, my previous reply was rejected because of the attached images. Werner, I hope that the links are sufficient.

---------- Forwarded message ----------
From: Stefano Troncaro <address@hidden>
Date: 2018-02-06 11:05 GMT-03:00
Subject: Re: Tweaking Hairpin shape
To: Andrew Bernard <address@hidden>
Cc: lilypond-user Mailinglist <address@hidden>


@Werner
Sure, I attached a few from here and here. Of course there are many more, in these and other scores. In case I was not clear before, not every rotated hairpin is like this. They are a quite natural possibility when engraving by hand, not so much in digital scores. I think they have their uses.

@Andrew
Thanks for your suggestion! I have not used PostScript but from what you mention I gather it will be a very useful tool. I can picture many scenarios where I would need it, so I will look into it.


2018-02-06 11:22 GMT-03:00 Stefano Troncaro <address@hidden>:
Thank you David! I think I should be able to work something out from here, I'll post again when I have some kind of update.

2018-02-06 11:04 GMT-03:00 David Nalesnik <address@hidden>:
Hi Stefano,


On Mon, Feb 5, 2018 at 11:53 PM, Stefano Troncaro
<address@hidden> wrote:
> David and Harm, I'm really impressed by the level of expertise you both have
> showed in this thread. The function works wonderfully, and I'm really
> grateful for your help!
>
> I feel kind of bad for asking, but I'm stuck after trying to do what I
> thought would be a minor tweak. I wanted to make it so that the two lines
> that form the hairpin would end in the same vertical line, since when the
> hairpin is rotated the end-points of the two lines are displaced. I tried
> achieve this by drawing a white box that overlaps with the line that
> overextends, therefore "deleting" the excess.
>
> While I could not always place the box correctly, due to how
> ly:stencil-stack works (I don't explain this further because of the
> following), the real problem I found is that even when the box is properly
> placed, the shortened line looks off. This is because Lilypond naturally
> makes line endings smooth, so the "cut the excess with a box" approach
> creates a hairpin with one line ending smoothly and the other ending
> harshly. This is less evident for thinner lines but is easy to see with
> thicker ones. Another flaw of this approach is that the white box reserves
> unused space.
>
> So, with that in mind, I wonder: is there a way to smoothen the line after
> "cutting" it (which I doubt) or, lacking that, is there a way to access only
> one line of the hairpin to shorten it by the necessary amount? The later I
> imagine like a Hairpin.shorten-pair that affects only one of the two lines.
> Alternatively, is it more sensible to just draw the two lines and stack them
> into a stencil? I have not yet tried this but the more I think about it the
> more it looks like the most viable option. I tried to search the definition
> of ly:hairpin::print to see how Lilypond does this, but I couldn't find it.

At this point I think you would get the best results by rewriting
ly:hairpin::print from scratch so that it has the existing
functionality with your enhancements worked in.

At some point I translated the function from C++ into Scheme for some
experimentation.  It's fairly direct.  I found a version of this where
I left the original C++ code inlined as comments
(add-shorten-pair.ly).

I used this as a preliminary to adding 'shorten-pair directly into the
C++ code, and I don't remember if I made improvements to the codebase
along the way...

Hopefully, you can make use of it!

I also located a file which shows what you can do from scratch: here
adjusting the size of the circle in the circled tip (not with
shorten-pair here...)  FWIW.

Hope this helps...

David



reply via email to

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