What’s Here

Fourier.jar is a Java application that lets you mix sine waves to produce complex waveforms. It’s a work in progress. Here is a screen shot:

screen shot

Download the jar file and save it some place convenient, such as to your desktop. If your browser changes the name to Fourier.jar.zip, just rename it back to Fourier.jar; don't un-zip it. Then double-click it to run the program. Try adding frequency components and manipulating their frequencies, intensities, and phase relationships, and observe the resulting waveforms.

The jar file contains the complete Eclipse project, if you would like to look at and/or modify the source code.


  • Controls on the right side let you add frequency components to the composite waveform and adjust their frequencies, amplitudes, and phase relationships. There are options for associating different colors with each component, for temporarily hiding a component while letting it contribute to the composite waveform, excluding it from the composite, and totally deleting it.
  • The panel in the upper left side shows the composite waveform and the component frequencies. You can use the sliders to change the amplitude range displayed and to zoom/pan over the waveform. Click inside the waveform panel to turn the internal legend on and off.
  • The displayed composite waveform is produced by digitally sampling the continuous waveform generated; you can adjust the sampling parameters using the controls in the middle of the left side of the application. See Audio Laboratory for an introduction to the digital sampling process.
  • A Fourier Analysis of the composite waveform is shown in the bottom left part of the application.
  • The “Frequency Domain Control” will let you generate a list of fixed-point numbers representing the sample values.
  • The Options menu includes an option to save the waveform samples in a format suitable for processing using MatLab. With this option unchecked, the File menu lets you save the samples as a simple text file.

Known Issues

  • The “Frequency Domain Controls” panel is incomplete.