The AlgorithmicGen class contains three methods, namely instrGen, scoreGenSingle, and scoreGenMultiple. These methods algorithmically generate what is known as a score and orchestra file for a language called Csound. One can place their specified parameters in the main method and simply copy-paste the resulting console output into their Csound compiler to have a fully-functioning, randomized orchestra and score file.
In the main(String[] args) method, I have written a sample call which generates 21 instruments using 9 different wave tables. I also have a call which generates 1500 lines of score for these 21 instruments, with a random start time between 0 and 60 seconds, and a random duration between 0 and 3 seconds. A sample output of such calls is below.
My instrument algorithm generates a base carrier oscillator of random amplitude (in the range 0 to 500) and of random frequency (in the range 0 to 500). It then randomly decides whether or not to use frequency modulation and whether or not to use amplitude modulation. It randomly generates the amplitude and frequency of these oscillators. This oscil uses a wave table which is randomly chosen based on the input number of available tables. The resulting waveform is then filtered through a band pass filter of random bandwidth and cutoff frequency. It is then used in waveguide synthesis where the waveguide kfreq and kcutoff are randomized. It also applies an exponential envelope with decay time proportional to the note duration.
The scoreGenMultiple method is a method that generates a Csound score in the console. Based on the inputs it generates a total of n lines of score for num instruments. Each line has a random start time between 0 and start seconds and a random duration between 0 and dur seconds.
A sample output (entirely generated by the algorithm) can be found in sample.csd