FMC is a sample-generating software synthesizer for the Amiga, written in 1989. It features freeform algorithms, which meant you can create your own audio synthesizer.
Uniquely for the time it was written, it combines many synthesis techniques, using any sound sources; not just sine waves, but PCM sound files and wave tables. Its suite of components could emulate the characteristic parts of mainstream synthesizers of the time (Yamaha DX, Roland D, Korg M). FMC was designed as a sample generator for real-time synthesizers, so did not have a sequencing element, and lacked performance parameters.
The FMC program occupies about 45 KB of disk space, along with 120 KB of hypertext documentation, and 200 KB of patch files.
Screenshots are shown at 50% resolution. Original resolution was 640 x 512, in 4 colours.
Main editing screen
The main screen shows an algorithm circuit diagram, below the controls. An operator is highlighted, and its parameters shown just above the circuit diagram.
Edit wave tables by drawing with the mouse. UI actions: scale to use full amplitude –1 to +1, reset to sine wave, load and save, and a PCM editor.
Edit a PCM File
View any file, and lift sounds from plain binaries or samples. Edit the wave with the mouse, and optionally save.
Splice wave tables into a file, or copy a segment of the file into a wave table. These copy operations are interpolated with sub-sample precision, for smooth waveforms from relatively coarse original material.
Choose PCM samples as sources
Operators can take their sources from PCM wave files, 8-bit or 16-bit. Here, a slot is being changed to use another file.
For example, one PCM file can frequency-modulate another, which is a great advance on the DX-type operators which could only use sine waves.
FMC 16-stage envelopes are relatively trivial, without 'performance' parameters.
Highlight a time range in the editor, scale the range in time, and normalize the amplitude.
Frequency Spectrum Output
The display is a fourier transform, charted as harmonics of the tuned frequency.
In this example, the algorithm comprises two operators: The first operator is a sine wave of frequency 8, being frequency-modulated by operator 2, a sine wave of frequency 2. The envelope of operator 2 starts at level 0, increasing towards level 100 at the end.
The result can be clearly seen as a Bessel function, that is characteristic of frequency modulation.