ToneGen is some simple software I put together, intially for my own experiments with sound and musical sound.
It has a single-tone mode, which allows you to generate simple sounds, and vary sound parameters such as pitch and phase continuously. This lets you experiment with a few acoustical things, including the ability to discriminate small pitch intervals. The single-tone mode is shown in the screenshot (1) immediately below.
The program also has a multi-tone mode. You generate individual fundamentals and overtones (=sines), specifiying either octave and note of the sine, or the multiple of the last sine frequency that was specified by octave and note (the latter for overtones and "displaced" overtones). The volume of each sine is controllable separately. You can also quickly switch between up to 3 different sounds. Multi-tone mode is to support experimentation with timbre, naturalness, and musicality. Multi-tone mode is illustrated in screenshot (2).
Screenshot 1 (immediately below) shows ToneGen using the single-tone functionality, which should give you a pretty good idea of how single-tone mode works.
Screenshot 2 (above). Multi-tone mode. In the setting in the screenshot, for sound 1, I have a fundamental set at the C# just a little more than one octave above middle C (in my software's notation, octave 0 note 0 is the A below middle C), with the first 5 overtones (one overtone tuned away from its normal positon) at various amplitiudes. Then I have the fundamental only for the A sharp just below middle C, and its second overtone. (Of course, normally you will not have equal amplitudes for the sines -- this was a quick screen shot.) Sound 2 is similar, but not exactly the same, as sound 1. (Sound 3 has a single fundamental, of a tone unexpressed in an unusual way--with a non-integral octave.)
Video Demo (single-tone mode)
Here is a video shot of someone generating tones, using the ToneGen. They have the output fed to my other software, Spectratune, which analyzes those generated sounds nicely. (Note that the ToneGen version in this old video is missing some of the newer features.)
MY MUSICAL PITCH REPRESENTATIONIn all of my software, I use A220hz as octave 0 note 0. Octaves thus can be positive or negative. Notes within an octave run from 0 to 11.9999..... . For example, middle C is "Octave 0 Note 3.0", the C above that is "Octave 1 Note 3.0". This is slightly different from the one or two standards usually used in music, but it is very easy to convert. (And I insist it's how any reasonable mathematician would set it up!)
INSTRUCTIONS: single-tone mode:
Single-tone mode is the default. When you start the program, you are in single-tone mode, and only the Screenshot (1) window appears (as well as a small output device control dialog).
(If you wanted to enter multi-tone mode, you would click a checkbox labeled "multitone-mode", which appears now below the "Alternate Chan if Stereo" checkbox. That checkbox is actually NOT SHOWN in screenshot (1), because I took that screenshot before I added multitone mode to the software! But it will be there in the software you download now.)
TO GENERATE A PURE SINE
Just keep "Harmonic Richness" at its initial zero position, or else keep it set at anywhere under 5% (I treat 5% as the cutoff for zero in my algorithm).
If you set the amplitude too high, your generated wave will go over the max level of the D/A converter quantization, which will yield a distorted wave. To be sure you are not doing this, take a peek at the wave you are generating with the "plot" checkbox.
This shows you the wave being fed to your sound card's Digital-to-Analog converter.
When you start the program, you are in single-tone mode, and only the Screenshot (1) window appears.
To enter multi-tone mode, you must click a checkbox labeled "multitone-mode", which appears now below the "Alternate Chan if Stereo" checkbox. That checkbox is actually NOT SHOWN in screenshot (1), because I took that screenshot before I added multitone mode to the software! But it will be there in the software you download now.) Anyway, when you check this, the screenshot (2) window will also pop up.
In multi-tone mode, the mousewheel can be used to adjust all 3 numerical parameters for each sine, as an alternative to typing changes. Using the mousewheel alone produces tiny changes, using it with the shift key down produces moderate changes, and with the ctrl key down produces large changes.)
Also, in the current version, and not shown in the screenshot (2), the program displays, for each sine, the net evaluated note position (half-steps above A220). The purpose of this is to allow the user to find overtone pairs which are close together, which may cause dissonance (i.e. within the "critical frequency difference" in psychoacoustician parlance).
You can also copy sounds taken at any instant from any recording, from my other software SpectratuneExper's spectrum, and move it, via the system clipboard, to ToneGen. (You copy it from the clipboard using obvious buttons in the Multitone-Mode Panel, which are not shown in the below screenshot, because the screenshot is earlier that my latest version.)
2014.7.20 Can transfer sounds from SpectratuneExper to ToneGen. Also, added automatic conversion between "octave and note" and "multiple of last prior oct and note", which is good for determining overtone relationships.
2013.11.19 For multiple tone mode, the 3 sounds can alternatively be switched by z,x,c keys. (This is for enhanced convenience with adjusting "probe tones".
2013.11.10b For multiple tone mode, made octave change when note rolls out of octave with mousewheel. In multiple tone mode, added calculation of net note, in order to help user figure out which overtones may conflict and cause dissonance, etc.
2013.11.6 For multiple tone mode, 3 separate sounds can be set, and rapidly switched between.
2013.11.5 For multiple tones, allows mousewheel as a method of changing numerical values.
2013.10.24 For multiple tones, allow fundamental to be turned off when there is a sequence of overtones being sounded.
2013.10.17 Added multiple tones support.
2007: Initial version