El sistema de mapeo de accesos directos se probó más exhaustivamente con Behringer X-Touch Mini y contiene un código personalizado para manejar las características específicas de este dispositivo. Todos los demás dispositivos se tratan como “midi genéricos” y pueden o no funcionar (bien) o necesitar alguna configuración manual cada vez. Un marco de configuración (posiblemente en lua) para admitir características adicionales específicas del dispositivo está en la lista de tareas pendientes.
If you succeed in getting a midi device up and running that hasn’t been mentioned below, it would be greatly appreciated if you would provide feedback in order to assist others, if any special steps are required. You could do this either by submitting a documentation pull request to amend this page or by filing an issue containing the necessary information. Alternatively you could read or respond to any of the (closed) midi or “inputng” issues or pull requests in the main darktable repository if you need additional help or guidance yourself.
Behringer X-touch Mini
El dispositivo debe estar en modo estándar (no MC). Sin embargo, las capas A y B son compatibles en cierto grado, ya que el dispositivo no envía una notificación cuando cambia de capa, y dado que las actualizaciones de rotores y luces “ocultos” (tanto debajo de los botones como el patrón utilizado alrededor de los rotores) se ignoran, todo solo se actualizará completamente después de que presione o gire algo en la capa “nueva”.
Los anillos de luz alrededor de los rotores muestran un patrón diferente dependiendo de si el control deslizante asociado tiene un rango simétrico +/- centrado alrededor de 0, 0-100 (o 0-1) o cualquier otra cosa. Si está vinculado a un menú desplegable (o calificación de estrellas), el rotor encenderá una luz a la vez. Si el menú desplegable tiene muchos elementos (más de 13) (como el menú desplegable del modo de fusión), el rotor girará dos veces; la primera vez con una luz encendida y la segunda vez con dos luces adyacentes.
Arturia Beatstep
Individual rotors can be configured to send absolute (0-127) values or changes (+/- 1,2,3,… in different encodings). The recommended setting is Relative #1 for all knobs with Knob Acceleration set to Slow (Off) or Medium. This can be configured with Midi Control Center , available for Windows or MacOS. By default the darktable midi module assumes, for unknown devices, that rotors use absolute encodings. After startup it therefore needs to be told that the device is sending relative movements. You can do this by turning one of the encoders slowly left (down) 5 times. This allows the module to determine which of the several relative encodings is used. If you don’t succeed switching encodings on the first attempt, you can reinitialise the input modules by pressing Ctrl+Shift+Alt+I and try again. If you still have problems, you could try this .
Si asigna los botones del Beatstep a clasificaciones, etiquetas de color o botones de alternancia, deberían encenderse cuando el elemento correspondiente está encendido.
Behringer BCR2000
(y posiblemente BCF2000)
These machines are highly configurable so there are many settings that could complicate the interaction with darktable’s midi module. The BC Manager tool (available for Windows and MacOS) can be used to configure them. The easiest thing to do is to reset all encoders and buttons to their simplest settings, which can be done (for the BCR2000) using this file . You can send it to the machine with BC Manager or (under Linux) with amidi. There’s also a global setting called “Deadtime” that determines how long the BCR ignores arriving messages after sending out updates. This is to avoid feedback loops, but for darktable it means that it blocks the adjustments sent back immediately after each rotor move. So Deadtime needs to be set to 0.
Una vez configurado de esta manera, las luces del botón y del rotor deberían funcionar. La fila superior de rotores (o la única fila para el BCF2000) admite diferentes patrones de luz (como el X-Touch Midi, con algunas opciones adicionales y tiene 15 en lugar de 13 LED). Sin embargo, configurarlos es más complicado y aún no se ha implementado. También parece ser más lento, por lo que es posible que no se pueda realizar en tiempo real para cada actualización (como se hace con el X-touch). Entonces, por el momento, solo se usa el patrón de 12 puntos. Para rotores vinculados a listas desplegables, al igual que en el X-touch the rotor, la luz gira dos veces; para las primeras 15 opciones solo se enciende una luz, para las segundas 15 opciones se encienden dos luces adyacentes.
Loupedeck
(and Loupedeck+ but not the later non-midi devices)
Going by the information provided here , most of the functionality of the first two loupedeck models (both midi based) should be supported, with the following exceptions and caveats:
- the Hue/Sat/Lum buttons can be mapped to the notebook tabs in the color zones module but the little lights next to them may not respond to update messages sent when the user switches tabs using the mouse, so they might get out of sync
- the 8 sliders/wheels can be individually mapped to the elements of the graph in color zones
Aparte de eso, dado que el loupedeck usa codificación relativa (por lo que es similar al Beatstep), deberá informar al módulo midi en cada inicio (hasta que se haya implementado un sistema de configuración). Para hacer esto, gire cualquiera de las perillas (o ruedas) lentamente hacia abajo o hacia la izquierda 5 veces. Vuelva a inicializar la capa de entrada con Ctrl+Shift+Alt+I si no funcionó la primera vez para que pueda volver a intentarlo.
Korg nanoKONTROL2
El dispositivo debe configurarse primero usando la aplicación Korg Kontrol Editor para estar en el modo CC y cada botón debe configurarse como tipo Nota y el comportamiento de botón como Momentáneo. Para controlar las luces de los botones, el modo LED debe establecerse en Externo. Es importante tener en cuenta que los botones Track y Marker no tienen LED.
There is an Kontrol Editor profile available here which can be loaded using the Windows application to directly configure all these settings to correctly work with darktable.
additional midi configuration
If darktable is compiled with portmidi it will at startup try to open up to 10 midi devices in the order it finds them. On the command line you might see something like this:
Two issues can arise:
- a device you don’t want to use might be opened anyway (and potentially cause inappropriate behavior, like starting a fireworks show prematurely (see this document , or
- devices might appear in a different order at the next startup (for example because they are plugged into a different usb port). Since configurations are stored with the device number only, reordering would cause an incorrect layout to be picked up.
You can specify which devices to explicitly load in a specific location and which ones to skip using the configuration parameter preferences > miscellaneous > interface > order or exclude midi devices. To skip loading the BCR2000 in the above example and to fix the other two devices into the number 0 and 2 slots, you could set this config parameter to “BeatStep;dontuse;X-TOUCH;-BCR2000
”. This would leave the BeatStep as device midi0, always leave midi1 unused and would not load the BCR2000 at all, but if any other devices are connected, they would appear as midi3, midi4 and so on. Adding “;-
” at the end would prevent any further devices loading. Or, if you just specify the configuration parameter as a single minus sign “-
”, no devices will be loaded at all.
Midi controller knobs can use several different “encodings”. The default, absolute, sends a value from 0 (all the way left) to 127 (all the way right) – sliders can also use absolute encoding. Relative encoders send a “down” value if you turn them left and an “up” value if you turn them right. So slowly turning one of those “up” would send “1, 1, 1, 1,” for example. But depending on how many bits are used and what encoding, a slow left turn might be 127 (8 bits -1) or 63, 31 or 15. Or even 65. If nothing is specified in this preference option, midi devices are assumed to use absolute encoding. But if the first five messages received are identical, it is assumed that the user has slowly turned a knob left/down and the encoding is deduced from that and displayed in a toast. The encoding is not remembered for each device, so this maneuver needs to be repeated at each startup. To define the deduced encoding for the next startup you can add this parameter to the “order or exclude midi devices” setting. For example “Loupedeck:127
”.
Some midi controllers have keys with a light beneath them. These can be used to toggle settings and show the current position by having the light on or off. In this case, darktable checks periodically (a few times a second) whether, say, the position of an on-screen toggle button has been changed, and sends messages to any linked midi device buttons to switch their light on or off. But if an unknown device has unintentionally been connected, this could be undesirable. So by default darktable waits until a “note” message is received from a midi button before sending any “note” light on/off messages back for that button. That way also no more buttons are addressed than exist on the device. If you immediately want all button lights to be used (rather than having to press the highest note once for each session) you can specify the number of buttons in the “order or exclude midi devices” preference, for example, “BeatStep:63:16
”.