підтримка пристроїв MIDI

Система зіставлення прискорювачів була найбільш ретельно протестована за допомогою Behringer X-Touch Mini й містить користувальницький код для роботи з особливими функціями цього пристрою. Усі інші пристрої розглядаються як “загальні midi” і можуть працювати або не працювати (добре) або щоразу потребувати ручного налаштування. Конфігураційний фреймворк (можливо, в lua) для підтримки додаткових функцій пристрою є у списку справ.

Якщо вам вдасться запустити пристрій MIDI, який не був згаданий нижче, будемо дуже вдячні, якщо ви надасте зворотній зв’язок, щоб допомогти іншим, якщо знадобляться якісь спеціальні дії. Ви можете зробити це, надіславши запит на прийняття змін до документації, щоб змінити цю сторінку, або підняти проблему, що містить необхідну інформацію. Крім того, ви можете прочитати або відповісти на будь-яку із (можливо, закритих) MIDI або “inputng” проблем або запитів на прийняття змін у головному репозиторії darktable, якщо вам самому потрібна додаткова допомога чи вказівки.

🔗Behringer X-touch Mini

Пристрій має бути в стандартному режимі (не MC). Шари A і B певною мірою підтримуються, проте, оскільки пристрій не надсилає сповіщення при перемиканні між шарами, а також оскільки оновлення “прихованих” роторів та індикаторів (як під кнопками, так і візерунком, що використовується навколо роторів) ігноруються, все буде повністю оновлено лише після того, як ви натиснете або повернете щось у “новому” шарі.

Світлові кільця навколо роторів показують різний малюнок залежно від того, чи має пов’язаний повзунок симетричний діапазон +/- з центром навколо 0, 0-100 (або 0-1) або будь-що інше. Якщо він пов’язаний зі спадним списком (або рейтингом зірок), ротор буде перемикатися по одному світлу за раз. Якщо спадне меню містить багато (більше 13) елементів (наприклад, спадне меню режиму змішування), ротор буде обертатися двічі; перший раз з одним увімкненим світлом, а другий раз з двома сусідніми.

🔗Arturia Beatstep

Окремі ротори можна налаштувати на передачу абсолютних (0-127) значень або змін (+/- 1,2,3,… у різних кодуваннях). Рекомендовано значення Relative #1 для всіх регуляторів, у яких для параметра Knob Acceleration (прискорення регулятора) встановлено значення Slow (Off) або Medium. Це можна налаштувати за допомогою Midi Control Center, доступного для Windows або MacOS. За замовчуванням модуль darktable midi передбачає, для невідомих пристроїв, що ротори використовують абсолютне кодування. Тому після запуску йому потрібно повідомити, що пристрій надсилає відносні рухи. Ви можете зробити це, повільно повернувши один із кодерів ліворуч (вниз) 5 разів. Це дозволяє модулю визначити, яке з кількох відносних кодувань використовується. Якщо вам не вдасться змінити кодування з першої спроби, ви можете повторно ініціалізувати вхідні модулі, натиснувши Ctrl+Shift+Alt+I і повторити спробу. Якщо у вас все ще виникають проблеми, спробуйте це.

Якщо ви зіставите кнопки Beatstep з рейтингами, кольоровими позначками або кнопками перемикання, вони повинні засвітитися, коли відповідний елемент увімкнено.

🔗Behringer BCR2000

(і, можливо, BCF2000)

Ці машини гнучко конфігуруються, тому є багато налаштувань, які можуть ускладнити взаємодію з MIDI-модулем darktable. Для їх конфігурування можна використовувати BC Manager (доступний для Windows і MacOS). Найпростіше скинути всі кодери та кнопки до найпростіших налаштувань, що можна зробити (для BCR2000) за допомогою цього файлу. Ви можете надіслати його на машину за допомогою BC Manager або (під Linux) за допомогою amidi. Існує також глобальне налаштування під назвою “Deadtime”, яке визначає, як довго BCR ігнорує повідомлення, що надходять після надсилання оновлень. Це робиться для того, щоб уникнути циклів зворотного зв’язку, але для darktable це означає, що воно блокує коригування, надіслані назад одразу після кожного руху ротора. Тому Deadtime потрібно встановити на 0.

Після налаштування таким чином всі індикатори кнопок і ротора повинні працювати. Верхній ряд роторів (або єдиний ряд для BCF2000) підтримує різні схеми індикації (як X-Touch Midi, з деякими додатковими опціями і має 15 замість 13 світлодіодів). Однак їх налаштування є складнішим і ще не реалізовано. Він також здається повільнішим, тому може бути неможливим у реальному часі для кожного оновлення (як це робиться для X-touch). Тому на даний момент використовується лише 12-точковий візерунок. Для роторів, пов’язаних зі спадними списками, так само, як і на роторі X-touch, світло обходить двічі; для перших 15 варіантів горить тільки одна лампочка, для других 15 варіантів світяться два сусідніх індикатора.

🔗Loupedeck

(і Loupedeck+, але не пізніші пристрої, які не мають MIDI)

Виходячи з інформації, наданої тут, більшість функціональних можливостей перших двох моделей Loupedeck (обидві на базі MIDI) повинні підтримуватися, з такими винятками та застереженнями:

  • Кнопки Hue/Sat/Lum можна зіставити з вкладками блокнота в модулі колірних зон, але маленькі індикатори поруч з ними можуть не реагувати на повідомлення про оновлення, надіслані, коли користувач перемикає вкладки за допомогою миші, тому вони можуть вийти з синхронізації

  • 8 повзунків/колес можна окремо зіставити з елементами графіка в колірних зонах

