O sistema de mapeamento de atalho foi testado mais extensivamente com o Behringer X-Touch Mini e contém código personalizado para lidar com os recursos específicos deste dispositivo. Todos os outros dispositivos são tratados como “midi genéricos” e podem ou não funcionar (bem) ou precisar de alguma configuração manual a cada utilização. Uma estrutura de configuração (possivelmente em lua) para suportar recursos específicos de dispositivos adicionais está na lista de tarefas.
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
O dispositivo deve estar no modo padrão (não MC). As camadas A e B são razoavelmente suportadas. No entanto, uma vez que o dispositivo não envia uma notificação ao alternar entre as camadas, e uma vez que as atualizações para rotores e luzes “ocultos” (tanto sob os botões e o padrão usado ao redor dos rotores) são ignoradas, tudo só será atualizado completamente depois que você pressionar ou acionar algo na “nova” camada.
Os anéis de luz ao redor dos rotores mostram um padrão diferente dependendo se o controle deslizante associado tem uma faixa +/- simétrica centrada em torno de 0, 0-100 (ou 0-1) ou qualquer outra coisa. Se estiver vinculado a uma lista suspensa (ou classificação por estrelas), o rotor piscará uma luz por vez. Se a lista suspensa tiver muitos (mais de 13) itens (como a lista suspensa do modo de mesclagem), o rotor girará duas vezes; a primeira vez com uma luz acesa e a segunda vez com duas luzes adjacentes.
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 .
Se você mapear os botões do Beatstep para classificações, rótulos de cores ou botões de alternância, eles devem acender quando o elemento correspondente for ativado.
Behringer BCR2000
(e possivelmente 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.
Uma vez configurado desta forma, as luzes do botão e do rotor devem funcionar. A linha superior de rotores (ou a única linha para o BCF2000) suporta diferentes padrões de luz (como o X-Touch Midi, com algumas opções extras e possui 15 em vez de 13 leds). No entanto, configurá-los é mais complicado e ainda não foi implementado. Também parece ser mais lento, por isso pode não ser viável em tempo real para cada atualização (como é feito para o X-Touch). Portanto, no momento, apenas o padrão de 12 pontos é usado. Para rotores vinculados a listas suspensas, assim como no rotor do X-Touch, a luz gira duas vezes; para as primeiras 15 opções apenas uma luz acende, para as segundas 15 opções, duas luzes adjacentes estarão acesas.
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
Fora isso, uma vez que o Loupedeck usa a codificação Relative (por isso é semelhante ao Beatstep), ele precisará informar o módulo midi a cada inicialização (até que um sistema de configuração tenha sido implementado). Faça isso girando qualquer um dos botões (ou rodas) lentamente para baixo/para a esquerda 5 vezes. Reinicialize a camada de entrada com Ctrl+Shift+Alt+I se não funcionar da primeira vez para que você possa tentar novamente.
Korg nanoKONTROL2
O dispositivo deve ser configurado primeiro usando o aplicativo Korg Kontrol Editor para estar no modo CC e cada botão deve ser definido para o tipo de nota e comportamento de botão Momentâneo. Para controlar as luzes nos botões, o modo LED deve ser definido como Externo. É importante notar que os botões Track e Marker não possuem leds.
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.
configuração midi adicional
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:
Dois problemas podem surgir:
- 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.
Você pode especificar quais dispositivos carregar explicitamente em um local específico e quais ignorar usando o parâmetro de configuração preferências > miscelânea > interface > carregar ou excluir dispositivos midi. Para pular o carregamento do BCR2000 no exemplo acima e fixar os outros dois dispositivos nos slots de número 0 e 2, você pode definir este parâmetro de configuração como “BeatStep;dontuse;X-TOUCH;-BCR2000
”. Isso deixaria o BeatStep como dispositivo midi0, sempre deixaria midi1 sem uso e não carregaria o BCR2000, mas se outros dispositivos estiverem conectados, eles aparecerão como midi3, midi4 e assim por diante. Adicionar “;-
” no final impediria o carregamento de outros dispositivos. Ou, se você apenas especificar o parâmetro de configuração como um único sinal de menos “-
”, nenhum dispositivo será carregado.
Os botões do controlador Midi podem usar várias “codificações” diferentes. O padrão, absoluto, envia um valor de 0 (toda a esquerda) a 127 (toda a direita) – os controles deslizantes também podem usar codificação absoluta. Os codificadores relativos enviam um valor “para baixo” se você os girar para a esquerda e um valor “para cima” se você os girar para a direita. Então, girar lentamente um desses “para cima” enviaria “1, 1, 1, 1”, por exemplo. Mas dependendo de quantos bits são usados e qual codificação, um giro lento à esquerda pode ser 127 (8 bits -1) ou 63, 31 ou 15. Ou até 65. Se nada for especificado nesta opção de preferência, os dispositivos midi são considerados como usando codificação absoluta. Mas se as primeiras cinco mensagens recebidas forem idênticas, supõe-se que o usuário girou lentamente um botão para a esquerda/baixo e a codificação é deduzida disso e exibida em uma dica. A codificação não é lembrada para cada dispositivo, portanto, essa manobra precisa ser repetida a cada inicialização. Para definir a codificação deduzida para a próxima inicialização, você pode adicionar este parâmetro à configuração “carregar ou excluir dispositivos midi”. Por exemplo “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
”.