bug-lilypond
[Top][All Lists]
Advanced

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

Re: Issue 687 in lilypond: Enhancement: inequal MIDI quantization of equ


From: lilypond
Subject: Re: Issue 687 in lilypond: Enhancement: inequal MIDI quantization of equal durations (swing, rubato)
Date: Tue, 13 Jul 2010 04:56:39 +0000


Comment #4 on issue 687 by chicagogrooves: Enhancement: inequal MIDI quantization of equal durations (swing, rubato)
http://code.google.com/p/lilypond/issues/detail?id=687

I thumb this up and I too am willing to contribute, first by specifying the feature.

The way it works in Ableton Live is there is a quantity called "Global Groove Amount", and a setting that applies it to eigths or sixteenths.

This is a number, from 0 to 100 (but most useful at and around 33), which - for the eigth note example - is ignored on quarter note beats, but for those syncopated eigth notes, displaces them later in time by the proportion of 100 specified. Example: assuming 100 divisions per quarter note, the syncopated eigth-note falls on 50 without swing, but with 33 groove factor, the number 50 is increased 33%, and so becomes 66.

Notes that are neither exact eigth notes (which have full groove factor applied), or exact quarter notes (which are unaffected by groove factor in eigth-note mode, much like eigth-notes are unaffected in 'swing 16th' mode) can either be left unaffected, or proportionally affected, dependent on a configuration override (the default should be to leave them unaffected).

This would be really easy to implement, and would not require lookahead, just the ability to determine whether a given musical event is a downbeat per that swing-mode, and the ability to alter the displacement of the note. The visual representation of the note should not be altered, this only need take effect in midi output.

This feature is basically the rhythmic equivalent of transposition- music written one way, and played another.. but instead of translating in the pitch domain, we are scaling in the time domain, modulo the distance from certain interval boundaries.

I would actually suggest calling this a Swing_Performer, available only for midi layouts (I'm not sure i have my terminology right here, but that's the idea, in the same way you can add and remove Dynamics_Performer for midi output)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]