Giter Club home page Giter Club logo

abletonlive9_remotescripts's People

Contributors

aigner avatar gluon avatar maratbakirov avatar pmimran avatar remicollin avatar thomasf avatar topazuk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

abletonlive9_remotescripts's Issues

const.py location on OSX ?

Hello,
I wouldl love to add a custom scale but where do I need to place the consts.py on OSX , please?

~Marc

Alternative to an official ableton push SDK?

Julien,

Would that allow me to control the push (led, lcd) and react to events (button press, knobs) to use it for custom non music applications? Or is there an SDK for that?

Has anyone gotten Launchpad to work?

I tried switching over just _Framework and the launchpad script would cease to work. I then tried switching over just the decompiled Launchpad folder and again the remote script would not work. When I switched back to the original files, the script works fine. I found some major errors specifically in the translation of the MainSelectorComponent file where there were these nonsense raise statements. So yeah, how do you get any of the scripts to work if the _Framework scripts don't seem to be translated accurately?

Getting a CC button to reflect track Arming.

I have been running around in circles trying to get a ButtonElement to send a CC value of 1 to reflect arming of a track. Everything works flawlessly except for this one little piece. I had no problem getting clip values for play/stop/record out to my control, and I have tried all of the methods I could think of from the ButtonElement, as well as trying a ConfigurableButtonElement (although that seems more geared towards handling note types), even modifying that to hard code a custom on value. Is this even possible? I see it in other scripts using note values, but not CCs, so I am not entirely optimistic.

Python 2.5 imcompatibilities: RemoteScriptError: exceptions must be classes, instances, or strings

Does anybody else see a bunch of these sorts of errors when using this with Live 9.1.6?

RemoteScriptError: exceptions must be classes, instances, or strings

I believe the cause for this is that the decompiled code in this repository (and for that matter any decompiled python code generated with decompyle2) is python 2.7, while Ableton Live has a python 2.5 interpreter and does not understand this exception syntax:

raise foo > 0 or AssertionError

I also noticed that it will throw exceptions when executing this sort of exception handling code:

try:
     something = 0
except Exception as exc:
     pass

Exception as exc syntax is also not supported in python 2.5

I have some general questions

  1. I want to start fixing the bugs in the launchpad scripts from incorrect decompilation of the .pyc files. Is this the right repo to start making pull requests as I make progress? Or is that not the goal of this project and I should look elsewhere or fork my own?

  2. I'm pretty new to git, and I was wondering why this project isn't called "MIDI Remote Scripts"? I made my local repository the actual "MIDI Remote Scripts" folder in the User Library so I could easily test my code in ableton as I'm working on it. When I cloned this repo, however, it made a folder with the title of this project. So I copied all the script directories out of this folder and pasted them in the "MIDI Remote Scripts" folder. Will this affect pull requests?

  3. I've tried to get ableton to recompile the .py files I edit by selecting "none" in the control surface drop down menu and then going back to the desired script. This doesn't cause ableton to recompile the new code though... so I have to close out of ableton and open it back up in order to test the code... very slow and inefficient. Is there a way to keep ableton open and test new code as I work on the scripts?

Remote SL modification

Hello,
I am a musician and i am using the Novation SL MK2 61 key to control Ableton Live 9.7.5.. I want to change the default RemoteSL midi script so it suits my needs better..I am willing to pay someone to do this modification for me because i know nothing of python scripting..
Here is the way i would like it to work:
-I want the 8 SL endless encoders AND the 8 pots to control the 8 blue hand parameters of a selected Ableton device. So i can use the endless encoders for slower precision moves and the pots for fast moves (like filter cutoff for example)
-I need the SL display to always show the blue hand parameters info of a selected Ableton device. So i don't need mixer information or track names on the display when i touch a fader on the SL.
-I want to have the 8 SL drum pads to select bank 1-8 of the blue hand parameters of a selected Ableton device. This way i can go instantly to bank 8 without paging up/down. The SL screen should display the parameters of the selected bank! I don’t need the bank up/down buttons from the Remote SL script.
-I don’t need automap, i am not going to use it.

So that's it!
Is this possible?

