M4L Patches

My M4L download page

M4l 6 check in progress!

As you guys probably know Live 9 has been released not too long ago, and with it came the long awaited “Max for Live 6”. So basically having Max 6, which was released quite a while ago, to power the Max for Live environment. Thus giving us Live users all the advantages which Max 6 provides (like Gen).

However, rumour has it that M4l 6 is not fully backwards compatible. Or put differently: some devices made for M4l 5 may not work properly on M4l 6.

I’ve been using M4l 6 for only a few days now, but rest assured that if some of my devices have issues then they’ll be fixed. However I do plan to continue to support both version of M4l, at least for the time being.

Now back to our regular program…

Here you get an overview of all my M4L Patches. If you’re looking for a quick download then see the M4L section in the download menu on the right. These are all plain .amxd files, so you may need to use the ‘save as..‘ option on your browser to download these. Also keep in mind that some of my patches have found a 2nd home on the Max for Live library website. You can find that one on MaxForLive.com.

This page will show you an overview of my M4L patches and tell you something about them. Also keep in mind that some patches will be more complete when downloaded from here since I can also provide full archives, something which isn’t (easily) possible on MaxForLive.com.

List of patches

APCP4d 1.0 – If you’ve been keeping up with the Ableton controllers you’ll probably know about the Novation Launchpad, and may even have seen its demo movie where its demonstrated how you can use the Launchpad to play beats on a drum rack, even with getting visual feedback on the buttons you pushed.

This patch does the same for the APC40, and no extra MIDI tracks required!  Its a MIDI effect; pull it in and make sure you have a drumrack sitting on the same track. Then turn it on and the upper 4×4 grid of your APC matrix can be used to play your drumrack, while also giving visual feedback on incoming notes. It auto detects an APC40 and will use the first it finds.

MIDITransposer 1.0 – Like a few other patches below this is a patch I made in answer to a request on the Max for Live forums. Its basically a simpler version of Ableton Live’s own Scale device; when active it will transpose all incoming notes to the note and scale you have selected. By default it will start at C1, but of course you can easily change this yourself.

Keep in mind that if you change the note to transpose to while a note is currently playing then that note will be cut off. This happens because I’ve kept the MIDI processing section as straight forward as possible to avoid latency. So when you change the note during play it needs to be stopped otherwise it would continue playing forever since you’d sent a different note off signal as soon as you’d released the key.

I also discovered that doing this (thus causing quick cut offs) gives a whole new sound effect all together. Something I might work out some more in future versions.

Simpler ControllerSimplerCTL 1.5 – This is a patch which I made at a request from someone else, but because it manages to give me quite some interesting musical results I decided to share it as well.

This patch controls a Simpler device on the same track by dividing its sample time in either 8 or 16 parts and shift the starting position of the sample according to the key you hit.

In other words; If you use 8 sections and press C#1 then the sample will skip its first 1/8th part. Pressing D1 will make it skip 2/8th part and so on…

Although specific I think it could still be useful for some people.

This is my LOM Navigator patch.LOM Navigator v1.95 – This patch allows you to fully navigate the so called Live Object Model (see the overview here) right from within Ableton Live.

While you navigate to a class it will show the current path at the bottom of the patch, thus making it easier for you to use the information you found in a patch of your own.

As you can see the latest version makes navigation even easier by showing names of List objects as well. When you point it to a certain class you can then use the ‘Properties’ and ‘Function’ menu’s to request the value of a certain property or to execute a certain function.

It also allows you to provide property values and function parameters.

Warning: Be careful when accessing the MixerDevice’s parameters. Once a parameter has been selected you will experience issues when trying to select the “canonical_parent”.  See readme and / or changelog.

This patch also gives full access to the control surfaces!

Tutorial (new): Many people have asked me how to use the LOM navigator and if I didn’t felt like making a video. At one point I did write a blog entry about it but now I can finally present you guys with a full tutorial which explains some basics of the LOM and how to use the LOM.Navigator.

