lilypond-devel
[Top][All Lists]
Advanced

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

Re: Support articulations, slurs and breaths in MIDI (issue 26470047)


From: Dan Eble
Subject: Re: Support articulations, slurs and breaths in MIDI (issue 26470047)
Date: Sat, 16 Nov 2013 01:20:39 -0500

On Nov 15, 2013, at 19:18 , Devon Schudy <address@hidden> wrote:

> Dan Eble wrote:
>> Fermata performance is not necessarily uniform.
>> . . .
> 
> This is why articulation performance needs to be customizable.
> . . .

OK, simply I misinterpreted the text of your message to mean that you 
implemented fermata performance as a tempo change.

>> [Uh oh, here comes the urge to rant about pianists arranging cello
>> parts.  Must... resist...]
> 
> I'm actually a wind player, not a pianist
> . . .

I didn’t mean you specifically. :)

> Design questions:
> * Should it return a gap or a duration? I think the latter is
>   convenient a little more often.
> * Should slurs use a different duration function or should it take
>   slur status be a parameter? The latter saves a context property,
>   and covers the staccato-under-slur notation for portato.
> * Should it take chords or individual notes? The latter is easier to
>   use, and supports partially tied chords. Does the gap between notes
>   ever depend on other notes in the chord?
> * If it takes individual notes, should it take NoteEvents or just
>   pitch and duration? The latter is more convenient but less general.

Well, since you’re asking -- I certainly wouldn’t bother to go this far if I 
were implementing it for my own use -- I think the you’d end up with more 
realistic output by maintaining a model of the current articulation state (hand 
position, fingering, etc.) and use a knowledge of the nature of the instrument 
(limited polyphony, sustain by rolling, crook changes, etc.) to search for 
optimal ways to change the articulation state from event to event, looking 
ahead to future events, and constrained by
  * the explicit articulations expressed in the ly
    (fingerings, bowings, breath marks, page turns, etc.)
  * the configured ability of the players (span of the hand,
    pulmonary function, number of fingers and thumbs, etc.)

But seriously: No matter how much Lilypond improves its MIDI output, I think 
that MIDI playback of anything other than keyboard and percussion instruments 
will always cause various parts of my body to clench.

For my own use, I wouldn’t consider look-ahead beyond the next pitch worth the 
increased complexity.  I do think it would make some difference if there were a 
rest between the current and next pitch.

For strings, I would think that the way that chords of 3 or more notes are 
broken (it’s hard to play more than 2 strings at a time) has more bearing on 
realism than minute adjustments of overlap/gap due to fingering.  (That seems 
like a much different problem though.)

>> Also, is overlap defined in units that are independent of tempo?
>> . . .
> 
> It isn't independent of tempo but it probably should be.
> . . .
> (lambda (pitch next-pitch duration slur?)
>   (ly:milliseconds (if (< (ly:pitch-octave pitch) -1) 40 30))))

Or (ly:seconds (... 0.04 0.03))?
— 
Dan




reply via email to

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