HOW TO USE THE FLOOMPTAGORPT RISING/FALLING TONE GENERATOR INTRODUCTION: This program generates a tone that seems to rise or fall forever. It's sort of like the tone described in http://en.wikipedia.org/wiki/Shepard_tone except that this application allows you to adjust various parameters. It's a Java application that can be downloaded and run on your local system. It requires Java (not the same as JavaScript) to run. Setting it up and using it may get a little technical. NOTES and CAUTIONS: Some Java security options may or may not interfere with this program's operation. If something doesn't work and there's no obvious reason, you may want to check the security settings. It mainly needs to be able to play audio into a mixer channel. In addition, the drop-down menu in one of the parameter-setting boxes needs to be able to set itself for "Always on top." Also, if you want to paste the session log into a text file to save it you'll need to allow the program to access the system clipboard. The defaults on at least some systems allow these. It does NOT need to write disk files or send email. Do NOT run it as root or with administrator privileges, especially if you don't know me or you got it from a third party. GETTING STARTED: Download the file Floomptagorpt.jar into any convenient directory (You may wish to create a brand new directory to keep this project separate from everything else). Open a command shell, go to that directory, and do java -jar Floomptagorpt.jar which should cause the application's window to appear. (Commands are given in Unix/Linux sytax. Windows or Mac may differ.) Once it's there, open your mixer, turn the master volume down to avoid unpleasantly loud surprises, click the application's Run button, and then turn the volume back up until you hear the tone at a comfortable level. If you need to stop the tone quickly (for example, if it's too loud and you can't turn the volume down) you can click the Stop or Pause button, or drag the output level slider (the one on the left) down to zero. Although many different settings of the various parameters are possible, the defaults will work reasonably well as a starting point. If something seems not to work, or only partially work, check the system security settings. Also, if you get no audio, exit the program and verify that your system's audio works with other software. SIMPLE CONTROLS: The Run button starts the tone playing, the slider at the right edge of the application window changes how fast the tone goes up or down, the slider at the left edge varies the output level, and the Pause and Stop buttons silence the tone. There may be a slight delay between moving a slider and hearing the change. This is due to the time required for the data to work its way through the buffers. (Possible future change: Smaller buffers?) The difference between Pause and Stop is that Pause just pauses everything so that when you hit Run it resumes where it left off, while Stop assumes you are going to be changing settings and thus resets a bunch of internal stuff. You will also notice that Stop enables the Advanced Controls (see below), while Run disables them and Pause has no effect. The sweep rate slider allows adjusting the frequency sweep rate. For any given setting the frequencies change at an exponential rate (straight lines on a semi-log scale). This can be expressed in units such as octaves per second. Positive numbers mean the tone's frequency is rising, while negative numbers mean it is falling. At the exact zero point the frequency remains constant. The relationship between the numbers on the slider and the actual sweep rate is non-linear. The actual rate in octaves per second is shown in the session log (see below). It can range from several seconds for a change of one semitone up to ten octaves per second in either direction. The output level slider adjusts the output level on a linear scale. It is calibrated in percent of maximum output level. Due to the nonlinear nature of human hearing, changes in the upper portion of the range may appear to have little effect. They can, however, be seen on an oscilloscope. You may prefer to use the level control in your system's audio mixer for most adjustments. (Possible future change: Audio taper?) There is also a Session Log that lists settings and such. If your system's security permissions permit access to the Clipboard you can paste the contents of the log into a text file for future reference. ADVANCED CONTROLS: WAVEFORM: The Waveform radio buttons allow a choice of four waveforms: Sine, Sawtooth, Square, and Triangle. They all have the same peak amplitude (before any phase shifts and such between the tone generator and the speakers). Thus their RMS values will differ. The amplitude is calculated so as to peak just below the clipping level in the event that all components ("voices") happen to add in phase with the output level control at 100%. Therefore the RMS levels will decrease as the number of voices is increased. FREQUENCY PARAMETERS: For a given waveform and sweep rate, operation is defined by four parameters: Number of voices (individual tone components), frequency separation (ratio between any two voices), minimum frequency, and maximum frequency. If these are all constant then given any three of them it is possible to calculate the fourth. Assume the frequencies are rising. Eventually one of the individual components ("voices") will reach the maximum frequency limit. At that time that generator will be reset to the minimum frequency limit and its frequency will begin rising from there. Thus all the individual frequencies will be between the lower and upper limits. Since they are all rising exponentially their spacing will remain constant in logarithmic frequency space. Given the number of voices and their frequency ratio, you can calculate the ratio between the minimum and maximum frequencies. It is simply the ratio expressed in logarithmic units such as semitones or octaves times the number of voices (An octave is a two-to-one frequency ratio. A semitone is a twelfth of an octave, or a ratio of the twelfth root of two.). The number of voices and their separation (in semitones) are two of the items that can be set from the Frequency Settings box. We choose to start the sweep in the middle of its range, which is the geometric mean of the minimum and maximum frequencies. Thus we set that value as our third parameter and use it to calculate the frequency limits. The results of these calculations are shown in the Session Log. NOTE: The program does not check the settings to verify that any particular combination is reasonable. Subsonic components, frequencies (or harmonics thereof) high enough to violate Nyquist sampling criteria, and so on are possible. Also, ringing in analog low-pass filters in the output hardware may result in peaks greater than the theoretical maximum level. The frequency ratio between voices is normally calibrated in equal-temper musical semitones (powers of the twelfth root of two). If you prefer to work with integer ratios (3/2, 5/4, etc.) use the "rational" option when invoking it: java -jar Floomptagorpt.jar rational The difference is rather subtle and may not be audible, but can be easily seen on an oscilloscope, especially with a small number of voices. FADE-IN AND OUT: For the effect of a continuous rising or falling tone to really work well, components that reach the upper or lower frequency limit and reset to the opposite limit should fade and out back in gradually so as not to be noticed. This is the default of the "Fade In/Out" check box in the "Transitions" box. If you turn this off the individual voices will remain at a constant amplitude, switching frequency suddenly at the limits. This may be useful for certain tests and demonstrations, espcially when viewing waveforms on an oscilloscope. CANCEL/DEFAULT/APPLY: These buttons control what happens to the settings you make in the Waveform, Frequency Parameters, and Transitions areas. "Cancel" returns the controls to the settings that were in effect when the tone was last playing. "Defaults" returns the controls to their factory defaults. "Apply" causes the control settings to take effect. These actions are noted in the Session Log. The frequency parameter settings have no effect on the Sweep Rate and Output Level sliders. Thus you can compare different settings at the same sweep rate. -- END -- 2011-07-14 23:41:23