The current version of the patch is 1.95, the following bugs have been found and addressed since version 1:

  • Added fail save to prevent crashes when checking MixerDevice parameters.
  • Fixed bug which prevented access to unnamed list objects (like clip_slots).
  • Fixed re-surfaced timing problem.
  • Fixed bug (after developing it) which would ‘overload’ the Live API (timing problem).
  • Fixed bug which made several internal objects within the Navigator visible for control surfaces.
  • Fixed bug in the ‘counter’ sub-patch which caused inconsistent behavior over time when accessing so called ‘list objects’ (objects which exist as a list; like ‘return_tracks x’ where x is a number which can range from 0 to 11).
  • The patch responded to the “canonical_parent” property no matter what mode you were in. This behavior is only intended for the ‘cs mode’.
  • It wasn’t possible to select a list object as soon as there was only one member to chose from. So if you had 1 return track in your live set you weren’t able to select it.

Known bugs: I’m aware of problems with the ‘Properties’ option; often you don’t get to see a value when you selected a certain property.

This is my M4L CueStop patchCueStop v1.3 – This patch can be used to stop (‘pause’) Live’s main transport based on several locators (‘cue points’) which can be placed in the arrangement view. After pressing the ‘Start / Continue’ button Live will resume playback.

You use this patch by adding locators in the arrangement view on the positions which you want to pause playback. These locators need to be named “stop”. When you’re done click “init” and the arm indicator should light up and the patch will display the amount of actions it found.

To start playback press the “Start / Continue” button. When the first locator is reached the patch will stop the global transport. When pressing the “Start / Continue” button again Live will resume playback from its current position. If there are any other “stop locators” present the ‘Armed’ indicator will light up again. Otherwise it will remain unlit and Live will continue playing without further interruptions.

Stop clip record screenshot.Stop Cliprecord v1.0 – This is a very simple but hopefully usable patch. It will stop the current clip from recording (in session view).

Simply load it into your liveset and midi-map its main button. Now as soon as you’re recording a clip hit the button and the recording of the clip will be stopped. There are some requirements for this patch to function properly; it depends on the currently recording clip to be highlighted. So if you’re going to use this patch do make sure that you have “select on launch” activated.

I am planning to come up with a more versatile version which doesn’t depend on the recording clip to be highlighted but that’s for a later time.

Auto RecorderAutoRec 2 v2.1 – This patch can monitor one of Live’s tracks (including the Master track) for an outgoing audio signal and as soon as a certain threshold is reached it will start global recording. This can make recording a lot easier since you don’t need to do anything but play your music.

After you selected a track to monitor you can set the threshold. You’ll see the value displayed in the top number box as well as a small black dot on top of the meter scale. As soon as the signal reaches the threshold the big round button will flash as an indication.

By default the device operates in testing mode; it only signals but no action is taken. As soon as you switch it to ‘Arm’ it will enable the global record as well as start the global transport the moment the threshold is reached.

LoopSet screenshot.LoopSet – A rather simple but useful patch; it allows you to set a loop brace by merely clicking on the “mark” button. Of course the main idea behind this is to midi map the button to a device, for example a foot pedal, which you can then use to create a loop ‘on the fly’.

The device has 2 modes; by default it will create and immediately start the loop it setup by moving the global transport to the start of the loop and setting the loop switch.  Next it also allows you to simply create the loop without taking any further action.

As soon as the start of the loop is set the “Arm” indicator will light up.

Tone generator patch.ToneGen v1.4 – This is all which it claims to be; a simple tone generator. It allows you to generate sine and saw waveforms and provides way’s to change the amplitude (volume) and the frequency.

When I learned about aliasing (‘Niquist theorum’) I wanted to have something to try this out for myself. And this patch more than provided. Do note that the saw wave is generated by an anti-aliasing oscillator.

There is still a lot which can be done here; like experimenting with phases and such, but since this is but a simple toy for me its merely a matter of time and effort (I need to feel like messing with it…).

The reason I’m putting it online is because it managed to help me study aliasing as well as provide solid ways to test and experiment with synths like Live’s Operator and Reason’s Thor and Subtractor.

And finally….


The M4LScope v1.8 – One of the first patches I created and something I’m still using on almost a daily basis today. It’s a rather simple but in my opinion also very useful patch. And it does what you see here; provides a scope screen for both channels which will show you the current waveform.

It has no ‘fancy’ options like auto correction or providing means to make sure that only a single waveform is displayed. In fact; at this point it also lacks phase detection. Its basically a “what you see, is what you get” kind of patch.

You can select the buffer being used (which will give you more waveforms). Next the sample rate and draw delay can be configured which makes it easier to show specific waveforms. Finally you can also chose from 3 different presets for graphic sizes; normal, smaller or bigger.

As of version 1.8 it also provides a sonograph (‘Spectograph’) window which allows you to see a sonographic display of your sound score.

