Archive
FMC Synthesizer

About FMC

FMC is a sample-generating software synthesizer for the Amiga, written in 1989. It features freeform algorithms, which means 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.

The best bits?

  • Frequency modulation of any source by any signal, including combinations of PCM files and wave tables.
  • Freeform modular algorithms, pre-dating software synths like Reason.
  • Floating point engine, and 16-bit export at any sample rate for high-end samplers of the time.
  • Delay gates modulated by an input.

FMC Modular synthesizer Features

Algorithm Structure

  • Up to 32 (arbitrary limit) oscillators/operators per algorithm
  • 20 operator types
  • editable graph of connections between operators

Output

  • 8-bit or 16-bit (either byte order) PCM ouptut,
  • Frequency spectrum analysis
  • Waveform plots

Editing Transfer

  • PCM wave editor
  • Wave table editor
  • Interpolated transfer between wave tables and PCM files

Oscillator sources

  • Wave tables
  • PCM samples

Operator Types

  • Additive synthesis
  • Subtractive (filter) synthesis
  • Envelopes
  • Multi-sampling
  • Frequency modulation (FM) synthesis
  • Source switching (splicing)
  • Fade mixing
  • Ring modulation (WIP)
  • Delay gate
  • Implicit feedback loops
  • Global pitch control
  • Clip
  • Rectification
  • Threshold subtraction
  • Compression

Other

  • Custom hypertext help system with graphics, providing tutorials and technical documentation
  • Upward- and downward-compatible file format

Screenshots

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.

Waveform Editing

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.

Envelope Editing

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.

Source code

Find source code (GFA Basic, with GFA Basic Compiler directives) on GitHub: https://github.com/j5v/FMC-Amiga