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: Keith OHara
Subject: Re: Support articulations, slurs and breaths in MIDI (issue 26470047)
Date: Sat, 23 Nov 2013 14:26:04 -0800
User-agent: Opera Mail/12.16 (Win32)

On Sat, 23 Nov 2013 08:31:17 -0800, Devon Schudy <address@hidden> wrote:

Is “relative-volume” clearer? Also, should it have something like
“perform” in its name (or “midi”, like the midi* context properties)
to make it easy for users looking for a layout property to ignore it?

Adding 'midi-' would help.


The trouble with calling it ‘velocity’ is that dynamics currently also
set velocity rather than channel volume, which is why they can't
change the volume in the middle of a note. (There's code for using the
channel volume, but it's disabled, apparently because of bugs?) Also
users might expect velocity to be an absolute MIDI velocity of 1 to
127 rather than something relative to the dynamic.

Using the word 'velocity' in the name of the property that affects the MIDI 
"note-on-velocity" should not cause confusion.   Adding 'relative-', or the doc-string 
you already have, or seeing how the property is used with accents, should prevent misunderstanding 
as the absolute "note-on-velocity".

In version 2.12, dynamics were implemented as channel volume.  The volume did 
not change in the middle of the note, however, because there was no system to 
generate a midi event in the middle of the note.

Sometimes two lines of music share a midi channel (if we need all 16 channels 
for different instruments) and Jan added an option to do that automatically.  
But then when left- and right-hands of piano, for example, shared a MIDI 
channel but had different dynamics, they would fight over the single volume 
setting.  Jan moved the dynamic implementation to note-on-velocity.

MIDI note-on-velocity is good for dynamics.  I think several midi players 
adjust the timbre based on that velocity.  Crescendos can still be implemented 
with the channel 'volume', or better the 'expression', if we add a mechanism to 
send a few control-change events through the crescendo.




reply via email to

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