As said, a simple but also quite effective patch.


  1. Hey, thank you for your work on M4L devices 🙂 But I just have to ask this noob question about the M4LScope: How do I read the middle scope screen? If it is not easy to explain, where can I get information about that?

    1. The middle screen is basically showing how both the left and right signals interact with each other, thus somewhat showing you how they “work” together. Basically the X axis shows you how the left signal whereas the Y axis shows you the how the right signal, and together you somewhat get to see how well a signal works.

      Its best seen when you use it on plain signals such as sawtooths or sinewaves. A good example of it can be seen in a previous post about Reason’s Pulsar dual LFO, check the bottom of the article for some screenshots:


      Hope this helps!

  2. Heya i am for the first time here. I came across this board and I find It really useful & it helped me out much. I’m hoping to present one thing again and help others such as you helped me.

  3. i just want to say thanks for the LOM navigator- you helped me understand a basic element of how the LOM works.

  4. Some great tools here! I have been looking for a transport looper for a very very long time.
    LoopSet is almost perfect. There are a couple things holding me back from implementing it into my set and I was wondering if you had any input.

    1. Is there any way to modify LoopSet to lock to downbeats? I can’t get it to cleanly quantize with any consistency.

    2. It seems like after the first time I mark an indicator and engage a loop, any subsequent marks I drop cause the transport to jump to semi-random parts in the song that don’t correspond to where I punched in and out. What gives?

    I can make a youtube video and link it to you if further clarification is needed.

    1. Addendum: disregard question 2.

      Figured out that double tap arms the loop, double tap disarms. The first question remains though. If there is a way to set loop control to quantize to global transport or to a determined fraction for clean looping then you, sir, have made my year.

      1. And the year has only started 😉

        It’s been way too long since I’ve been working on this, I hope to get a good synth evening upcoming Friday. If so I’ll look into this; its also been way too long since I’ve messed with Max.

        I’ll look into this and get back to you if I have any questions or such. Glad to hear you liked the tools so far.

        1. Excellent! I have spent months looking for a clean solution for this. There isn’t much out there that I know of that can do this. Having a ‘quantize to beat’ option would be huge. Thank you.

          1. Update:
            I started working on LoopSet. Took me a bit longer than I had planned (work,work,work) but you can expect an update being released next week (week of March 11).

          2. Shel, I’m not able to comment on your post below, but I just wanted to say dank je wel! I appreciate it.

  5. Hey man I just downloaded the Apcp4d and it doesn’t seem to work on Live9. Should I wait for an update or am I doing something wrong?


    1. I tested this on the latest Live 9 and it should work. Simply drag the patch onto a MIDI track, then drag a drum rack onto the same track (so it sits behind it) and it should detect the rack (check the indicator). Now all that’s left to do is turn on the device and play.

      It won’t work properly with an APC20, and perhaps it also doesn’t run too well if you don’t use the default script for the APC40. But apart from that it should work normally in Live9.

  6. I too haven’t been able to get Apcp4d to work. I get the indicator light now but then the drum pads don’t light up or trigger anything. I’m using a 64bit mac, could that be it?

  7. Hey Shell,

    Thanks for putting in all of the work making these plugins. I’m using 9.0.5 and cannot get APC4D to work either. I receive visual feedback on the APC40 on the top left 16 pads when I use my mouse to click chopped samples in MIDI note mode, but when I click them in the Drum Rack or use the APC40 there is no visual or audio response. This is with a brand new template with stock scripts. Any help would be appreciated, with features like this on the APC who needs a Push!


  8. with your knight rider patch in the tutorial you mantion when using the lom navigator you discovered you could only effect 1 clip slot at a time. is it possible that there is a max patch that can enable them all. in trying to set the stopped value as is possible with the lom navigator but on all clips

  9. Hey – Thanks for taking the time to make these patches and share with the community! I’d love to try out the Stop Cliprecord patch but can’t find the link to download here on your site (no right side menu in my browsers?) and the patch seems like the only one not available on MaxForLive.com. Any ideas? Thanks again!

  10. Hey Shell,

    Your website is broken. The sidebar is not showing hence I cannot download the patches. Please let me know if there’s another way to access them. Here’s the JavaScript error message:

    Uncaught TypeError: Cannot read property ‘show’ of undefined
    at resetSidebar (sidebar.js:45)



Leave a Reply