Note on with velocity 0 should be treated the same as note off
MIDI libraries for Qt/C++
Brought to you by:
plcl
According to the MIDI 1.0 Detailed Specification document, a note on with velocity 0 message should be treated the same as note off. This is currently implemented for the Windows MIDI input backend but it needs to be done for all the MIDI input backends.
For example, using OSS MIDI input in VMPK with a Casio WK-1300 keyboard fails to release the notes properly.
Reference:
http://oktopus.hu/uploaded/Tudastar/MIDI%201.0%20Detailed%20Specification.pdf
That wrong behavior should be filed as a VMPK ticket. And the Windows MIDI input backend should be fixed to not force the translation at the library level.
The translation should be implemented in VMPK, not in the library, because the events usage depends on the final application. For instance a MIDI monitor application that only prints on screen the received values should display the original events received, and not their functional equivalence. In other words: libraries should provide mechanism, not policy.