lilypond-devel
[Top][All Lists]
Advanced

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

Re: Creates a MIDI note length formatter (issue 5576062)


From: David Kastrup
Subject: Re: Creates a MIDI note length formatter (issue 5576062)
Date: Tue, 31 Jan 2012 10:57:09 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux)

Marc Hohl <address@hidden> writes:

> Am 31.01.2012 09:09, schrieb address@hidden:
>
>> Check out:
>>
>> http://crism.maden.org/music/swing.ly
>>
>> This is a function that takes music and returns two musics, one
>> swung and one unswung, w/ appropriate tags for layout and midi.
>> Then, in the two scores, just use \removeWithTag to get rid of the
>> tagged music you don't want (i.e. get rid of layout in MIDI and vice
>> versa).
> I know about this, and IIRC, it doesn't work with \partial 8 or
> concatenated rhythms, so a more built-in solution would be better, I
> think.

Classical non-sequitur.  The quality of the transform does not rely on
it being done in the backend.  Indeed, doing it there is not the 
best choice since n-tuplets should never be swinged, and you have the
situation that in
<< { c''8 c'' } \\ { e'16 e' e' e' } >>
the second c'' does _not_ start at the same time as the third e'.
Fixing that at the performing stage is not possible since the time
relations are then already established unswinged.

Indeed, if you encounter in swing a passage written as
\times 2/2 { c''8 c'' c'' c'' }
the execution would be expected unswinged.  Mathematically, \times 2/2
does not make much sense.  Musically, the instruction "play 2 equal
notes taking the time of 2 normally played notes" becomes non-trivial in
swing.

So it makes sense to do this kind of transform on the music expressions,
and not on the resulting events.

> And it is not about swing alone, see:
>
> http://code.google.com/p/lilypond/issues/detail?id=687

You are confusing the quality of one implementation with the qualities
of the approach as such.

-- 
David Kastrup




reply via email to

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