I have had the keylab essential 88 mk3 for a few weeks now using it with Ableton 12. Generally it’s been good and what I expected, but there have been issues and I think the remote scripts are badly written and full of bugs. I really don’t think anyone at Arturia properly tested the scripts with Ableton, and I wish the scripts were opened source so the community can help fix issues and make improvements.
My goal when buying the MK3 and V collection was to use it for live looping and I like that I can control many of the V collection common synth settings from the mk3 as if I had the hardware version of the synth without doing any midi mapping. Generally it deliveries on my expectations but…
Main problems I have found so far:
The mk3 remote script does not always initialise correctly and when the mk3 is in “Arturia” mode I only get the Arturia logo when running Analog Lab inside Ableton. No preset names or names for knobs and faders. When I get this issue Analog Lab works fine standalone, so I know it’s a remote script/Ableton related issue. I notice that the MK3 midi devices appear multple times in Ableton. When I get this problem I try removing the device and adding it again and it sometimes works again but I don’t really know if it’s a coincidence or not. I have seen this problem reported multiple times and I am not seeing a fix from Arturia. I have no idea why Arturia don’t offfer separate downlaods for the scripts otherwise fixes will be tied to Ableton releases.
In session mode, if I record automation from a track with Analog Lab (say the cutoff knob) it records with the clip as expected. However, if I switch to another track and play an with Analog lab presets in a different track, the display keeps flashing up with the cutoff automation of the previous track during playback. This is clearly a bug and should only show automation changes for the selected track. May be it should not show automation changes at all? Not sure how useful this is. I will report it as a bug.
Overall I feel top quality hardward and software (V collection) is let down by a shitty python remote script. There is also a lot of room for improvement. For example, it would be nice to hold a button (like a shift button) along with a clip button to stop it playing.
I know that this would not help you directly:
I have very similar issues by using Cubase with the Keylab Essential 49 mk3.
As a workaround, at least with the Cubase integration script, it helps to use the “Prog”-key to toggle between Arturia and DAWs-mode. After doing this the integration seems to work. A second thing that helped always was to reimport the script again (overwrite).
Both workarrounds change nothing regarding the script, Therefor I think that the it must be a firmware problem. (timing?!?)
I dont think these analog labs issues are due to the ableton remote script, i modified the remote scripts here and while adding lots of other features i have not found any hints on the script ever touching the analog labs mode stuff. But feel free to take a look at the python code
Hey, frustrated by my new keylab’s lack of functionality I stumbled upon this thread and
your github code. Amazing work! Unfortunately, I couldn’t make it work - i copied the files correctly, but Live won’t list the script in the dropdown menu. Any help is appreciated
Could you take a look at Lives log file? Windows: C:\Users[Username]\AppData\Roaming\Ableton\Live x.x.x\Preferences\Log.txt
macOS: Macintosh HD/Users/[Username]/Library/Preferences/Ableton/Live x.x.x/Log.txt
search for Remote Script or Error. If the script is correctly installed (as in the correct folder etc.) there should be an error somewhere telling me what is going on there. It would be great if you could put that error in an issue post on github but you can also just write it here
Sorry, I haven’t thougth about reading the log for errors. There is one indeed, triggered by the settings.py line
if “;” in PY_UPDATE_FILESYSTEM_PATH:
which is not surprising, since the constant is set to None a few lines above. I’m a bit confused, should i change it to point to… where?
I removed the IF block (and set PY_UPDATE_FILESYSTEM_PATH = None
), it seems to work now I’ll test it later to see if everything is ok. Thanks again for your precious work!
P.S.: I’m not familiar with posting errors on github, but this doesn’t seem a major issue anyway
Huh. well i pushed a fix there, frankly i have no clue what devil rode me writing that code.
Thanks for finding this. Please report all other bugs if you find any!
So, I’ve been using your script for a bit. It has some invaluable features (that I don’t see how Arturia hasn’t implemented! it’s really disheartening ), mainly the previous/next device. The 4 tracks window is nice, but I think the first track should automatically selected when you scroll, makes it a lot faster and useful to me.
Unfortunately at times it feels a bit buggy too. I’d like to contribute to the code, but I know nothing about control surface scripts (and I never found resources online about), so it would be a time consuming reverse engineering effort, and I don’t know I have enought time to do it…
Well if you are familliar with python, then its actually not that bad or hard.
ill send you a couple of links to sources that i frequently use.
First of all gluons repository of decompiled stuff:
this has all the control scripts decompiled and especially the ableton folder contains lots of stuff that scripts often call. so i advise you to put whatever you are working on temporarily into this repo folder so your IDE can actually find these things if you want a deeper dive. Another advantage is the fact that you can just search through all scripts to see how other vendors did their stuff / how functionalities are implemented.
This is really useful when interacting with live itself as it shows you what is where and is nicely structured! There are minor differences to the 12 version but for the most important parts this is perfectly fine!
The next is i think the origin of remote surface hacking:
They also have a API documentation but less nicely structured.
And at last there is also an old blog that explains the _Framework and could be a nice start if you mess with _Framework based scripts.
Speaking of, there are ~3 groups of scripts, the ones that use functionality implemented in the _Framework (look gluons repo for this folder) ,
then there are scripts that directly interact with ableton.v2 /ableton.v3 (the ableton folder i mentioned.)
and then there are some other scripts that are based on their own frameworks i guess but i havent had much experience with them.
Regarding actually working with scripts here are a few heads ups:
print/sys.stdout doesnt work. if u want to print to the log.txt file, use sys.stderr.write("Hello") (also import sys)
if you have WSL installed or similar it is really helpful to have the script open in less -F Log.txt (iirc) as this will allow you to have a live view of whats going on.
if there is an error in your script this will throw up in the log file during the startup of ableton, (therfore the log live view)
if you want the script to be updated you have to restart ableton, opening a new set doesnt always work.
if there is an error happening in the ableton stuff that when you take a look at looks weird or different,
take the current pyc files from:
– For Windows users: \ProgramData\Ableton\Live x.x\Resources\MIDI Remote Scripts\
– For macOS users:
— Locate the Live application in Finder (typically /Applications/),
— right click on it and select “Show Package Contents” in the context menu,
— navigate to: /Contents/App-Resources/MIDI Remote Scripts/
and throw them into https://pylingual.io/
this website is able to decompile (if you are unluck you need to patch things yourself but that is easier than i thought) even the newest pyc files. AND then you can check if the error makes sense now.
this last point above is very unlikely to happen tho. but for the cases and everyone else reading this , there you go!
one last thing ! if you modify a script you HAVE to rename at least the containing folder, otherwise it will not work, so you cant just copy the folder from a modified script in gluons repo into the user remote script folder. (iirc)
really last thing, depending on how much you log. try to delete the log file from time to time. especially when you accidentally forgot that sys.stderr.write in that function that gets called multiple times per second.
i hope this can help you on your journey in case you actually chose walking it. but know one thing, you cant stop fixing and improving scripts for every piece of controller you buy. at least i cant.
oh and if anyone has questions feel free to ask!
_Need help ?
When you can't find the answer online or in the product manual, the Technical Support Team is here!.
_Stay tuned
Follow us for the hottest sounds, fresh content, exclusive offers and Arturia news as it happens.