New tool (3.3.0): Arturia KeyLab mkII v1.3 build 023 (January 2021)

The code is made for Arturia’s Keylab mkII series.

To create an LUA tool of this style it is necessary to have the hardware for testing.

It is also preferable that the tool contains only what is needed for a particular MIDI controller. Every controller is different.

Yes, found out about it ~2 min. ago and logged in immediately to inform you. Well, so I guess I’ll inform you: There’s now a black one. :sunglasses:

Hello form France . our program and always available ?

@ch4rlo Hello neighbor! What do you mean?

@Raul If i buy arturia keystep 61 mk2, can i use your programme ? Can i download it ?

Does this physical MIDI controller exist? Can you provide me with a link with information about him?

This tool is for Arturia’s Keylab MKII series. If you buy any of the Keylab MKII models, let me know.

This is the Keystep 37:

Ok when i have my keylab mk2 61, i tell you !

Thanks.

:+1:

hey @Raul :slight_smile:

i have a keylab mk2 since some days (late christmas-present from my girlfriend…)
I really would like to test your latest version of the bridge-tool.
I already testet the downloadable version and it works really good, thumps up!

regards, Andreas

Hello @UnDee, how are you?
Well, you can already behave well with your girlfriend. She has given you a jewel! :smiley:
As soon as I have time, I’ll post it here.

My personal saturday-evening-hero :smiley:

This tool has been updated to version 1.3.023 . Read the first comment for more information…

This version includes the compatibility with the new version 3.3.0 of Renoise. It include new compact GUI, other graphic details, new access of preferences panel and Pads RGB Control (beta).

It is not necessary to say that you must upgrade to Renoise version 3.3.0 to use Arturia KeyLab mkII version 1.3.0123 or future version.

Please, if you use the Arturia Keylab mkII 61 or Arturia Keylab mkII 88 version, comment your experience here. How does it work?

61


or

88

1 Like

Hi, I loved the ideia! Could you make it compatible with the Arturia Minilab MkII as well? Cheers

For this type of situation I have recently created the MIDI Universal Controller tool, or also called MUC.

With MUC you can do much more than with this tool. MUC allows you to dramatically increase the control of your MIDI controller via MIDI routing, and also it allows you to use fewer physical knobs/faders/buttons for everything. It is intended for any physical MIDI controller!

I released it last week, so it’s not very well known yet. You can download and try the demo version…

MUC is probably the best MIDI control tool out there for Renoise today and there probably won’t be anything better than this in the future!

If you can make this tool work with Keylab Essentials 49 - this would be fantastic. It works now, but not full: knobs are not responding :upside_down_face:

I can’t really make a tool compatible with a MIDI controller that I don’t own. I mean a tool like this.

No problem, thanks for an answer :slightly_smiling_face:

Hey Raul,

thanks for your efforts writing this tool. I was looking into your source to find something which could be used for a Keylab/Minilab MK3 tool… Sadly the code structure seems to be somewhat chaotic. Did you somehow run your code thru a obfusciator or simplifying tool or something?

If not, I would highly recommend to you to read/think about “mapping”, “multidimensional objects”, like for example, you can of course use tables within tables. Instead numeric indices, you can use words. Instead putting all tooltips into a single table, you could put the tooltip into the “fader description” table instead.

You can also map functions within a table. No need for doing long if else clauses here.

Just a loose example for a better data / config structure:

faders = {
  awesomeFader1 = {
    label = "Fade away",
    toStringConverter = function () ... end,
    toNumberConverter = function () ... end,
    tooltip = "What a nice tooltip",
    mappedMidiSysex = { 0xff, 0xfe, 0x01, 0x02 }
  },
  extremePowerFader2 = {
    label = "Fade in",
    toStringConverter = function () ... end,
    toNumberConverter = function () ... end,
    tooltip = "extreme Powerfader tooltip",
    mappedMidiSysex = { 0xff, 0xfe, 0x01, 0x03 }
  },
  ...
}

Then you could simply iterate over this structure in nested loops and build it up, like so, or similar:

for faderKey, values in pairs(faders) do
  print(faderKey, values.label);
  local stringConvertedValue = values.toStringConverter(42 or whatever[faderKey])
  ...
end

Please think about this… I believe this would help you a lot with coding. And also help others who want to contribute, reuse or extend…

Also keep in mind that you also can pass a whole method to another method as parameter, which commonly is then called a “callback method”. Like so:

function renderFader(id, callbackFunction)
   ...
   local tooltipText = faders[id].tooltip
   callbackFunction(tooltipText)
end

renderFader("awesomeFader1", function (tooltipText) showTooltip(tooltipText) end)

This is just an example. I think by knowing these two patterns, you could highly improve and shrink your code, also make it more maintainable and way more human readable (for yourself, too, assuming you are human).

Thanks for consideration and greetings!

Hi ffx.

Before wasting time on other code, it is recommended to study and compare the hardware, to avoid confusion.

The Minilab MK3 has practically nothing to do with the Keylab mkII. Although they are keyboards from the same brand, they work differently. Taking old code from a tool to adapt it to other hardware only serves what you have done, trying to change the way of programming, instead of finishing a new tool for the Minilab.

I appreciate your advice on code that I programmed almost 5 years ago. Until now I have drastically changed my way of programming, since a structure for tools of more than 30,000 lines of code is necessary. And certainly, when I program, even today, I don’t expect another programmer to modify anything. Who is interested in these things in these forums? I think 4 people? There you have it.

I particularly don’t like mixing variables with functions inside tables. I prefer to put variables and functions together within separate tables. I also don’t usually use “for in pairs/ipairs” iterations, I prefer “for do”. And well, calling a function from another function is fine if the called function is used in a multitude of functions.

I use strategic tags a lot in the names of functions and variables. With the search engine, there is nothing faster than that when you have a lot of code.

Thank you for your comments. I assume you have a Minilab mk3 tool on the way.

And well, yes, I’m still a human being :grinning:.

By the way, I haven’t had the Keylab MkII for about 2 years. I bought this keyboard second-hand and resold it. I liked the experience, to a certain extent. Ultimately, I settled on an 88-key keyboard with fewer knobs for composing. Sometimes, less is more.

Ah, I see. Didn’t realize this tool is already this old :blink: I just wanted to get a clue about the effort doing an general MCU (+ special modes for arturia) tool… I currently only have a Minilab 3 and a Behringer Motor 49 thing… Did you manage to display custom text on the display of the Keylab?

Maybe the faderport tool would be somehow a good starting point… Also I am not sure yet if I keep minilab 3. The recent integration in Ableton and Bitwig certainly is one of the best, if not the best, yet still buggy. Also I wonder why integration still is on such a low level.