Крім цього, оскільки Loupedeck використовує відносне кодування (тому схоже на Beatstep), йому потрібно буде повідомляти midi-модулю під час кожного запуску (доки не буде впроваджено систему конфігурації). Ви робите це, повертаючи будь-яку ручку (або колеса) повільно вниз/вліво 5 разів. Повторно ініціалізуйте вхідний шар за допомогою Ctrl+Shift+Alt+I, якщо це не спрацювало з першого разу, щоб ви могли спробувати ще раз.

🔗Korg nanoKONTROL2

Пристрій слід спочатку налаштувати за допомогою програми Korg Kontrol Editor, щоб він перебував у режимі CC, і кожна кнопка повинна бути налаштована на тип Note та поведінку кнопки Momentary. Щоб керувати підсвічуванням кнопок, режим LED має бути встановлений на External. Важливо відзначити, що кнопки Track і Marker не мають світлодіодів.

Тут доступний профіль Kontrol Editor, який можна завантажити за допомогою програми Windows, щоб безпосередньо налаштувати всі ці параметри для правильної роботи з darktable.

🔗додаткові налаштування MIDI

Якщо darktable скомпільовано з portmidi, він під час запуску намагатиметься відкрити до 10 MIDI-пристроїв у порядку їх знаходження. У командному рядку ви можете побачити щось на зразок цього:

[midi_open_devices] opened midi device 'Arturia BeatStep' via 'MMSystem' as midi0
[midi_open_devices] opened midi device 'BCR2000' via 'MMSystem' as midi1
[midi_open_devices] opened midi device 'X-TOUCH MINI' via 'MMSystem' as midi2

Можуть виникнути дві проблеми:

  • пристрій, який ви не хочете використовувати, все одно може бути відкрито (і потенційно це може спричинити неадекватну поведінку, як-от передчасний запуск феєрверку (див. цей документ), або

  • пристрої можуть відображатися в іншому порядку під час наступного запуску (наприклад, тому що вони підключені до іншого порту USB). Оскільки конфігурації зберігаються лише з номером пристрою, зміна порядку призведе до вибору неправильної розкладки.

Ви можете вказати, які пристрої явно завантажувати в певному місці, а які пропускати, використовуючи параметр конфігурації налаштування > різне > інтерфейс > впорядкувати або виключити MIDI-пристрої. Щоб пропустити завантаження BCR2000 у наведеному вище прикладі та закріпити два інші пристрої в слотах 0 і 2, ви можете встановити цей параметр конфігурації на “BeatStep;dontuse;X-TOUCH;-BCR2000”. Це залишить BeatStep як пристрій midi0, midi1 завжди залишиться невикористаним, взагалі не завантажить BCR2000, але якщо підключені будь-які інші пристрої, вони відображатимуться як midi3, midi4 тощо. Додавання “;-” в кінці запобігатиме завантаженню подальших пристроїв. Або, якщо ви просто вкажете параметр конфігурації як один знак мінус “-”, то жодні пристрої не завантажуватимуться взагалі.

Ручки міді-контролера можуть використовувати кілька різних “кодувань”. Кодування за замовчуванням, абсолютне, надсилає значення від 0 (повністю ліворуч) до 127 (повністю праворуч) – повзунки також можуть використовувати абсолютне кодування. Відносні кодування надсилають значення “вниз”, якщо ви повертаєте їх ліворуч, і значення “вгору”, якщо повертаєте їх праворуч. Тому повільне повертання такої ручки “вгору” призведе, наприклад, до надсилання “1, 1, 1, 1”. Але залежно від того, скільки бітів використовується і яке кодування, повільний поворот ліворуч може бути 127 (8 біт -1) або 63, 31 або 15. Або навіть 65. Якщо нічого не вказано в цьому параметрі, передбачається, що MIDI-пристрої використовують абсолютне кодування. Але якщо перші п’ять отриманих повідомлень ідентичні, передбачається, що користувач повільно повернув ручку вліво/вниз, і кодування виводиться з цього та відображається у вигляді тимчасового повідомлення. Кодування не запам’ятовується для кожного пристрою, тому цей маневр потрібно повторювати при кожному запуску. Щоб визначити виведене кодування для наступного запуску, ви можете додати цей параметр до налаштування “впорядкувати або виключити MIDI-пристрої”. Наприклад “Loupedeck:127”.

Деякі MIDI-контролери мають клавіші з підсвічуванням під ними. Їх можна використовувати для перемикання налаштувань і показу поточного положення, увімкнувши або вимкнувши світло. У цьому випадку darktable періодично (кілька разів на секунду) перевіряє, чи не було змінено, скажімо, положення екранної кнопки перемикання, і надсилає повідомлення будь-яким пов’язаним кнопкам MIDI-пристроїв, щоб увімкнути або вимкнути їх світло. Але якщо ненавмисно було підключено невідомий пристрій, це може бути небажаним. Таким чином, за замовчуванням darktable чекає, доки не буде отримано повідомлення “note” від MIDI-кнопки, перш ніж надсилати будь-які “note”-повідомлення про увімкнення/вимкнення підсвічування для цієї кнопки. Таким чином також не адресується більше кнопок, ніж є на пристрої. Якщо ви хочете негайно використовувати всі підсвічування кнопок (замість того, щоб натискати найвищу ноту один раз для кожного сеансу), ви можете вказати кількість кнопок у параметрі “впорядкувати або виключити MIDI-пристрої”, наприклад, “BeatStep:63:16”.

translations