Max for Live Abstractions

Audio and MIDI example abstractions

The Max for Live Building Tools includes a set of helpful abstractions that you can use in your own Max for Live Audio effects, MIDI instruments, and MIDI effects. These abstractions provide programming examples and starting points for constructing your own patches.

Live Suite owners can download this Live Pack by choosing Your Account > Your Packs when logged in to the Ableton website and clicking on the download button to the Live Pack. To install the Live Pack, double-click on the .alp file


Finding the example abstractions

The example abstractions can be found in the Max applications folder:

  • Open the patches folder in your Max applcations folder. Locate the m4l-patches, open it, and open the Tools Resources folder located inside to find the patches listed below.

Example abstractions

Here is a listing of the names of the Audio and MIDI example abstractions, followed by a brief description.

  • M4L.bal1~.maxpat: Balance two mono signals with constant power
  • M4L.bal2~.maxpat: Balance two stereo signals with constant power
  • M4L.comb2.voice~.maxpat: Stereo comb filter voice for poly~
  • M4L.cross1~.maxpat: Crossfade two mono signals with constant power
  • M4L.cross2~.maxpat: Crossfade two stereo signals with constant power
  • M4L.delay.pfft~.maxpat: Frequency-domain delay line for pfft~
  • M4L.envfol~.maxpat: Signal envelope follower with shape controls
  • M4L.gain1~.maxpat: Scale a mono signal
  • M4L.gain2~.maxpat: Scale a stereo signal
  • M4L.MidiGran.voice.maxpat: A MIDI "granulator" engine to be used with poly~
  • M4L.pan1~.maxpat: Pan a mono signal with constant power
  • M4L.pan2~.maxpat: Pan a stereo signal with constant power
  • M4L.PitchScale.bpatch.maxpat: A pitch remapping abstraction to be loaded into a bpatcher box
  • M4L.PolyBeat.bpatch.maxpat: A pulse generator abstraction to be loaded into a bpatcher box
  • M4L.StepEcho.voice.maxpat: A MIDI delay engine to be used with poly~
  • M4L.tapdelay.voice~.maxpat: Tap delay voice for poly~
  • M4L.transp.pfft~.maxpat: Frequency-domain pitch shifter for pfft~
  • M4L.vdelay~.maxpat: Clickless variable tap delay

Live API example abstractions

Max for Live includes a set of helpful abstractions that demonstrate how to interact with the Live API in a Max for Live device. These abstractions provide programming examples and starting points for constructing your own patches that interact directly with the Live application. They are grouped by the part of a Live Session they can access and control.


Finding the Live API example abstractions

The Live API example can be found in the Max applications folder:

  • Open the patches folder in your Max applcations folder. Locate the m4l-patches, open it, and open the LiveAPI Resources folder located inside to find the patches listed below.

Global Abstractions

  • M4L.api.ObserveTransport.maxpat: Monitors the status of Live's transport (is the song playing or not).
  • M4L.api.ToggleTransport.maxpat: Stops Live's transport when the song is playing - start it if not.
  • M4L.api.SaveInteger.maxpat: Saves an integer number with the live set and restores it without letting anything through when set.
  • M4L.api.SaveLivePath.maxpat: This patch is used to store a path in a LiveSet.

Track Abstractions

  • M4L.api.ChangeTrackVolume.maxpat: Changes the volume of the currently selected track by a given value.
  • M4L.api.GetSelectedTrackIndex.maxpat: Gets the index of the currently selected (highlighted) track in the Live set.
  • M4L.api.GetVisibleTrackCount.maxpat: Gets the number of the visible tracks in the current Live set.
  • M4L.api.SelectMasterTrack.maxpat: Selects the Master Track of the current Live set.
  • M4L.api.SelectNextTrack.maxpat: A bang message selects the next track in the current Live Set.
  • M4L.api.SelectPreviousTrack.maxpat: A bang message selects the previous track in the current Live Set.
  • M4L.api.SetSelectedTrackIndex.maxpat: Sets the selected track to a given index. The index will be mapped against the list of visible tracks.

Scene Abstractions

  • M4L.api.FireSelectedScene.maxpat: Fires the currently selected Scene.
  • M4L.api.GetSceneCount.maxpat: Gets the total number of scenes in the current Live Set.
  • M4L.api.GetSelectedSceneIndex.maxpat: Gets the index of the currently selected/highlighted scene.
  • M4L.api.SelectNextScene.maxpat: Selects the scene next to the currently selected/highlighted one.
  • M4L.api.SelectPreviousScene.maxpat: Selects the scene previous to the currently selected/highlighted one.
  • M4L.api.SetSelectedSceneIndex.maxpat: Sets the selected scene to a given index.

Clip Abstractions

  • M4L.api.FireSelectedClip.maxpat: Fires the clip that is determinde by the currently selected (highlighted) scene and track.

Note Abstractions

  • M4L.api.GetSelectedNotes.maxpat: Locates the clip that is currently selected in the Clip View, read out all its selected MIDI notes and fill them into a Jitter Matrix.
  • M4L.api.ReplaceSelectedNotes.maxpat: Will replace the currently selected MIDI notes
  • M4L.api.ReverseNotes.maxpat: Reverses an input matrix of MIDI notes
  • M4L.api.InvertNotes.maxpat: Inverts an input matrix of MIDI notes
  • M4L.api.MoveInScale.maxpat: Moves a selection of MIDI notes without leaving the given scale
  • M4L.api.BuildChord.maxpat: Builds a chord on each input note
  • M4L.api.BuildArpeggio.maxpat: Builds an arpeggio on each input note

Device Abstractions

  • M4L.api.DeviceParameter.maxpat: This patch represents a Ableton Live device parameter. It accepts a paramter id as input and can set and get values in unscaled and raw format and output its min/max values.
  • M4L.api.DeviceParameterRemote.maxpat: This patch represents a device parameter
  • M4L.api.GetAllDeviceIds.maxpat: Takes a list of track ids as input, scan all those tracks for their devices and output a list of device ids.
  • M4L.api.GetDeviceNames.maxpat: Takes a list of device ids as input and generate two lists of device names, one with no special format and the other ready to be input into an umenu.
  • M4L.api.GetParameterNames.maxpat: Takes a list of parameter ids as input and generate two lists of parameter names, one with no special format and the other ready to be input into an umenu.
  • M4L.api.SelectDevice.maxpat: Builds a menu of all available devices.
  • M4L.api.SelectParameter.maxpat: Creates a list of all available parameters and fills it into an umenu. Use this patch inside a bpatcher object to display the menu. Outputs the id of the selected parameter (to be input in a M4L.api.SelectDeviceParameter object).