I notice that, if a note is not a whole number of semitones from c (so a MIDI 
pitch bend message must be sent), then the "release" phase of the sound is not 
pitch bent. Is this unavoidable behaviour of MIDI or a deficiency in Lilypond?

See the example below. The first note and rest show the whole 
attack-decay-sustain-release sequence. Now compare that with the second note. 
Its attack-decay-sustain are pitch bent but the release phase (audible during 
the second rest) is not. There is an audible drop in pitch.

I acknowledge that MIDI has deficiencies in this area: if a legato line 
contains notes that are pitch bent by different amounts, then either Lilypond 
must allocate notes to two channels alternately (thus consuming a resource - 
channels - that is in short supply), or else each note's release phase would 
get pitch bent by the following note's pitch bend instead of its own, which 
creates the original problem.

But you don't need this problem when a note allocated to a channel is followed 
by a rest in that channel. Is Lilypond writing a MIDI "pitch wheel change" 
message to take effect at the same instant as the MIDI "note off" message? If 
I'm right (I don't know of any app which converts a .mid file into a form I 
could understand - perhaps I'll have to write a C program myself!) then I think 
that Lilypond could produce better MIDI if it sent "pitch wheel change" 
messages only "on demand", i.e. together with "note on" messages, but not also 
with "note off" messages.

%%% begin example
\version "2.14.0"
\language "english"
\score
{
    \new Staff { b'4 r bqs' r b' }
    \midi { }
}
%%% end example

                                          
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to