|
From: | Trevor Bača |
Subject: | Re: Ferneyhough-style flared hairpins? |
Date: | Wed, 6 Mar 2013 14:06:44 -0500 |
On Mon, Mar 4, 2013 at 3:42 PM, Thomas Morley <address@hidden> wrote:
2013/3/4 Joseph Rushton Wakeling <address@hidden>:
> On 03/04/2013 05:29 PM, Trevor Bača wrote:This workaround was posted more than 2 years ago in the german forum
>>
>> I'm considering sponsoring the work and I'm curious to know if there would
>> be
>> any other adopters if the feature were implemented.
http://www.lilypondforum.de/index.php?topic=755.msg4238#msg4238
It's 2.12.3, though, compiles with 2.16.2, too.
Might be starting point:
\version "2.12.3"
flarePS = \markup { \postscript #"
.1 setlinewidth
-1 0.6666 translate
0 0 moveto
0 0 1 .1 1 .5 curveto
stroke
0 -1.3332 translate
0 0 moveto
0 0 1 -.1 1 -.5 curveto
stroke"
}
flare = #(make-dynamic-script flarePS)
{ g'2.\< a'4\flare }
-HarmHi Harm,Thanks fort this; I appreciate the workaround.I implemented a number of the missing dynamics, narrowed the width of the hairpins (which is customary when using these flared endings), and changed the curved flares to angled flares (which is also customary).The results are as follows.### BEGIN FLARED HAIRPIN EXAMPLE ###\version "2.17.9"\language "english"flare_ps = \markup \with-dimensions #'(0 . 0.1) #'(-1.3333 . 1.3333) { \postscript #".1 setlinewidth-1 0.3333 translate0 0 moveto0.25 0.75 linetostroke0 -0.65 translate0 0 moveto0.25 -0.75 linetostroke"}flare_sf_ps = \markup \with-dimensions #'(0 . 0.1) #'(-1.3333 . 1.3333) { \postscript #".1 setlinewidth-1 0.3333 translate0 0 moveto0.25 0.75 linetostroke0 -0.65 translate0 0 moveto0.25 -0.75 linetostroke"\translate #'(-1 . -0.625) \dynamic sf}flare_sfz_ps = \markup \with-dimensions #'(0 . 0.1) #'(-1.3333 . 1.3333) { \postscript #".1 setlinewidth-1 0.3333 translate0 0 moveto0.25 0.75 linetostroke0 -0.65 translate0 0 moveto0.25 -0.75 linetostroke"\translate #'(-1 . -0.625) \dynamic sfz}flare_sffz_ps = \markup \with-dimensions #'(0 . 0.1) #'(-1.3333 . 1.3333) { \postscript #".1 setlinewidth-1 0.3333 translate0 0 moveto0.25 0.75 linetostroke0 -0.65 translate0 0 moveto0.25 -0.75 linetostroke"\translate #'(-1 . -0.625) \dynamic sffz}flare_pp_ps = \markup { \concat { \raise #0.3333 \flare_ps \dynamic { pp } } }flare_p_ps = \markup { \concat { \raise #0.3333 \flare_ps \dynamic { p } } }flare_mp_ps = \markup { \concat { \raise #0.3333 \flare_ps \dynamic { mp } } }flare_mf_ps = \markup { \concat { \raise #0.6 \flare_ps \dynamic { mf } } }flare_f_ps = \markup { \concat { \raise #0.6 \flare_ps \dynamic { f } } }flare_ff_ps = \markup { \concat { \raise #0.6 \flare_ps \dynamic { ff } } }flare_fff_ps = \markup { \concat { \raise #0.6 \flare_ps \dynamic { fff } } }flare_pp = #(make-dynamic-script flare_pp_ps)flare_p = #(make-dynamic-script flare_p_ps)flare_mp = #(make-dynamic-script flare_mp_ps)flare_mf = #(make-dynamic-script flare_mf_ps)flare_f = #(make-dynamic-script flare_f_ps)flare_ff = #(make-dynamic-script flare_ff_ps)flare_fff = #(make-dynamic-script flare_fff_ps)flare_sf = #(make-dynamic-script flare_sf_ps)flare_sfz = #(make-dynamic-script flare_sfz_ps)flare_sffz = #(make-dynamic-script flare_sffz_ps)\new Score {\new Staff \with {\override DynamicLineSpanner #'Y-extent = #'(-1.5 . 1.5)\override DynamicLineSpanner #'staff-padding = #3} {\time 4/2\override Hairpin #'height = #0.3333c'2 \pp \< d'2 e'2 f'2 \flare_pc'2 \pp \< d'2 e'2 f'2 \flare_mpc'2 \pp \< d'2 e'2 f'2 \flare_mf\breakc'2 \pp \< d'2 e'2 f'2 \flare_fc'2 \pp \< d'2 e'2 f'2 \flare_ffc'2 \pp \< d'2 e'2 f'2 \flare_fff\breakc'2 \pp \< d'2 e'2 f'2 \flare_sfc'2 \pp \< d'2 e'2 f'2 \flare_sfzc'2 \pp \< d'2 e'2 f'2 \flare_sffz}}### END FLARED HAIRPIN EXAMPLE ###See the attached PNG for a table of results.Does anyone have an opinion on this type of solution?My feeling is that it basically works but feels a bit breaky. (It also means maintaining a rather large inventory of custom markup definitions, and suddenly realizing late one night while composing that "rfz" has been left out and needs to be added in.) Which makes me think the right thing to do is to commission Mike to implement a general solution.(The original thread from which Harm took the solution also points out that the postscript-rendered flares become too thin when you set a relatively small global staff for your score. Rendering the above example with #(set-global-staff-size 12) shows that this is true.)Any other opinions or workarounds before moving on to sponsorship?
mantenimento-spanners.png
Description: PNG image
[Prev in Thread] | Current Thread | [Next in Thread] |