My take on this is that if each key/note of a piano only produced the fundamental (no overtones at all), it could be possible. But that is not the case.
Even the simplest of cases (hypothetical of course) where each note had only the fundamental and the first overtone (an octave higher), and the pianist struck only two keys an octave apart (dampers on the strings to prevent SR), how could software tell if one or two or three keys were struck?
seems like you could program the recognition software to only indicate notes or signals at a certain volume or dynamic level? it would seem the overtones would have a different dynamic signature than the struck note? not that i have a clue...
A small problem arises: what if I play middle C very quietly and high C loudly? The dynamics solution to distinguish the two notes then won't work.
As a piano player I very often do play notes at different dynamic levels (velocities in the midi terminology) for effect and nuance.
On a clarinet, a number of notes can be played with different fingerings (upper and lower registers). The result is notes with the same/similar pitch but different timbres. How does software get the right one?
In general instruments that can play more than one note at a time and in which there is "cross-talk" (sympathetic resonance) between notes will be extremely difficult to decode. Single note instruments (horns, etc) that can't hold more than one note at a time may be possible.
But personally I'm not betting on the complex instruments ever being decoded.
An orchestra? I don't even dream of that one.
When is the last time you heard a good saxophonist that didn't use pitch bends - now what does the software do? Guitars use them frequently and they employ SR.
I've created pitch bends in my MIDI editor - is there an easy way to notate this on a score?
There are so many complexities that the practicality of the undertaking is questionable.