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.
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