We moved to a new shop! head over here to see what's new

MF Twister Ableton Script

Description and Instructions

This script requires Ableton 9.6 or higher , if you are running an older version grab v1.2 from the sidebar


This mapping was made for Ableton 9.6 and is fully compatible with the Midi Fighter’s sequencer mode.

This guide refers to the 2.0 version of this mapping and it will be updated to reflect changes in following versions. 


  • Track Select/Solo/Arm/Mute
  • Track Volume/Pan/Sends
  • Device control and navigation (On/Off, Next/Prev Bank, Next/Prev Device, Device Lock)
  • Focused Track Controls
  • Transport controls


After downloading Twister Ableton Script v2.0.zip from DJTechtools and unzipping it a folder will be created with the same name that will contain this guide and three more files: Twister_Ableton.mfs and a folder named Script.

1. Open the MF Utility and import the Twister_Ableton.mfs file via File > Import Settings.

2. Copy the contents of the Script folder (_Mono_Framework, _Tools and Twister) to your Ableton Live's MIDI Remote Scripts folder.

  • WINDOWS - Located in “C:\ProgramData\Ableton\Live 10 Suite\Resources\MIDI Remote Scripts”. Program Data folder is not visible by default, you might need to enable "Show hidden folders" as shown here).
  • MAC -  Right click on your Ableton's app and click "Show Package Contents” and navigate to “\Contents\App-Resources\MIDI Remote Scripts\".

3. Launch Ableton Live and the script should detect your device and set itself up. If this doesnt’t happen go to Preferences and under MIDI Sync tab select Twister in the Control Surface drop down list and set the correct input and output MIDI ports.


  • Requires August 13th 2014 firmware or higher
  • Changing the side buttons’ order will break this mapping so avoid it to prevent losing functionality: If that is the case, reload the .mfs file.
  • If the script doesn't show up make sure you copied over all contents of the Script folder to the intended destination and NOT the Script folder as a whole.
  • This script was originally made by Amounra for the Livid Ohm64 controller and has been edited to extend part of it's functionality to Twister and PY files are included in this release. If you mod the original script or this one in any way don't forget to credit the original author.

Problem downloading or other issues? Let us know on the forum.
Comments for v2.1.0
Julian 2 months ago
This mapping is great! But I'm having an issue getting the device bank to control M4L devices. Is there any documentation on how to enable that? I would love to be able to use my twister to control the ML-185 (https://maxforlive.com/library/device/75/ml-185-stage-controlled-sequencer) for example. Appreciate any direction you can point me here. Thanks for a great mapping!
Julian 2 months ago

I figured this out. Turns out this mapping does support controlling parameters M4L devices, but only *if* they are exposed as parameter banks. For example, the LFO M4L device in Ableton 10 exposes some parameters that you can control with this Twister mapping natively. These happen to be the same parameters you can control with the Push 2 as well (not a coincidence!). In M4L you use the live.banks object (https://docs.cycling74.com/max8/refpages/live.banks) to configure which parameters show up as part of a device bank. You can use this to enable native support with this mapping with *any* M4L device, as well as customize device parameter mappings. All you have to do is edit the M4L device in question, add a live.banks object, and configure it to expose however many banks and parameters you wish. Viola! This is HUGE for me, and makes this Twister mapping even more exciting and musical. Thanks again for a great mapping!

bahador about 1 month ago

I've used twister for ML-185 too but only with midi mapping which is not very convenient. do you think you can share your edited ML185, cause I have no experience in making or editing m4l devices

Julian 24 days ago

Hey. Someone asked a similar question that I answered on reddit, its not the device but tells you how you to make your own custom mappings. Teach a man to fish! Hope it helps. You're right, it's all about live.banks. All you need to do is add a live.banks object anywhere on your patch and define the banks you want. So, steps (assuming you know nothing about using Max): Open up your device in Max editor (see ableton docs) Right click, select "Edit" to unlock device (aka "patch") for editing Double click, type in "live.banks" and hit enter to create a live.banks object Click lock icon in bottom left to lock patch Double click your live.banks object to open parameter banks editing UI Click "+" icon to add new parameter bank, name it whatever you want Select the parameters you want to map from the drop downs That's it. Push 2 handles the rest, all you need to do is setup the live.banks object with the mappings you want. AFAIK you can add any live.dial object to the bank, and I think the name you see in live.banks is whatever the Long Name parameter is set for that dial object.

Matthew 5 months ago
Would be great if I could toggle the global metronome on and off too
Terry Stevens 6 months ago
I'm having trouble getting started. Im copying the folders from Script to Midi Remote Scripts but Ableton still wont register any of the intended macros im reading from the PDF file. Please help!
Unai 6 months ago
Hey I've uninstalled the script and now the Twister doesn't work anymore. Is there anything else I'm missing? Live is getting the light as normally when receives midi input, but I can't map it anymore
padi_04 6 months ago

Make sure you enabled Remote for both inputs and outputs of your Twister in the MIDI/Link preference tab

Stakker 5 months ago

I had this issue and restoring factory settings from the MF utility helped.

Roman M 7 months ago
I have a midi fighter twister and would like to map same knobs to control separate synths and their perimeters like filter cutoff, attack, decay and etc (serum, pigments, sylinth or whatever). When I midi map to lets say serum filter cutoff on one channel then when I map same knob to another synths filter cutoff on another channel this knob now controls both synth at the same time. How can I have this same knob assigned to different synth but only have it work (be active) once i am using that particular channel/synth? Instead of it controlling all assigned parameters on different channels at the same time? Essentially, trying to achieve same functionality as twister Ableton script does for Ableton instruments but with 3rd party VST's. Thank you for your help!!