lilypond-user
[Top][All Lists]
Advanced

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

Re: Tie Crusade


From: David Kastrup
Subject: Re: Tie Crusade
Date: Fri, 12 Jul 2013 15:36:09 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Urs Liska <address@hidden> writes:

> As some of you will have noticed, Janek yesterday published an article
> on lilypondblog.org announcing that he intends to make a considerable
> effort substantially improving LilyPond's tie formatting - one of the
> fields Lily really can use some updates.
> After having collected countless examples of badly formatted ties and
> having spent countless hours with tweaking ties he decided to give it
> a serious try.
>
> I'm not posting this to praise Janek but to make sure _everybody_ gets
> the chance to see that post. While he already has done very thorough
> research the project is just too big for him alone.
>
> So anybody who is interested in getting better default ties from
> LilyPond _please_ read his post at
> http://lilypondblog.org/2013/07/lilypond-tie-crusade and consider
> joining him. While the most urgent need would be people who analyze
> and improve the C++ code with him he will also be grateful for any
> discussion (of design strategies, engraving goals ...) or even
> examples of badly engraved default ties.
>
> Feedback is welcome on this list, lilypond-devel, the blog post or
> directly by email to Janek.

Well, here is a cross-referenced parade of partly awful ties.

\version "2.17.7"
\header { tagline = ##f title = "Conny rates Jazz" }
\score
{
  {  $@(map!
       (lambda (p d) #{ \footnote #'(1 . 2)
% This is the simplest way to make a chord name markup?  Ugh.
                        \markup \score { \new ChordNames { < address@hidden > }
                                         \layout { } } Stem
                        < address@hidden >address@hidden #})
; this $@ produces elements for a sequential music list via map!.  Each
; element is constructed from p, a list of pitches making up a chord,
; and from d, which is a list first containing a duration followed by
; _optional_ articulations, so address@hidden actually can return several 
tokens of
; _different_ type.
;
; The following form constructs the list of pitch lists for use in p
       (map!
        (lambda (i)
          (map!
           (lambda (i)
             (ly:make-pitch 2 (+ 1 (* 9 (quotient i 5)) (* i -2)) 0))
           (iota 5 i)))
        (append! (iota 34) (list 32)))
; The following form constructs an (end-less) list of lists containing
; a duration and maybe articulations.
       (apply
        circular-list
        (map!
          (lambda (m) (cons (ly:music-property m 'duration)
                            (ly:music-property m 'articulations)))
          (extract-typed-music
             #{ s4.~ s~ s4~ s2~ s2 #}
             'skip-event))))
      <c' e' g' a' c''>1 \bar "|."
  }
  \midi { \tempo 4 = 220
          \set Staff.midiInstrument = "acoustic grand"
        }
  \layout { }
}

-- 
David Kastrup

reply via email to

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