After doing some more reading, I now realize that the Synthesis ToolKit (STK) was developed independently of ChucK. This explains why it doesn't use ChucK ugens such as SinOsc. It also helps to explain why the ugens in ugen_osc.cpp/h and ugen_filter.cpp/h are implemented so differently than those in ugen_stk.cpp/h. What I still don't understand is why a decision was made to allow ugens that are not usable in C++ code. If I need a sawtooth wave in C++, it seems like I would need to copy and paste code to generate it myself. This is kind of contrary to the modular nature of C++. Are there any plans to remedy this and expose at least some interface to the "hidden" ugens? I would be happy to help with this. If not, how should developers create ugens that require functionality such as basic waveforms, etc. in C++? Thanks, Dylan