Risset Beats - These sounds run forever, being generated as
you listen, changing ever so slowly and subtly.
You don't have to know this to enjoy the sounds, but if you care - the parameters that are set in the .bat file for the sound are:
BaseFreq - fundamental frequency of the lowest tone in the cluster,
NumTones - the number of tones in the cluster,
NumHarmonics - the number of harmonics in each tone (zero phase, decreasing in amplitude as 1/(harmonic number),
Spacing - the spacing in frequency between each tone in the cluster,
Jitter - range of random variation in the spacing of the tones (fixed once the tones starts playing)
Starttime - if 0, the tones (and the harmonics) are all at 0 phase. You can "back up" to start, so that the zero phase alignment comes at some specified time after you start the sound.
(this works even when jitter is non-zero - however, you might not get exactly what you expect because of "To note" below)
Gain - amplitude scaling, units are such that the maximum settable is .1
To note: There is a lovely oh-so-slow variation in these drones that defies your expectation of exact periodicity with a frequency equal to the spacing. This is because the oscillators in the system are in a table which is read using a per-sample increment determined by the oscillator frequency. The increment is a fixed floating point number, slightly different for each oscillator. Floating-point round-off means that the spacing is not exactly equal between all tones, and thus the slow evolution of these drones. (I added the jitter parameter for this effect, but it turns out it wasn't necessary!). The fix would be easy enough, but these Risset Beats are about the only sound for which it would matter .....
Mario Athineos' Risset Beats page - Great spectrogram images for these sounds, and Matlab code to produce them.