I basically did it by using both the default RemoteSL script and by adding a userconfiguration.txt script:
-I replaced the 8 parameter cc's in the user script to the cc's of the 8 Novation SL pots (so now both the endless encoders and the 8 pots controlled the 8 blue hand parameters..this worked fine)
-I added the 8 cc's of the drumpads for the BANK1-8 buttons in the user script. This worked fine and i could switch banks but the SL display didn't follow the selected bank, only the bank up/down button (from the Remote SL script)
-The Novation display keeps on switching between mixer/track name information (when i touch a fader on the SL) and the 8 blue hand parameters (when i touch a endless encoder or a pot) and i want it to stay on the blue hand parameters. I couldn't fix this.

So thanks, let me know what you think!
I added a pdf to make it more clear!
I have Ableton 9.7.5..
I am willing to pay for this custom script of course!

Thanks for the help! Jan [email protected]

Cummunicate with other RemoteScripts

Does someone know a way to communicate with other RemoteScripts?'
Lets say I have one script for my Launchpad and one script for my Behringer BCR. When I move the session rectangle on the Launchpad, I want the BCR to know which channels it should control.

I'm not sure, but I think when I worked with the Live API in Live 8, there was an API function like "Live.Application.get_other_remote_scripts()" which returned a list of all the registere remote scripts.
But now I don't find anything like that.
The last, but not my favorite solution would be to communicate over TCP to localhost.

Newb to MIDI Remote Scripts

Greetings,

I am running Ableton 9.1.5 on Windows 7.

I just started playing around with MIDI remote scripts. After playing with a hello world script I adapted from here: http://remotescripts.blogspot.com/2010/03/introduction-to-framework-classes.html I woud consistently get this error:

Required dependency register_component not provided for <_Framework.TransportComponent.TransportComponent object at 0x4276F350

Next, I cloned this repo, chose a controller I own (Axiom Directlink), copied the py files to the ableton remote scripts directory after backing up the pyc. When ableton starts up pyc files are created, however they do not work either and I still get the same error.

Required dependency register_component not provided for <_Framework.TransportComponent.TransportComponent object at 0x4276F350

Next, I put back the backed up PYC, restarted ableton and everything worked again.

My next thought - why not decompile the working PYC files that ship with Ableton? I made a fresh release build of pycdc with cmake and visual studio 2013 and threw all the working pyc in the newly restored Ableton Axiom Directlink folder at pycdc. I quickly inspected the py files in PyCharm and they looked ok to me.However after putting them in the axiom directlink directory again (after deleting them of course) I restarted Ableton, they py go compiled to pyc and got the same error - again.

What am I missing?

Any help would be greatly appreciated. I hope there is something super dumb I am doing which accounts for my repeated failure to get anything working.

Regards
Kithara

Push TouchStrip

Hi,
have you tried to alter the touch strip behaviour to be unipolar sio that we can use it as Mod wheel instead of a pitch bender?

New Keylab_Essential ?

The new ableton 9.7.5 has the "Keylab_Essential" script that I can't find anywhere, and it'snt in this repo either. Tried using ableton 10's on my live 9.4 and I don't see it in the options list in ableton.
Any update for the newer source files?

Scripts from cloned repo hides almost all control surfaces

Hello, there is no any forums or chat about this scripts so i'm trying to ask question about how to use scripts here, may be i'm not alone with my problems.
Mac OS X 10.10.5
Ableton Live Suite 9.6 with Push (first)
Fresh clone of current repo

  1. Make a copy of MIDI Remote Script folder
  2. Drag'n'drop folders from repo to MIDI Remote Script "Copy with replacing"
    2a. Remove everything from MIDI Remote Script folder and copy script folders from repo
    2b. Removing all .pyc files from /Push/ folder, copy .py from repo
  3. Load Live
  4. At Control Surface selector i have Push 2, FireOne, Tranzport. If i replace just /Push/ files it hides only Push control surface. Any other seems to be ok.
  5. Unload Live, Repeat

What do i do wrong?

Using Push outside of Live

Hi

This is not really an issue, but I don't know where else to ask...

I'm considering using the python files for Push without Live, for the purpose of using Push with other applications like Traktor. I could use Push as a simple midi controller, but it would be awesome if we could send data back to Push and display info in the screens from Traktor, or any other software.

I haven't tried anything yet, but the python scripts import all sorts of libraries like ableton.v2....

Do you know if those python libraries are available?

