I use lilypond to prepare modern-notation editions from mensural notation. Many performers prefer to have the original note values (lots of breves, longs, etc.) but it is quicker in lilypond to enter the notes as half-value. In other words, it is quicker, and more readable, to enter c1 c2 c1 c2 than c\breve c1 c\breve c1 etc.
To make the conversion easier, I've finally plucked up the courage to delve into Scheme for the first time. In the hope that it will be of use to someone, here is a way to parameterise the conversion. The example below adjusts notes, time signature, and triplet spanner appropriately, and will hopefully serve as a guide for automating other similar conversions. I write the lilypond code using half-values, and uncomment either line 2 or line 3 as appropriate:
\version "2.16.0" %$(define HALFTIME 0) % for note values of original MS $(define HALFTIME 1) % for halved note values
music = \relative c' { \time $(cons 4 (+ 1 HALFTIME)) c2 d e f \once \set tupletSpannerDuration = #(ly:make-moment 1 (+ HALFTIME 1)) \times 2/3 { g4 a g a c b } c1 }