On Thu, Jan 13, 2022 at 04:40:17PM -0500, James B. Wilkinson wrote: [...] > If I make it with the English horn part correctly transposed, the MIDI > sounds terrible. If I make it with the English horn part untransposed, > it sounds fine. My conclusion is that the midiInstrument "english > horn" reads its part in C rather than in F. Shouldn't it play the > notes that a real English horn would? [...]
Lilypond actually doesn't know what an "english horn" is. As far as it's concerned, that's just an arbitrary name for a particular program number in the General Midi standard. It does not assign any meaning to the name beyond mapping it to that program number.[*] To get the right transposition, you need to use the \transposition directive (see the documentation for details) to tell Lilypond how the pitches are supposed to be interpreted. [*] In fact, I've used Lilypond to make MIDI performances of orchestras with instruments that don't exist in the General Midi standard -- by remapping program numbers to custom assignments. Lilypond is completely unaware of this, however, and still expects General Midi names for instruments. So what Lilypond thinks is an "english horn" in my score could be, for example, a bass clarinet or Wagner horn in the final output. The identifier "english horn" is just a stand-in for midi program #70. How that program is actually rendered is not controlled by Lilypond, but by the midi player (and how you configured it) downstream. T -- Heads I win, tails you lose.