lilypond-user
[Top][All Lists]
Advanced

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

Re: LilyPond benchmarks - request for proposals


From: David Kastrup
Subject: Re: LilyPond benchmarks - request for proposals
Date: Sat, 01 Mar 2014 14:04:25 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Urs Liska <address@hidden> writes:

> Hello LilyPond users,
>
> LilyPond's declared claim is "automated engraving", and we're often
> talking about how exceptionally good its default results are. But
> we're also often talking about stuff that isn't good enough by default
> (see for example Janek's blog post about how many slurs and ties he
> had to fix for our big Fried edition).
>
> So I thought of collecting a concise set of reference or benchmark
> scores to be put on a - not too prominent - place on
> lilypond.org. These should explicitly be done without any styling
> overrides or manual tweaks (only some page layout may be accepted if
> the type of score requires it).
> These benchmarks would automatically be built for any new version of
> the website and give us a clear picture of what has to be done to
> achieve perfection.
> And I think that - even with exposing our "imperfections" - we're not
> giving away because this default output scores will always be soo much
> better than most of the competition could hope for.

I am not sure that "input without manual adjustments" is a natural
concept for all WYSIWYG programs, so I'm not sure that the comparison
with other programs should be a prime motivation.  It's more like seeing
for ourselves where we could do better.  Of course, it would be nice to
see the progression (hopefully) for 2.0, 2.2, 2.4, 2.6, 2.8 ... 2.18.

> Today I'd like to ask for suggestions: a) to assemble a set of score
> _types_ to be used in that benchmark series, b) possibly for concrete
> suggestions.
>
> Of course the example scores should expose (more or less) exemplary
> input style.

I suppose that rules out my favorite bad tie demonstration subject (see
below).  But it probably can be converted to "canonical" non-computed
form by using \displayLilyMusic on the generated music and paste the
results.

> My ideas so far are:
>
> - classical piano piece
>
> - string quartet
>
> - solo instrument
>
> - moderately complex orchestral score
>
> - SATB choir with piano
>
> - complex song
>   -> We'll probably be able to use one of our Fried songs for that
>
> - complex score from 20th century (not graphic yet)
>   -> I have a proposal for that already:
>
> https://dl.dropboxusercontent.com/u/49478835/lily-examples/variations-and-theme-default.pdf

Well, the following tie-rich example is a Jazz chord progression.  Jazz
chords are likely a good contestant for multiple tie configurations.

\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]