A few products have been recently developed that will allow you to sing or play a non-MIDI instrument, determine the notes you played, and write them to a MIDI file or control another instrument. The catch here, of course, is that these products can only recognize songs played monophonically -- one note at a time. That's fine if you sing solo or play an instrument one note at a time.
However, most prerecorded music is polyphonic. Attempts have been made over the last 25 years to create an automatic music recognition system that recognizes polyphonic music, that is, music containing more than one note at a time, for example: Chords, Music played by a group of people such as a band or orchestra, One person playing an instrument that produces more than one note at a time, such as a guitar or piano.
Unfortunately, this dream has proved to be elusive. If you wanted polyphonic audio to be converted to MIDI, there was simply no alternative but to succumb to the often tedious and time-consuming task of picking out the notes yourself, time that could be better spent being creative.
Finally, the result of a spark of a dream and six years of research, IMSysInc (Innovative Music Systems, Inc.) is offering its patent pending technology for polyphonic music recognition to musicians like you.