I, a person without a musical background, but who really loves music, wrote this software a while back in order to help myself get an understanding of what sounds correspond to the various things that are talked about by musicians and written about in music theory textbooks, and further to give me a better sense of pitch, and to help me listen better to music.
The software worked quite well for me, in improving my perception and understanding of music.
Thus, I've put it out there for people with similar needs to mine. (It also might be of some interest to people interested in, or perhaps researching, automatic music analysis.)
(I keep updating the software with new functions in an attempt to deepen my musical understanding and improve my musical perception. For example, in June 2016, I added some new ear-training features that address needs that I found not quite met by some of the ear-training software I have purchased.)
The program doesn't look at music through music notation. Rather, it uses a piano roll view, and captures the score through MIDI files (that you get from the Web). What the program does is lets you look at the Piano Roll view of the music (like any of numerous MIDI sequencers!), but also adds some things relating to chords, keys, and aural feedback.
Thus, there is an all-octaves-overlaid view of the notes, giving one kind of picture of the chords in the music.
There are other displays translating chords and keys to visual cues.
You can adjust the view to look at the piano roll in the context of the known, identified, or guessed-at key.
There is pitch feedback for your hum-along and or sing-along or single-instrument play-along appearing directly over the piano roll. (The pitch feedback can be either for what you are currently humming/singing/playing, or you can record and display the path of your hummed/sung pitch vs. midi music that you are playing.)
There is various aural feedback regarding the key: chords, cadences, and scales for the key can be played automatically. Also, the computer keyboard functions as a little piano where the tonic of the set key is on the very leftmost keys (i.e. 1, Q, A being the tonic in 3 separate octaves).
You can also use a MIDI keyboard controller to generate notes.
In all of the above cases, the notes that you play are shown overlaid on the MIDI piano-roll.
Additionally, I have put in some ear-training features that let you identify notes, or sing pitches, scales, etc. in randomly chosen keys. I have tried to make these features more flexible than in some other ear-training software I have used, by letting you have hum-along feedback whenever you want it, and also having tonic-identifying notes (cadence, scale, etc.) played whenever you need them. Also, the tonic-identifying notes can be from a different instrument than the pitches you try to identify. Further, both of these instruments can be randomly changed at the touch of a button from whatever set of MIDI instruments you select.
The software looks generally like this when it's running: