The above Java Applet generates audio via Java FM Synthesis. The SpiderBell is a Java implementation of a 6-operator patch that I originally programmed on the Yamaha DX7 synthesizer. This controller is set up for 10-tone polyphony.
When clicking in the grid, the horizontal is translated to pitch and the vertical is translated to tone color, with the brightest timbre at the top of the screen. Sliders on the left control volume and note duration. The duration refers to the time from the click event until a "release" trigger is sent to the synth's envelope controller. Values are shown as milliseconds.
The dropdown and sliders on the right affect the pitch. The can be used to set the range of pitches represented by the width of the controller.
The visuals were partly put in for fun, but also help represent what is being heard. The glow balls are drawn with a RadialGradientPaint that is continually updated, where alpha-value differences are used as the gradient.
Needs cleaning up: (1) it is possible to get aliasing if the brightest tone is used at the top of the frequency range; (2) the timing of the glow-balls follows the slider, not the synth envelopes. The envelopes implement "rate scaling", a term used in DX7 programming that means that envelope rates are pitch-dependent. Thus, the pitches may turn off sooner or later than the globes disappear, especially for the lowest and highest pitches.
Other comments or questions are quite welcome!