This question is something only your musician can possibly answer, so if you could have your musician look at this, it would be great.
In order to produce the smallest possible filesize of a MIDI to be used on the JavaME platform, the musician avoids using too many controllers and commands within the track, and try to only set a few parameters once in the beginning of the track, such as panning and volume.
Then we try to stick with only NOTE_ON and NOTE_OFF events in the track itself.
I began thinking, that some instruments, like e.g. drums, theoretically doesn't need a NOTE_OFF event, since they are very short sounds already. Same goes for a marimba and a pizza string. So I experimented by removing all NOTE_OFF events for drums and marimba in a 38kb file, resulting in a 25kb file with no hear-able difference. That's great! 13kb is a big deal on the JavaME platform, isn't it?
BUT, now I'm thinking, if I'm violating the format by doing this "trick". Will it in reality eat up polyphony and possible crash on some devices? Or does a short instrument infact have a kind of auto-note_off according to the specification?
Some phones have socalled Scalable Polyphony, meaning they auto-scale the MIDI if it has too much polyphony. But can we count on that technology to handle the increasing polyphony built-up?
Somehow I just can't believe, that playing 500 bassdrums over 250 seconds without NOTE_OFF events, would result in a 500 polyphony MIDI. I mean, surely there has to be some kind of standard mechanism in a MIDI playback device that goes "Hey, this instrument is clearly done playing, so I'll kill it now."?
So what do you think? Is it stupid to eliminate NOTE_OFF events for short instruments? Is the NOTE_OFF event actually required by the specification in order to end a note, and will 500 bassdrums without a NOTE_OFF event result in 500 polyphony?
Thanks for any feedback.