JSyn - modular synthesis API for Java.
JMSL - Java Music Specification Language
PortAudio - cross platform audio I/O API for 'C'

WARNING - This tutorial describes the old original JSyn API. Please refer to the current docs for more up-to-date information.

JSyn Tutorial

Hearing Frequency and Amplitude

The best way to understand frequency and amplitude is to hear the effect of changing them. This JSyn Applet creates a SineOscillator and then sets its frequency and amplitude ports based on the value of two scrollbars. We use a handy subclass of ScrollBar provided with JSyn that displays its value on the screen.
We also send the output of the SineOscillator to an on-screen oscilloscope so that we can see the effects visually. The waveform display has time on the horizontal axis and the value of the oscillator output on the vertcal axis. It is updated automatically about once per second.
To Do:

To see how I did this, please look at the source code for this Java Applet.