Hi,<br><br>I've recently begun working in my spare time on a project involving STK. My ultimate goal is to create a responsive and accurate banjo synthesizer complete with hardware interface using AI methods to auto-discover which parameters most closely reproduce the sound and tonal response.
<br><br>Prior to this work, however, I have needed to build some tools which I may release in some form to the list if there is sufficient interest.<br><br>1.) I've created a .NET wrapper dll which encapsulates a number of (though not yet all) of the classes which ship with. This component allows for use of STK within C#, 
VB.Net or any other .Net language by including this dll as a reference.<br><br>2.) Secondly, I've began working on a component based UI similar to what you'd see in Visio. Ultimately sound modules (various generators, effects, and filters) can be dragged onto a form, and piped together. Currently, only the Input and Output of each module is piped, however, there is planned support for output=&gt;parameter piping as well as a dual-link parameter&lt;=&gt;parameter wiring scheme. (the term parameter refers to the attributes of the module. ie. frequency phase and amplitude are all parameters of a sinewave generator.)
<br><br>The widgets were a pain to code, but in terms of aesthetics and flexability I think it paid off (OOP at its best, lol)<br><a href="http://web.njit.edu/~ajh2/images/ModularUI2.PNG">http://web.njit.edu/~ajh2/images/ModularUI2.PNG
</a><br><a href="http://web.njit.edu/~ajh2/images/16Tap.png">http://web.njit.edu/~ajh2/images/16Tap.png</a><br><br>The screen shots above are from the working program integrated with the wrapper described above in (1). Changing the sliders results in a real time change in the audio, allowing for easy tweaking of values to obtain the sound you want. In playing with the reverb above with the 16 delays, it was interesting finding the various frequencies which resulted in resonance and constructive/destructive interference when played through the delay.
<br><br>I still need to implement a lot of modules, for example, I would like a Midi Input Module that uses an ADSR envelope to allow midi control of the model.<br><br>3.) Lastly, once the desired model has been created, I have plans to be able to compile the high-level diagram into native c++ code linking to the original stk classes. There is a good amount of overhead involved in being able to dynamically wire and change parameters on the fly, and also as a result of the generalized abstraction (not to mention c# inefficiency and drawing overhead). The native c++ version will be a lean implementation that should perform much better, allowing you to take your newly created instruments with you.
<br><br>Another advantage of this approach, is that as you create more complex models, you can encapsulate the functionality into a new module, exposing certain parameters. For example, In the case of the 16 delay reverb above, we could encapsulate that entire model into a new module, and choose to only expose the frequencies of each sine generator. The result would be a new module with 4 sliders, the 3 seperate frequencies, and an output gain. Everything being fed into the output module in the original model would be piped out of the ouput parameter of the new module. Pretty cool if i may say so.
<br><br>Adam Hines<br>