Hi there.
I know zero velocity note on events can be treated as note off events if the note is playing.
However, can a NoteOn event with velocity zero ever act as a note on event in its own right if a note isn't playing?
This would clearly be an edge case, but I can sort of imagine a situation where a zero velocity note started a note at zero volume, but then afterthouch is used to increase its volume subsequently.
Thanks,
Malcolm
Sorry, but I don't think there is any 'can' about it. A zero velocity just 'is' the same as Note Off.
However, can you tell the difference between a Note On with velocity of 1 and the silence of Note Off? There may be some specific sounds/instruments, on certain setups, where a note of velocity 1 MIGHT be heard, but this may be unlikely? Have you checked that?
Geoff
Geoff is quite correct,
A zero velocity Note On is always treated as a Note Off.
This is quite specifically stated in the MIDI 1 specifications.
JohnG.
I should have said in my earlier post, but this fact helps regarding the use of Running Status, as it allow far longer sequences of midi data all using the same Status Byte (Note On). I don't know if the use of Note On with zero velocity was intentional for this very purpose, or if Running Status merely takes advantage of an existing fact.
Geoff
My interpretation, Geoff, is that it was intended this way. See below.
"MIDI provides two roughly equivalent means of turning off a note (voice). A note may be turned off
either by sending a Note-Off message for the same note number and channel, or by sending a Note-On
message for that note and channel with a velocity value of zero. The advantage to using "Note-On at
zero velocity" is that it can avoid sending additional status bytes when Running Status is employed."
Thanks everyone! That seems pretty unambiguous.
Malcolm