Thursday, October 4, 2018

How to setup the Behringer x Touch mini to work with Darktable

The idea is to control dark table with the xTouch mini like you do with Lightroom similar to this video:

I did not get it to work like this, but I did get it close.

Step 1: update the Midi controller setup

The process is to update the xtouch mini with the firmware setup using the x-Touch Editor that you can download from the Behringer site.

You can see how this is done here:

I used the settings files as given by:

Step 2: Install a midi translator

You need to get a midi translator. I used the Bome's Midi Translator Pro 1.7.2.
Bome is software that you have to pay for, and you need the paid version to get access to the rules functionality.
The mini x does not pick up that the dials are going up or down. So you have to code that using rules.

Step 3: program the midi translator

What you do with the translator is to translate the signal from the midi and to output another signal.
I'm going to explain the details so that you can understand the code, but if you just want to have ago I have the presets for the global "One input to one output" and the Darktable here that you can download and play with:

One2one preset

Darktable preset:

Midi output

The translator read the midi code in a set format that will typically look like this:
BA 01 43

All Midi signals are in hex code. I have very limited understanding about this. All I needed to understand is that the BA 01 stand for the button or dail ID and the 43 is the value of set button or dail.

Understanding the code

In the world of Bome if it is a dial, and you turn it by one click the value that will be given will be the value of the dial (ie.43). For more than twice the value will be pp.
pp is the name of the variable that gets set by the fact that the button is turned(up or down), so in one move the the value is 43, the next the value is pp, but if you output pp it will read 44. Bome also gives you a large set of built in global variables that spans the duration of the program running.
All the global variables are named with a g in front so it will be g1, g2 , g3 ect.

My solution was to give each dial a variable up and a variable down. On every turn of the knob the variable will be reviewed to see if the dial goes up or down. It will then set that global variable to the new value and trigger the output for that action. Each knob ends at 7F at the top and 0 at the bottom. Once the button hits 7F again it will simply output the going up output, and the same for the bottom 0.

All the buttons has two outputs, a value for the button down and a value for the button up. I find that the button down value gives a better result than the button up. I changed this in the darktable preset but not the global one

My dial code feels a little clunky, but it works so I'm sticking with it until a better ones comes around.

Step 4: Mapping the output to darktable.

Once implemented the translator will produce output like this:
You can use this output to map the shortcuts in darktable.
What you need to do is to determine how many values the midi can give your PC via the translator. I made a spreadsheet with all the variables in and all the variable out. The I listed all the darktable functions next to those variables.
You can download that spreadsheet here.

Once you have your variables set, you program darktable's shortcuts to work with the set outputs. Luckily Darktable allows you to export and import these shortcuts, so here is my shortcuts that I saved for my workflow. You are welcome to use it but you will want to customize it to your workflow

Step 5: Marking the hardware

Once you have set up your shorcuts, add some stickers to your Midi, indicating what each dial does. I did this with masking tape that I wrote on.
Be prepared to tear these off as you reprogram your keys to something better.

Thanks to reading this. I would like to hear your take or ideas about this. This is the first time I wrote up this kind of thing, and only because I could not find anybody else who did this. I hope it helps you out.