Quite awhile ago, I picked up the Game Programming Gems 3 book and in it there was an article, "The Stochastic Synthesis of Complex Sounds" by Phil Burke. It was an awesome read, and it opened my mind to the possibilities of sound synthesis as an answer to my problem of pathetic foley art kung-fu. The source code on the CD for that chapter is a little bit messy (uses a few macros, ugh, and public data members for the generator outputs, bleargh) but it does provide the source to a whole lot of units for filters, noise generators, etc... Which I can hack to my nefarious purposes.
A few months ago, as part of the continuing development on the Accidental Engine, I wrapped up the libnoise library for exposure to Lua. Now, I'm looking at doing the same thing to Burke's unit classes. I like the idea of chaining various units as libnoise does, and since Perlin noise and sound-noise are virtually identical, I assume the approach should work as well for the sound-noise units. It'll take a bit of restructuring, and I haven't yet gone through all the headers to see what I'm up against, but I should be able to set things up so that the sound generation works similarly to libnoise (and possibly merge the two code-bases into one library, since the crossover potential between them is so potentially extensive).
Ideally, I'd like to expose variants of Burke's unit generators to Lua script, to more easily allow experimentation. The book source includes sample generators for all sorts of cool sounds (rocket engines, falling rain, helicopter rotors, etc...) all generated 'on the fly' so to speak, rather than sampled via microphone. Neat as hell, if you ask me. It'd be nice to have a clean interface for creating unit generators and experimenting with chaining them together in an interpreted environment, to avoid the need for recompilation every time I change a filter setting or modify a parameter.
Anyway, that is what is going to occupy my brain for the remainder of this evening, and possibly several evenings to come (depending on how many wrinkles I have to iron out).
Although, I'm not sure if the golem project will utilize noise generated on the fly, or if I will simply load .WAVs of synthesized sounds. It all depends on the kind of performance I can squeeze out of the generation code.