Comment #31 on issue 687 by [email protected]: Enhancement: inequal
MIDI quantization of equal durations (swing, rubato)
http://code.google.com/p/lilypond/issues/detail?id=687
Yeah, fantastic work Johannes! I look forward to getting the time to try
this out!
The icing on the cake would be the ability to additionally specify relative
weights (I mean, volume, or velocity in MIDI-speak) for each note in the
swing group, since swing is a function of not just temporal placement but
also temporal loudness (thanks to Barak Schmool for teaching me this).
This should make the swing sound MUCH more human :)
For example, in jazz swung 8ths typically the second 8 is slightly louder
than the first. And in a typical samba swing, you could approximate the
emphasis by saying that the first 16th note in every four is the loudest,
followed by the fourth, followed by the second, and the third is the
quietest.
I'm not sure what the best syntax would be for this. Maybe something like:
\applySwing 16 #'(3 2 2 3) #'(102 97 95 100) { c'16 c' c' c' }
where the weights would be percentages relative to the current dynamic
context (forte vs. piano etc.) - but if possible the velocity map should be
optional. Maybe the two transformations should be decoupled, e.g. so that
you first \applySwing and then \applySwingVelocity to the result. This
would allow relative velocities to be specified to repeat at longer
intervals than the swing itself repeats, e.g. you could have jazz swung
eighths within a 3/4 time signature and give slightly more emphasis to
(say) the 1st and 3rd quarters. Or swing the sixteenths in a samba 4/4 and
have 16 relative weights in the velocity map so that it repeats once every
measure. This could allow for some very life-like grooves!