Note that these apps don't generate any sound on their own--they just process other samples and create new .wav files. I figured that since I was using these apps for compositional purposes rather than performance, I might as well keep it simple...
* drumbutt--an introductory stab at automated percussion. I'm please with how this turned out...even tho drumbot occasionally (well, usually) composes drum tracks that NO human would, it still sounds as though a real person is playing them. no drum machine sounds here!
* skunch--another crude DOS audio app. this one scrunches .wav files into unintelligibility. Works well w/ samples from talk radio. skunch was inspired by the weird inarticulate vocals in Mat Bergman's Fortunate Fun Shapes. Basically, skunch creates a "pastiche" of another .wav file by sampling a fraction of a second of sound, jumping ahead a few seconds, sampling another fraction of a second, ad nauseum, until the sample reaches a pre-determined length. Note--you'll probably want to do further processing after using skunch, as those disjointed bits between samples cause some severe artifacts. nothing a little low-pass filtering can't fix, tho...
* Bert!--this might be the coolest thing I ever wrote. an audio "travesty" program patterned after Henry Lowengard's BITE program which was written for the Amiga. Bert listens to a given .wav file, and makes a map of where the individual "words" are. By examining the frequencies of each word, and which frequencied words follow other frequencied words, the program calculates a simple "grammar". Bert then uses this grammar to generate new sentences using the "words" from its map. These new sentences are dumped to a new .wav file.
* random control wav--encodes a random modulation signal into a .wav file.
My current favorite c++ compiler (for Windows/DOS or whatever) has got to be Dev C++, made by the good folks at Bloodshed Software.
looking for c++ code for handling .wav files? I had found some decent info about this sort of thing, but the website in question went away. so here's a .h file that I wrote, borrowing heavily from the research of Evan Mertz: sample_and_wav.h...file is zipped, with a .txt file included providing an overview of functionality. Since the .wav file stores its audio data as type *char, it isn't easy to modify. So I created an equivalent class, "sample", which stores the data as two arrays of INTs, one each for left and right channels. methods for both classes allow for conversion, saving, and manipulation of data. most of the code is fairly brute-force, cuz that's pretty much my style.