Hi Folks,
        I now have permission to release the articulation code
        to improve MIDI output for lilypond.  I've attached it as a
        tar.bz2 file here.  The code is copyright 2008 NICTA (my employer),
        but released under GPL version 2.

The simple way to use it is to use the lilywrap script in the tarball:
  $ lilywrap inputfile.ly
  $ timidity inputfile.midi

Long version of how to use it:

  \include "articulate.ly"
  
  Insert \unfoldRepeats \articulate into the appropriate places.

Short Example:

\include "articulate.ly"
\score {
        \unfoldRepeats \articulate <<
                \context Staff { 
                        \set Staff.midiInstrument="clarinet"
                        \relative c' {
                                \time 4/4 \tempo 4=100
                                c4-. c4( d e |
                                 f\trill) g\turn a b |
                                 c1-- 
                        }
        }
        >>
        \midi {}
}

What it does:
 * Any note not under a slur or phrasing mark, and not marked with an
   explicit articulation, is shortened by ac:normalFactor (default
   7/8)
 * Any note marked staccato is shortened by ac:staccatoFactor (default
   1/2)
 * Any note marked tenuto gets its full value.
 * Appogiaturas are made to take half the value of the note following,
   without taking dots into account (so in \appoggiatura c8 d2. the c
   will take the time of a crotchet)
 * Trills and turns are expanded.  The algorithm tries to choose notes
   within the time of the current tempo that lead to each twiddle
   being around 1/8 seconds; this can be adjusted with the
   ac:maxTwiddleTime variable.
 * rall, poco rall and a tempo are observed.  It'd be fairly trivial
   to make accel. and stringendo work too.

There's a TODO list a mile long; unfortunately I'm no longer being
paid to work on this, but I'm happy to coordinate the attempts of
others to work on it.  Also, my scheme coding is appallingly bad (this
is the first serious work I've done in scheme) so there're probably
major improvements that can be made.

Attachment: articulate.tar.bz2
Description: Binary data


--
Dr Peter Chubb  http://www.gelato.unsw.edu.au  peterc AT gelato.unsw.edu.au
http://www.ertos.nicta.com.au           ERTOS within National ICT Australia
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to