GNU Solfege is a music training program written in Python designed to aid musicians improve their musical abilities and talent. It's free software released under the GNU Public License, and part of the GNU Project. The primary focus of this program is to provide a teaching tool that teaches different methods of playing the triangle (also known as "the staff") in music. This can be done by using the Fretboard, which shows where the fingers should be played on the piano keyboard. Other techniques such as chord substitution teach different ways to play each chord, and Solfege provides a large library of them.
Some people believe Solfege to be better than, or even exactly like, the famous Fretboard musical analysis programs. However, these programs are not free. Solfege has a few advantages over the Fretboard, however. Most importantly, it doesn't matter what you play - it just cares about how you play. That's really all that its function is.
What does it give you? Well, first of all it has thousands of exercises that cover almost every chord, scale and arpeggio in existence. You can choose a certain key or chord for each exercise so you know exactly how to go about performing the same exercises over again, as well as giving you many examples of how to improvise. Solfege also has a number of chord harmonizing exercises which compare interval sizes of major and minor chords. These are useful when learning how to harmonize chords of different scales. And lastly, it comes with its own set of virtual instruments: midi based ones for playing VSTs, as well as virtual drums for practicing.