Giter Club home page Giter Club logo

keylab_essential_hacks's Introduction

Groovy!

Disgusting hack put together during a rainy weekend to enable Instant Mapping for Arturia KeyLab Essential MIDI controller in Ableton Live 1011. That's right, the knobs are no longer tied to the marginally useful track panning! Instead, they are automagically mapped to the controls of the selected device with the blue hand icon (just like it's meant to be). You can now tweak them macros like a boss!

To install, go to /Applications/Ableton Live 11 Suite.app/Contents/App-Resources/MIDI Remote Scripts/ and rename KeyLab_Essential directory to KeyLab_Essential_BACKUP. Then, copy the corresponding directory from this repository. This will release the encoder knobs from their hardcoded panning function. To assign the knobs to Instant Mapping, also copy the KeyLab_Essential2 directory. To activate add KeyLab Essential2 as another Control Surface in MIDI preferences. Input should be the same as of KeyLab Essential:

Ableton Live Preferences

Reference projects:

keylab_essential_hacks's People

Contributors

creaktive avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

Forkers

5l1v3r1 enkerewpo

keylab_essential_hacks's Issues

Tested with Keylab MKII 61

Works, because Keylab MKII inherits Essential functions.
My setup:
1: Keylab MKII , Input (port2) , Output (port2)
2: Keylab Essential2 , Input (port2)

But interesting.. different device and each time knob controls something different :)
Expected to control 1st 8 main parameters..
But if should work like this.. so i don't know, maybe better just use Mouse..

Suggestion: color active parameter (which is controlled)

Setup problem

First of all, thanks a lot for the effort put into this!

I just got a Essential 49 and was browsing the web for a solution like this, it brings so much value to my workflow with this controller ๐Ÿ™

However, I was not able to get the setup right and couldn't get the knobs to control the devices ๐Ÿ˜ข

  • What device template should the Keylab be in order for this hack to work? When I put it in DAW mode, the command center stops working and the knobs do not trigger any change on the armed device...

I even tried changing my control surface to channels 1 and 2 (like you have on your screenshot), and even then I couldn't get it to work.

Can you point somewhere where I could look to troubleshoot this problem?

Once again, thank you very much for this! ๐Ÿ˜ƒ

Sincere thanks / possibilities for further development

Hey, just wanted to say thanks so, so much for making and uploading this. I've been frustrated by this for a long time, and finally decided to delve in to see how to fix it myself only to discover the miles of Python code behind this functionality. And I stumbled upon your repo by chance while googling all the terms in the all the Ableton control surface documentation and trying to understand the existing Keylab code. And I'm so so thankful I don't have to mess with that anymore. Seriously - do you have a way of accepting donations? Just want to express my sincere thanks for releasing this that's all.

Also, not to crap on your hard work or demand for even more (this was basically everything I wanted), but can I safely assume you use the same keyboard regularly? Just curious if you've noticed that the 9th encoder on the right is strangely left abandoned even in the default official Control Surface mapping. You can't even manual MIDI map it, because it doesn't even send any MIDI CC, at least in the DAW mapping.

I was looking through your code for this (which thankfully doesn't have to be decompiled again) to try and find if there was a way I could make this knob useful, but I'm still super lost at the moment. And then I realized there was a perfect use for it - scrolling through your current devices in the track, so that you can easily switch which one the other 8 knobs are controlling. Admittedly though I have not yet found the code required for this in the documentation, although I could've sworn I've seen my Novation SL MKII do that before.

Also, whether that function can auto select the scrolled device is another problem too, since on my Novation it was on a jogwheel with a click to select if I remember correctly. So maybe such a function would be better delegated to the Keylab's jogwheel instead. Speaking of which, I'm not sure if I'm just daft but I think your replacement code breaks it? Usually it automaps to scrolling up and down your clips. Not sure why it broke in the process though, I've been comparing the original keylab_essential.py to your edited copy to figure out why, but haven't had much luck even figuring out what your edited code changes are affecting.

Good news is that replacing this control surface with the original BACKUP one revives this functionality, while also still allowing the Essential2 control surface to work. Though I'm sure it's affecting some things in the background that I'm not aware of yet (otherwise there wouldn't be a need for an edited copy at all), but I don't know the code well enough to say.

Anyway, just wanted to thank you again for this code. If you didn't read through all that blabbering it's alright, but at least read this! Oh, and the part about donations too, just to say thanks.

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.