James Madison University


(M.D. Hall & T. Redpath, 2016)
A 3-oscillator+noise, formant-based, monophonic, subtractive synthesizer for the Max for Live platform that can effectively be used for both stimulus generation in psychoacoustic research and musical performance.

Screen Capture
Screenshots of devices in the FormAnt device bundle. Click to zoom.
Screen Capture
Click to zoom.
Screen Capture
Click to zoom.


Overview of Features

Oscillators and Noise Sources

  • 3 oscillators. Oscillators 2 & 3 are tunable to +/-an octave re: Oscillator 1, and their amplitudes can be adjusted independently.
  • Standard oscillators include anti-aliased sawtooth, rectangular, and triangle waves, plus sinewave.
  • Pulse width modulation (PWM, with rate and depth controls) for Osc1 when the rectangular pulse or triangle wave is selected. On the rectangular pulse, PWM rate alone can be sufficient to more closely approximate aspects of a glottal pulse.
  • Two user-assignable oscillators from stored .wav files; usr1 for harmonic, single cycles, and usrM for variable-length, inharmonic, out-of-phase material. These can be created from existing files.
  • A third user-assignable oscillator option, usrT, uses text files to assign amplitudes to a 50-harmonic oscillator bank. These can be generated independently, or by either mouse-drawing or typing within the host environment. The maximum frequency of a harmonic also can be set independently.
  • User directories automatically load, and with naming conventions, can assign fundamental frequency for proper playback of .wav files. Alternatively, the fundamental can be assigned/changed to affect playback rate. Files from the extensive Adventure Kid Waveforms single-cycle waveform compilation automatically load in the usr1 slot at the appropriate fundamental frequency.
  • For Osc2 and Osc3 both fine tuning and semitone control (+/- 1 octave) are provided, the latter of which permits simple construction of chord triads.
  • Master tuning (fine tuning up to +/- 1 octave) permits tuning to other acoustic instruments for live use. (The current fundamental frequency, F0, also is displayed).
  • Mixable noise source (0 = no noise - 1.0 = only noise); choice of white noise, pink noise, and a filtered signal to approximate frication noise in speech. The noise source also has a separate S-R envelope to permit ramping off from an initial noise to oscillators only.
  • Maximum source frequency can be limited by a 4th order low-pass filter.
  • Amplitude envelope is independent of the filters, with linear interpolation between values over specified times. Release values are triggered by note-off messages.

Parallel Filter Bank

  • 6 parallel band-pass (BP) filters with separate center frequency, bandwidth, and amplitude at onset, sustain, and offset. F6 is a state-variable filter that can be switched to low-pass (LP), high-pass (HP), or band-reject (BR) modes.
  • BP filters can be bypassed by zeroing onset values.
  • Filter movement is triggered by velocity (i.e., started by note-on, released by note-off).

Preset Management

  • Banks of 50 presets (with assignable names) can be saved externally and imported.
  • Noise-free preset switching via MIDI control of preset number (with ongoing notes completed prior to switching the preset)
  • F0 can be modified/modulated by MIDI. The time to linearly glide F0 from the previous tone at note onset can be set.
  • Amplitude modulation (sine /square) and vibrato (sine) with rate and depth control
  • Modulation wheel assignable to rate (in Hz) or depth (0 –100%) for vibrato, amplitude modulation, or PWM, as well as to LP cut-off frequency (.2 –1x)


  • Stereo effects (also available stand-alone) with assignable orders, including pitch-based chorusing with control of increased mistuning and level (in dB) for up to 4 additional copies of the wave, overdrive, as well as L/R delay (with % feedback and % direct signal)
  • Compensatory gain/attenuation (+70 to -30 dB) with peak-limiting


  • Programmed to remain very responsive to MIDI note on/off information despite very fast performances, and with pitch bend wheel assignment
  • Scrolling over any parameter reveals a description and brief instructions on its control within Ableton Live’s information window.
  • All parameters are MIDI-controllable, and have been assigned to appear in common MIDI controllers in an order that closely resembles the UI. A template of assignments (in banks of 8) can be revealed in an additional window by clicking the information button (“I”) for use with controllers that do not provide visual feedback about selected parameters. Bank 4 can be used to highlight/select a particular filter and rapidly assign formant frequencies.

Version History


  • Updates: Replaced fixed/maximum-amplitude oscillator banks with a 50-harmonic oscillator bank that permits user-assignable amplitudes via text files (that can be created within the device or externally). A small directory of initial text files is provided, as are a few new presets to serve as starter examples of the oscillator bank.
  •  Several small programming adjustments to reduce/manage CPU usage.
  • Bugfixes: Oscillator banks in noFX version of the device would lose peak amplitude on playback as higher harmonics exceeded maximum frequency. This has been corrected in the new 50-harmonic oscillator bank.

V1.090916 (Initial Release)

Installation and Recommended System Requirements

Software and System Recommendations

  • Included within this bundle should be the FormAnt device in two formats: with effects (labelled “Phattened”, which is the full version of the device for musical use) and without effects (which is well suited for research use or in combination with other musical effects). Also included should be a separate device, Phattener, containing just the multi-effects from FormAnt, thereby allowing for corresponding effects routing to be used in conjunction with other recorded material and virtual instrument plug-ins. An Ableton Live-formatted multi-effects rack also is provided to give users an alternative to the MaxforLive effects device. Finally, separate copies of any included preset banks, as well as empty preset banks to start generating banks of new presets, are provided so that they can be restored/used as needed.
  • All devices have been created for, and tested using, PCs only.
  • Initial development and testing has been limited to the latest 64-bit version of Max7. Users should be using a licensed copy of Ableton Live 9 in conjunction with MaxforLive. Future development is anticipated for stand-alone operation.
  • Minimum System Requirements: Windows operating systems (Windows 7 or later) with 4+ GB RAM

Installation Instructions

  • Download the needed files. All of these should be contained within a single archive. This is a compressed .zip file. If this is labeled with an alternative extension (e.g., .jmu), then once the file has been downloaded, simply rename the file to have the “.zip” extension instead.. Then extract the file to a temporary location on your computer.
  • Place the device file(s) (they have the extension .amxd) in the desired location, which could be in your Ableton Library, or alternatively, any folder where you choose to store MaxforLive devices.
  • Take the folder labeled FFwaveforms and move/copy it to your root directory (i.e., C:/). Do not place this in a subdirectory. (Note: Advanced users can alter the placement of this directory, but doing so requires subsequently opening FormAnt in Max and then modifying the referenced directory for both the user-specified waveforms, usr1 and usrM, as well as for text files that specify amplitudes for the 50-harmonic oscillator bank (usrT). This folder initially contains empty subdirectories for single-cycle and multi-cycle waveforms (in .wav or .aiff formats) that can be read into the usr1 and usrM slots, respectively. The subdirectory labeled text contains initial examples for the usrT oscillator bank, and can be easily expanded by the user (either by direct creation of a corresponding text file, or alternatively, by drawing or typing values for each harmonic within the device itself—press the # button to access this latter option). 
    Should you fail to get any sound when selecting waveforms from user-specified slots, then it is likely that the FFwaveforms folder is not located on the C: root directory.
  • FormAnt should load like any other MaxforLive device. We hope that you enjoy it!