Do you think if we had access to those Ableton libraries we could for example build a python app or service to bridge between say Traktor and Push directly?

Thanks in advance

launchpad script not working on live

Firstly, let me thank you for taking the time to decompile and package this

I'm trying to get the launchpad scripts working on live 9.0.1. The scripts compile correctly, but the launchpad functions correctly as a dumb midi device and nothing more. No buttons light up, no live integration at all.

While I'm not that familiar with python bytecode, I've checked the original live 9.0.1 pyc and the result of compilation of these sources, and while the overall structure is the same, there's some differences between the two.

Which build of live 9 did you decompile? Is it possible that the scripts changed between builds?

self._challenge = Live.Application.get_random_int(0, 400000000) & 2139062143

I was wondering if that magic number was changed.
Could you provide some info on how you managed to decompile these?

Colors.py broken (?)

When using Colors.py instead of the original .pyc, prior to change anything, causes Push not to start.

Tested SkinDefault.py, working perfectly.

Sources need updating from 9.0.6.

I know of at least one supported device from 9.0.6 that isn't in the list of devices here: the Novation LaunchKey Mini. Any chance the source could be updated from 9.0.6? I'm interested in the LaunchKey Mini's script.

Beatstep Pro

Please, could you adapt the Beatstep script to Beatstep Pro in order to use it as control surface.
It would help me a lot to improve the workflow at the studio.

Thank you a lot for your excellent contribution.

Cracking Live.Application.encrypt_challenge2

Hey guys, has anyone touched the encrypt_challenge2 yet? The Launchpad Pro script requires it. What's basically happening is the following

[Launchpad_Pro.py]
def _is_response_valid(self, midi_bytes):
response = long(midi_bytes[7])
response += long(midi_bytes[8] << 8)
        return response == Live.Application.encrypt_challenge2(self._challenge)

So it's taking the note that you send and then adds the next note but shifts it so you end up with a pretty big number. This then runs through the challenge so the response can be compared in order to find out whether or not the connected controller is legit.

My first try would be to run this script for every number there is in order to obtain a lookup table. But it would end up pretty big and might not be the finest solution of them all. Maybe it makes some calculations obvious (e.g. the first byte just gets multiplied by 3 or stuff like that) but am pretty sure they won't make it that simple.

Another way would be to try getting the challenge decompiled but Ableton isn't just a simple Java app with 2 classes - it's pretty much the most advanced DAW I've ever gotten my hands on so I bet there is tons of native code and such in there, probably obfuscated and optimized like nothing else. Idk how long it took to decompile these Python scripts here but I don't think it won't take longer for parts of the Ableton.app.

I do have one or two working handshakes for the old launchpad script and its "encryption" is pretty similar to the one for the Pro BUT the handshakes that I use might have been taken from the very first Launchpad when they maybe haven't implement the challenge yet. (I really don't know)

[Launchpad.py]
def handle_sysex(self, midi_bytes):
        if len(midi_bytes) == 8:
            if midi_bytes[1:5] == (0, 32, 41, 6):
                response = long(midi_bytes[5])
                response += long(midi_bytes[6]) << 8
                if response == Live.Application.encrypt_challenge2(self._challenge):
                    self._on_handshake_successful()

The only difference is that for the Pro it's bytes[7:8] and for the older one it's bytes[5:6]

Any ideas?

Typo found in _Framework / TransportComponent.py

At Line 35, it's declared as self.arrangement_overdub_toggle (missing initial underscore after self.)
but it was called in the function (Line 103 & 104):
def set_arrangement_overdub_button(self, button): as self._arrangement_overdub_toggle.set_toggle_button(button)

This causes the function to fail.

Systematic decompilation bug in _Framework?

Hi Julien,

first of all - thank you so much for your work on the remote scripts, this is incredible!

I think I've found a systematic bug in the decompilations of _Framework related to Assertions. For example: _Framework/MixerComponent.py:268
The lines below "raise AssertionError" should most probably be unintented one step, otherwise that code is never executed:

if not self._bank_up_button != None:
raise AssertionError
if self.is_enabled(): <<<<<< needs unintent?
new_offset = (value is not 0 or not ...

This seems to occur wherever a raise follows an if.
I guess this is not critical, since nobody will ever execute this. But it's confusing when trying to understand how the stuff works...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.