The professional software that Latios is referring to is of course, a team of highly proficient musicians who will listen to your song and notate all the parts. Realistically, there is no way you can program a computer to recognize the waveforms of more than maybe two completely different instruments. Even humans who aren't trained can't tell the difference between the tone of a trombone and of a trumpet, played at the same pitch.
What you are asking for is a program which can listen to a point in a sound, and isolate every frequency being played. It must then match up the frequencies with the known waveforms of various instruments depending on their overtone combinations (which, mind you, is different for each individual instrument, which is why two guitars never sound exactly the same). Remember that the computer has no idea what instruments are being played, it only knows what sounds are happening at that specific point. Having done that and decided with surety the precise combination of instruments being played, it must then guess the beat of the music by again analysing waveforms, and use this guess to approximate the note lengths of each instrument part. You now seem to expect the program to separate the notes into readable parts, so that each stave is represent by a single or group of instruments. I ask you, how could a computer POSSIBLY know which part a trombone is playing just by listening to the sound? There have only been a few people since the baroque period of music who have been able to listen to a song and notate each individual part (1st violin, 2nd violin, etc) with accuracy, and for comparison's sake, one of them was Mozart.
Put simply, you aren't going to find software to do the job well, if at all.
The best I can recommend, as I said, is Band-in-a-Box 7, which can analyse a music file and tell you the chords and bass note of the piece, if you give it a time signature and help it find the beat of the song.