The project has now been moved to GitHub, where any updates, issues or suggestions will now be discussedHere is the link:
https://github.com/DeepSmeag/MinilabMk2-Ableton-scriptI will leave the old post below for cohesion reasons, but it will not be updated any longer. The same with the attached files below, they will be updated on the GitHub repo moving forward.
Related projects by other members of the community: @Paco :
https://github.com/soneu03/Ableton_Minilab_project (Spanish)
- includes a great variety of sources for documentation and learning about these types of scripts, for anyone interested in learning more
----------------------------------------------------------------------------
Update: uploaded MCC preset as requested, should be easier to setup now.
Update 2: will come back in a few months to polish some things and fix/add some more. Comment issues/suggestions.
So I purchased the MiniLab Mk2 about 2 months ago and found the Ableton Mode functionality lacking, but I didn't know that you could program your own in the beginning. Then I found a post on this forum that added functionality for the 2 push encoders which weren't used and found out that someone could program controllers to do anything they wanted/knew how to program. As such, here I am after a lot of work and frustration sharing what I've been able to achieve. I wanted to add one more thing before releasing the script, but every method I tried failed, so maybe someone else will try to do it instead. I will detail everything as I go.
Regarding what I added and took away...
Pads:- Only pads 1-8 control clips now, specifically the clips of the selected scene , pads 9-16 now have modified functionality
- Pads 1-8 now have different colors to signal the state of the clip: playing - green, recording - red, will record when triggered - magenta/purple, triggered but not yet playing - cyan ; when a pad is pressed while the clip is playing it will now trigger the stop instead of trigger playing again
- Pads 9-16 control, in this order, global play, global stop, global record, global overdub, toggle between arrangement and session view, mute selected track, solo selected track, arm selected track
- All pads 9-16 are permanently colored to give info about the current state of the thing they control
All colors are changeable through code modifications, I'll attach some resources at the end.
Pad 9 = global play : green - playing, yellow - paused
Pad 10 = global stop : red- playing (push to stop, yellow - not playing but cursor is not at the start (push to go back to beginning), white - not playing and cursor at start
Pad 11 = global record: cyan - not recording, red - recording
Pad 12 = global overdub: blue - off, yellow - on
Pad 13 = view : cyan - arrangement, magenta/purple - session
Pad 14 = mute selected track: green - not muted, red - muted, cyan - muted by other track's solo only, blue - muted by button and other track's solo
Pad 15 = solo selected track: white - not soloed, blue - soloed
Pad 16 = arm selected track: green - not armed, red - armed
Encoders:- Encoders 1,9 buttons (pushed): when in arrangement view, select track up/down ; when in session view, select scene up/down
All encoders except for 16 keep their normal functions - Encoder 16 = control master volume
All LEDs will update accordingly to their function's state; they will update even if you use another controller or mouse/keyboard to change something.
When selecting the control surface script, the bank will be changed to slot 1 (Analog lab mode). This should happen with every opening of Ableton.
It is possible that the script will work after a 2nd try of loading it only( Ableton restart included).
Might have missed some of the behaviour, but exploring should reveal it all.
I have tested everything for some time but things can always break, I'll try to keep an eye and fix small problems if they arise, but I do not guarantee anything.
I don't plan on adding anything else or modifying things, but it could happen in the future.
For programmers: you are free to add anything else or modify the script, if you make something useful please share it with others so that we can all benefit from it.
Also for programmers( asking for help now): I've been trying to add an event listener for pads that doesn't interrupt the midi note being sent to Ableton and that also triggers a function that I've written. If any of you find a way to do so, I'd be grateful.
Now for setup:Download the zip, unzip it, place the new folder in your Ableton folder under \Resources\MIDI Remote Scripts\
Using the MIDI Control Center now, here is the way I have my 8th bank set up, might not work if you have another setup:
Encoders channel : 2
Enc 1 : MIDI CC 22
Enc 2 : MIDI CC 23
Enc 3 : MIDI CC 24
Enc 4 : MIDI CC 25
Enc 5 : MIDI CC 26
Enc 6 : MIDI CC 27
Enc 7 : MIDI CC 28
Enc 8 : MIDI CC 29
Enc 9 : MIDI CC 30
Enc 10 : MIDI CC 31
Enc 11 : MIDI CC 33
Enc 12 : MIDI CC 34
Enc 13 : MIDI CC 52
Enc 14 : MIDI CC 53
Enc 15 : MIDI CC 54
Enc 16 : MIDI CC 55
Enc 1 push : channel 10, CC 113 off 0 on 127
Enc 9 push : channel 10, CC 115 off 0 on 127
Pads channel : 10
Pads 1-8 : midi notes as set by default, colors don't matter as they will be overwritten, mode is set to gate for all pads
Pads 9-16 : MIDI CC from 56 to 63 , off 0 on 127, gate, color doesn't matter
After opening , go to Ableton preferences, then MIDI and selected this control surface, which should be at the top. Input and Output has to be from MiniLab Mk2
Playing the keyboard while in Ableton mode does not have an effect on the functionality if I remember right, since the channels are different
Disclaimer:
I am an enthusiast, not professionally programming control surfaces for Ableton.
I have used some of Arturia's original code for the Minilab Mk2, but I guess it's ok since I am not commercially using it. Most of the functionality is added or modified by me, including the clip launching part which I have rewritten in order to better control its behaviour.
The code is vaguely documented, if there is demand I will try and explain how things work.
For programmers : if you look trough the code you will find unused stuff and stuff that is written but commented out, that is for other fun stuff/ the problem I couldn't solve which I mentioned in the beggining. If you want to explore, go wild.
As for people who are interested in finding out about how you can program your own functionality, I recommend looking up python and learning about it, then checking out these resources:
https://julienbayle.studio/PythonLiveAPI_documentation/Live10.1.19.xmlhttp://remotescripts.blogspot.com/https://livecontrol.q3f.org/ableton-liveapi/articles/introduction-to-the-framework-classes/https://forum.arturia.com/index.php?topic=93714.0https://forum.ableton.com/viewtopic.php?t=200513Some of it is outdated, things may be hard to understand. Keep at it and test out, things will work out somehow.
Let me know if anything is missing, if something is unclear, what you think of it etc. I'll try to keep an eye out for replies.