JUCE is a very, very well-designed cross platform framework that was used very successfully in the development of Tracktion, a competitor with programs like ProTools and Garageband. The API is C++ based but carefully designed to shield you from the weirdness of C++; if you needed to create a cross platform app and learn C++ at the same time this would be the gentlest possible introduction.<p>Jules, the creator and prime maintainer of JUCE, is indefatigable. I think maybe he's triplets, but nice triplets. He answers questions on the forum (<a href="http://www.juce.com/forum" rel="nofollow">http://www.juce.com/forum</a>) at all hours and with extreme patience. There seems to be absolutely no difference between the way he treats casual users vs. enterprise customers on the forum.<p>JUCE can be used to develop audio plugins, synthesizer programs, etc., but is also a complete framework for GUI apps that have nothing to do with audio. It has canvas drawing, 3D support, and forms support.<p>There's a ton of documentation on the site and the source code is a dream to read. If you were creating an API for something you would be well served to see how Jules did it.<p>I rank JUCE with web2py as one of the two most comprehensive, ridiculously underrated open source products I've encountered.