lilypond-devel
[Top][All Lists]
Advanced

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

Re: PATCH: new types of arpeggio


From: Chris Jackson
Subject: Re: PATCH: new types of arpeggio
Date: Sat, 8 Sep 2001 18:38:01 +0100
User-agent: Mutt/1.2.5i

On Sat, Sep 08, 2001 at 01:22:35PM +0200, Jan Nieuwenhuizen wrote:
> Chris Jackson <address@hidden> writes:
> 
> > I've had a stab at a (vaguely) calligraphed version of the directed 
> > arpeggio:
> >
> > http://chris.fluffhouse.org.uk/arp.png
> >
> > It's bold and blends better with the style of the arpeggio squiggle. Any 
> > comments on size/curviness/goodness of fit? 
> 
> This looks much more like it; but I cannot really judge well it from
> this picture; can you post a better resolution, or just the mf code?

OK, here goes with the code.. Most of it's just copied from the upper 
half of the arpeggio squiggle, it's only the last five lines which are
the actual arrow.

def draw_arpeggio_arrow = 
        save thinness, height, width, overshoot, se, sw, ne, nw, alpha;
        pair ne, nw, se, sw;
        height# = staff_space#;
        width# = 0.8height#;
        overshoot# = 0.25 staff_space#;
        define_pixels (height,overshoot,width);
        set_char_box(0, width#, 0, height#);
        alpha := -40;
        nw = dir (alpha+180);
        sw = dir (alpha-90); se = dir alpha;      

        penpos1(rthin,     alpha+90);
        penpos2(5/4 rthick, alpha);
        penpos3(5/4 rthick,     0);

        z1 = (width/2, height) - overshoot*se; % numbering is consistent with 
the arpeggio symbol
        z2 = 2[z4,(width/2,height/2)];
        z3 = (0.5 width, 0.5 height);
        z4 = (0.25 staff_space, rthin);
        z6 = z2l + 1/2rthin*sw;
        z9 = (width/2, height) + overshoot*se;
        fill z1l {se}..{se} z6 .. z3l .. z3r.. z9{nw} ..{nw} z1r.. cycle;

        bot z10 = ( 0.5w,  0   );
        lft z11 = (-0.3w,  0.8h);
        rt z12  = ( 1.3w,  0.8h);
        pickup pencircle scaled 0.5 rthin;
        filldraw z3 -- z12 {dir -130} ..  {dir -110} z10 {dir 110} ..  {dir 
130} z11 -- cycle;
enddef;

fet_beginchar("Arpeggio arrow down", "arrowdown", "arrowdown");
        draw_arpeggio_arrow;
fet_endchar;

fet_beginchar("Arpeggio arrow up", "arrowup", "arrowup");
        draw_arpeggio_arrow;
        currentpicture := currentpicture scaled -1 shifted (0.8staff_space, 
staff_space);
fet_endchar;


-- 
chris



reply via email to

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