When using the native Ableton Live synthesisers, I spent a lot of time tuning parameters to find the perfect sound. This Max for Live tool is designed for faster exploration and design iteration of FM sounds. The main parameters of an FM synth can be randomised (oscillators, envelopes, and filters), while also controlling the amount of variation to create interesting, complex, and evolving sounds.
- Download
Generative.amxd. - Drag and drop it into a MIDI track in Ableton Live.
Because this synthesizer relies heavily on constrained randomness, it can occasionally generate harmonically dense signals or sudden volume spikes. Use a limiter just in case.
generative-synth/
├── .git/
├── .gitignore
├── README.md
├── Generative.amxd
├── patchers/
│ ├── generative_synth_DEV.amxd
│ ├── gs_env.maxpat
│ ├── gs_filter.maxpat
│ ├── gs_osc.maxpat
│ └── gs_rand.maxpat
└── media/
└── [UI screenshots]
On bang, gs_rand outputs a uniform random value centered around x, where variance controls the amount of possible variation. The output is guaranteed to be within [a, b]. Use low variance for subtle movement, and higher variance for jumps.
Inputs:
- randomise (bang): trigger new random number
- x [a, b]: base value in range
- a, b: minimum and maximum bounds (set as patch arguments)
- variance [0, 1]: amount of random spread around x
On each bang, gs_osc chooses one of five oscillator types: sine, triangle, square, sawtooth, or noise. The selected waveform is played at the incoming frequency and sent to the output.
Inputs:
- randomise (bang): randomly selects a waveform
- frequency: oscillator pitch in Hz
On each bang, gs_env generates a new ADSR envelope by randomising its attack, decay, sustain, and release values. It shapes the incoming velocity with a new envelope on each trigger.
Inputs:
- randomise (bang): randomises the envelope shape
- velocity [0, 127]: note velocity
- attack [1ms, 5000ms]: attack time
- decay [1ms, 5000ms]: decay time
- sustain [0, 1]: sustain level
- release [1ms, 5000ms]: release time
Patch
|
Presentation
|
On each bang, gs_filter updates the filter settings and routes the incoming signal through a biquad filter. The cutoff is controlled in MIDI-style units for a linear frequency response, while gain and resonance shape the character of the filter.
Inputs:
- randomise (bang): randomises the filter settings
- signal: audio input
- filter type: lowpass, highpass, bandpass, or bandstop
- frequency [0, 127]: cutoff frequency, mapped linearly from MIDI
- gain [0, 1000]: filter gain
- resonance [0.1, 10]: Q / resonance amount
Patch
|
Presentation
|
- Ableton Live 11 (or higher) Suite, OR Ableton Live Standard with the Max for Live add-on.
- Max 8 (bundled with Ableton).
Developed by Mikhail Cassar. Feel free to reach out with any bugs, feedback, or cool sounds you generate!
This project is licensed under the MIT License. You are free to use, modify, and distribute this device, as well as use it in commercial musical releases.







