Hi Morgan,
Great to hear from you. I've kind of stalled my development of this project, partly due to the GPL licensing restrictions especially for commercial development. I started a new project Plink|Plonk|Plank (pl-nk) which aimed to solve this by not relying on GPL code, it only shares some of the array code from UGen++ which I had written previous to developing UGen++ in the first place.
Plus, I was planning to solve a few other issues along the way:
1. allow arbitrary sample types i.e., double as well as float, but also int16 or fixed point.
2. allow arbitrary sample rates, block sizes, (to support better control rate processing) and overlapped block processing (to allow FFT, mainly).
3. to allow more thread-safe operations when interacting with audio graph code without locking.
This all works pretty well (I'm using it for developing a few iOS apps that will be out later this year) but it became much more complex due to all three issues. Using C++ templates on its own has made the code much more complex and proper testing might be a project on its own. Overlapped processing doesn't quite work once uint generators are in more complex graphs and I very occasionally get crashing bugs that look like threading-related issues.
Documentation-wise the project looks more complex than it needs to be from a user's perspective as Doxygen just spits out what it sees.
But I started an overview to show how simple it is for basic usage:
One final thing: I hasn't had much testing on Windows yet.
Best
Martin