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

The pack can also be retrieved using the Available Packs link in
the Places folder of the Live browser.

Finding the example abstractions

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

On Windows, open the resources\patches\m4l folder in your Max
applications folder. Open the Tools resources folder located
inside to find the patches listed below.

On Macintosh, open the Max application bundle and naviate to the
Contents/Resource/C74/patchers/m4l folder. 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.

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 parameter id as input and can set and get values in unscaled and raw format and output its min/max values.

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 generates 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 generates 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).