gluon / abletonlive11_midiremotescripts Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://structure-void.com/ableton-live-midi-remote-scripts/
Home Page: https://structure-void.com/ableton-live-midi-remote-scripts/
Firstly, thanks for putting this up.
It seems the scripts involving ableton.v3 have changed in 11.3 (watching it 11.3.13).
For instance, the Minilab_3 header now looks like this
from ableton.v3.base import SlotGroup, depends, listens from ableton.v3.control_surface import Component, find_instrument_devices, find_instrument_meeting_requirement from ableton.v3.live import is_track_armed, liveobj_valid
whereas in 11.2 it looks like that
from ableton.v3.base import SlotGroup, depends, is_track_armed, listens, liveobj_valid from ableton.v3.control_surface import Component, find_instrument_devices, find_instrument_meeting_requirement
and it doesn't compile in 11.3
It would be nice to have an up to date version before we move on to Live 12.
Trying to execute Novation Launchpad Mini MK3 Script, I have experimented a few errors.
2022-06-30T19:35:55.705937: info: RemoteScriptError: File "<string>", line 1, in <module>
2022-06-30T19:35:55.706239: info: RemoteScriptError: File "C:\Users\banshee\Documents\Ableton\User Library\Remote Scripts\Launchpad\__init__.py", line 9, in <module>
2022-06-30T19:35:55.706477: info: RemoteScriptError:
2022-06-30T19:35:55.706536: info: RemoteScriptError: from .launchpad_mini_mk3 import Launchpad_Mini_MK3
2022-06-30T19:35:55.706589: info: RemoteScriptError:
2022-06-30T19:35:55.706645: info: RemoteScriptError: File "C:\Users\banshee\Documents\Ableton\User Library\Remote Scripts\Launchpad\launchpad_mini_mk3.py", line 19, in <module>
2022-06-30T19:35:55.706851: info: RemoteScriptError:
2022-06-30T19:35:55.706906: info: RemoteScriptError: from .skin import skin
2022-06-30T19:35:55.706958: info: RemoteScriptError:
2022-06-30T19:35:55.707014: info: RemoteScriptError: File "C:\Users\banshee\Documents\Ableton\User Library\Remote Scripts\Launchpad\skin.py", line 33, in <module>
2022-06-30T19:35:55.707211: info: RemoteScriptError:
2022-06-30T19:35:55.707266: info: RemoteScriptError: skin = merge_skins(base_skin, Skin(Colors)*())
2022-06-30T19:35:55.707316: info: RemoteScriptError:
2022-06-30T19:35:55.707376: info: RemoteScriptError: TypeError
2022-06-30T19:35:55.707428: info: RemoteScriptError: :
2022-06-30T19:35:55.707478: info: RemoteScriptError: can't multiply sequence by non-int of type 'Skin'
2022-06-30T19:35:55.707527: info: RemoteScriptError:
Apparently the operation Skin(Colors)*()
doesn't works.
I thought it can be a mismatch Python core version on mi local Ableton Installation and the target of this source code. So I decompile mi local Ableton Scripts and compare them. Both are equals.
I'm not a Python expert and I have no excesive time so, I look and change the merge_skings
call from Ableton10 repository.
Changing in file Launchpad_Mini_MK3/skin.py
from this
skin = merge_skins(base_skin, Skin(Colors)*())
to this
skin = merge_skins(*(base_skin, Skin(Colors)))
After that I obtained another error.
2022-06-30T20:17:03.929307: info: RemoteScriptError: File "C:\Users\banshee\Documents\Ableton\User Library\Remote Scripts\Launchpad\launchpad_mini_mk3.py", line 19, in <module>
2022-06-30T20:17:03.929511: info: RemoteScriptError:
2022-06-30T20:17:03.929567: info: RemoteScriptError: from .skin import skin
2022-06-30T20:17:03.929619: info: RemoteScriptError:
2022-06-30T20:17:03.929675: info: RemoteScriptError: File "C:\Users\banshee\Documents\Ableton\User Library\Remote Scripts\Launchpad\skin.py", line 34, in <module>
2022-06-30T20:17:03.929873: info: RemoteScriptError:
2022-06-30T20:17:03.929928: info: RemoteScriptError: skin = merge_skins(*(base_skin, Skin(Colors)))
2022-06-30T20:17:03.929979: info: RemoteScriptError20
2022-06-30T20:17:03.930035: info: RemoteScriptError: File "..\..\..\output\Live\win_64_static\Release\python-bundle\MIDI Remote Scripts\ableton\v2\control_surface\skin.py", line 75, in merge_skins
2022-06-30T20:17:03.930353: info: RemoteScriptError: File "..\..\..\output\Live\win_64_static\Release\python-bundle\MIDI Remote Scripts\ableton\v2\control_surface\skin.py", line 75, in <lambda>
2022-06-30T20:17:03.930641: info: RemoteScriptError: AttributeError
2022-06-30T20:17:03.930697: info: RemoteScriptError: :
2022-06-30T20:17:03.930750: info: RemoteScriptError: module 'novation.skin' has no attribute '_colors'
Cheking for the types of function args on Launchpad_Mini_MK3/skin.py
sys.stderr.write(str(type(base_skin)))
sys.stderr.write(str(type(Skin(Colors))))
#skin = merge_skins(base_skin, Skin(Colors)*())
skin = merge_skins(*(base_skin, Skin(Colors)))
Result
2022-06-30T20:17:03.934386: info: RemoteScriptError: <class 'module'>
2022-06-30T20:17:03.934499: info: RemoteScriptError: <class 'ableton.v2.control_surface.skin.Skin'>
I check the first argument is not a Skin, it's a module. Analyzing the source code and comparing with Ableton9 i found a bad import.
Changing from this
import novation.skin as base_skin
to this:
from novation.skin import skin as base_skin
Now the Script works succesfully.
At least all Launchpad MK3 scripts has the same issue, but I only tested on Launchpad Mini MK3.
As I said, I decompiled my own Ableton Local Scripts and i check the same error so I suposse the main problem are in the decompilation process.
I used :
decompyle3 --version
decompyle3, version 3.9.0
Hey! Happy new year!
I have done JavaScript lessons for 1.5 year but I'm still having basic questions I think... I hope that I posted here correctly because i can't find any other place that you discuss about these decompiled scripts.
I'm trying to learn from scripts and take arts of them.
I'm trying to import stuff that is related with device control (encoders to parameters), but ableton.v2 versions is different than the script imports...
With _framework folder I have no problem, but here... Only problems. Like:
from ableton.v2.control_surface import ParameterInfo //everything doesn't even look in a module..but in a whole folder. But it still works as I see so maybe python work this way and searching all modules within that folder. I 99% sure that I don't have an error there.
The error is here:
from future import absolute_import, print_function, unicode_literals
from ableton.v2.base import clamp, listens, liveobj_valid
from ableton.v2.control_surface import ParameterInfo
import ableton.v2.control_surface.components as DeviceComponentBase
from ableton.v2.control_surface.control import ButtonControl, TextDisplayControl, ToggleButtonControl
class DeviceComponent(DeviceComponentBase):
If you see it says ''''import ableton.v2.control_surface.components as DeviceComponentBase''''
Well in other scripts I had to turn "import as" to "from import" to work but if I change it, it can't find a class DeviceComponentBase.
What's wrong with this class...? I opened every file in v2.controlsurface.components folder but can't find anything. The only similar is in the device.py which is class "class DeviceComponent(ParameterProvider, Component):" and in the script I saw it is class DeviceComponent(DeviceComponentBase):
So it can't be the same with child class...
I'm confused
AbletonLive11_MIDIRemoteScripts/Push2/track_selection.py
Lines 1 to 23 in ac2a6fe
There appears to be a decompilation error in the 11.1 channel strip component, which results in broken syntax.
A long stack trace appears in the file, beginning with:
def _arm_value--- This code section failed: ---
L. 412 0 LOAD_FAST 'self'
2 LOAD_METHOD is_enabled
4 CALL_METHOD_0 0 '0 positional arguments'
6 POP_JUMP_IF_FALSE 202 'to 202'
L. 413 8 LOAD_GLOBAL liveobj_valid
10 LOAD_FAST 'self'
12 LOAD_ATTR _track
14 CALL_FUNCTION_1 1 '1 positional argument'
16 POP_JUMP_IF_FALSE 202 'to 202'
18 LOAD_FAST 'self'
20 LOAD_ATTR _track
22 LOAD_ATTR can_be_armed
24 POP_JUMP_IF_FALSE 202 'to 202'
The full error is here:
Thanks!
Hi :) this is a very sad former Push 1 owner, who purchased an AkaiPro Force six months before Ableton Push 3 was released.
Sadly I came to realize that the Force control surface Script (perhaps even the sysex stuff) has been nerfed by Akai/Ableton on purpose, so that the Push 1/2 market still has the upper hand in DAW control, while them and Akai were working on the Push 3 behind curtains, with no announcements to people who were looking for standalone Ableton Push and purchased the Force at full price, with only gift being a 50% off code for mpc sample packs, no synths/plugins -_-
Stuff missing is: drum rack mode, sequencer, scale mode and note mode. All these features are there in standalone mode, but in Ableton Control Mode they were taken out. Since we know the code has been there on the Akai/Ableton partnership since the Push one, it is safe to assume the functionalities were stripped on purpose.
The pad matrix has been basically limited to be fixed to clip launching, when controlling Ableton, which requires a the Live Contol mode to be activated anyhow to work as a controller. The device has step sequencing for external hardware.... Can accept also midi in from the USB-A ports if I read the most recent changeover right. I wish I could use this like the far less expensive Push 1, completely without having to use another controller for note input or for basic rhythm patterns.
I can link you to all resources I know and people who know the internals, could give you SSH access to the device if needed, and integrated screen capture seems to be feasible as well.
Have checked the usual suspects, nativeKontrol, Isotonik. They have done something for the Akai Fire but not for the Force. Only thing they did for the Force was while utilizing a second piece of hardware in parallel. I do have midi to USB somewhere, it's crazy that Akai opted for Network Integration of the hardware as a controller. Midi via supplied USB connection does not seem to be an option, driver/board wise.
People have root access on it and are able to execute code... But no owner is as much of an Ableton Push fanatic as I am.
Been years since I wrote proper stuff in python and this requires a ton of internals knowledge that I do not have the time to obtain, juggling between multiple jobs.
Best wishes... By the way latest Ableton changelog a couple of days ago mentions Script updates.
hello, i pull rrequest herre to add the akai apc 64's script if possible :D great conntroller <with bad software i have to do something
Hi,
sorry, I know very little about Python (but not new to programming) but I never got any of the scripts to run in Ableton.
The ones I tried now give me a syntax error at line one in init.py.
<<<<<<< HEAD
What is that supposed to mean, do I need to edit the files before they will 'compile' in Ableton?
Thanks
https://github.com/MrMatch246/AbletonLive12_MIDIRemoteScripts
Decompiled it in case anyone needs it.
First of all thanks for your amazing work.
When replacing the init.pyc in the MIDI Remote Scripts/Push2 folder, using your init.py, it does not start, there is a RemoteScriptError. Here the logfile:
2022-05-05T23:36:08.127872: info: RemoteScriptError: File "C:\ProgramData\Ableton\Live 11 Suite\Resources\MIDI Remote Scripts\Push2\__init__.py", line 22, in create_instance
2022-05-05T23:36:08.128066: info: RemoteScriptError:
2022-05-05T23:36:08.128114: info: RemoteScriptError: root = Root(sender=Sender(message_sink=(c_instance.send_model_update),
2022-05-05T23:36:08.128154: info: RemoteScriptError:
2022-05-05T23:36:08.128197: info: RemoteScriptError: AttributeError
2022-05-05T23:36:08.128236: info: RemoteScriptError: :
2022-05-05T23:36:08.128276: info: RemoteScriptError: 'MidiRemoteScript' object has no attribute 'send_model_update'
I run Live 11.1.1 on Windows 11. Lot of 1s here ;-)
This seems to be a general problem with Live 11.1.1. I decompiled the init.pyc with uncompyle6 and also decompyle3. Both return the same py-file that is in this repository.
Any idea why this is? I want to get ubermap to work on my machine, but the init.py in that repository is pretty much the same as yours except for two lines.
Thank you!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.