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

🔗Вступ

MIDI — це протокол зв’язку, який використовується багатьма електронними музичними інструментами (“піаніно”), цифровим аудіостудійним обладнанням (“контрольними поверхнями”) і навіть спеціальними “клавіатурами для редагування фотографій”, як-от Loupedeck/Loupedeck+ (але не їхніми пізнішими продуктами). Такі пристрої зазвичай мають набори клавіш/кнопок, а іноді й кодери (ручки/ротори) і фейдери (повзунки). На кнопках іноді є індикатори, що робить їх ідеальними для перемикання функцій у Darktable, оскільки індикатори можуть відображати поточний стан (увімкнено/вимкнено). Кодери та фейдери ідеально підходять для використання з екранними повзунками в модулях обробки. Вони можуть бути “безкінцевими” (без початкової/кінцевої точки та без будь-яких позначок на ручці), що дозволяє обертатися більше ніж на 360 градусів, і вони можуть бути моторизованими. Це корисно під час перемикання між зображеннями чи точками в історії редагування, оскільки “фізичне” положення кодерів/фейдерів завжди відповідає положенню на екрані. Ви також можете знайти кільце світлодіодів навколо кодера, яке вказує його поточне значення.

🔗Безкінцеві кодери; абсолютне / відносне кодування

Окрім своїх фізичних характеристик, ці пристрої часто мають широкі можливості конфігурації щодо того, як вони надсилають дані. Кодери можуть надсилати своє “абсолютне” положення під час повороту як значення в діапазоні 0-127. Darktable надішле назад поточне положення повзунка на екрані, яке буде показувати кільце світлодіодів (якщо воно є) або реагуватиме моторизований фейдер (переміщенням ручки). Якщо кодер є безкінцевим, його також можна використовувати з іншою швидкістю та вищою роздільною здатністю, ніж просто 128 кроків, з багатьма обертами або менше, ніж повний оберт, необхідним для переміщення повзунка на екрані між крайніми значеннями.

Безкінцеві кодери без кільцевих індикаторів можуть надсилати відносні рухи, які можна прискорити при швидкому повороті. Можна використовувати різні режими кодування, і пристрій може мати програмне забезпечення для налаштування цих параметрів. Важливо, щоб усі кодери використовували однакові налаштування та надсилали на той самий “канал”, що й ключі (в ідеалі перший: 0 або 1). За замовчуванням Darktable намагається з’ясувати, який канал і кодування використовуються, прослуховуючи перші п’ять повідомлень. Після початку сеансу ви повинні повільно повернути ручку вліво/вниз, щоб надіслати 5 однакових повідомлень один-крок-вниз. Якщо це не вдасться, систему введення можна скинути (натиснувши Ctrl+Alt+Shift+i) для іншої спроби. У разі успіху в центрі екрана з’явиться тимчасове сповіщення про виявлений режим кодування – 127 (“доповняльний код”) і 63 (“відносне зміщення”) є поширеними.

🔗Використання

Якщо ваш пристрій успішно налаштовано та приєднано, під час натискання кнопки ви маєте побачити повідомлення на кшталт “G#–1 (8) не призначено” (перше — код нотного запису для “тону”, друге — числове представлення) або “CC1,up не призначено” під час налаштування кодера. Тепер ви готові призначати кнопки та кодери діям. Найпростіший спосіб зробити це для кількох із них за один раз – натиснути кнопку візуального зіставлення прискорювачів (ліворуч від кнопки налаштувань), щоб увійти в режим візуального зіставлення. У цьому режимі, коли ви наводите вказівник миші на кнопку чи повзунок, а потім натискаєте клавішу чи обертаєте кодер на MIDI-пристрої, він призначається як прискорювач для цього віджета. Ви можете негайно перевірити його (перебуваючи в режимі зіставлення), перемістивши мишу в середину екрана (щоб випадково не призначити його іншому віджету), а потім повторивши дію. Клікніть правою кнопкою миші, щоб вимкнути режим зіставлення.

Ви також можете призначити кнопки для дублювання функцій клавіш Ctrl і Shift. Для цього вам знадобиться повне діалогове вікно прискорювачів (клікніть правою кнопкою миші на кнопці прискорювачів або відкрийте налаштування і перейдіть до вкладки прискорювачів .md)). У верхньому («дії») списку двічі клікніть “Глобально/Модифікатори”. Тепер натисніть кнопку MIDI, яку ви хочете призначити для Shift. Знову двічі клікніть “Глобально/Модифікатори”, але цього разу після призначення кнопки змініть Елемент для щойно створеного прискорювача в нижньому списку зі “shift” на “ctrl”. Тепер ви можете використовувати свій MIDI-пристрій разом із мишею для доступу до більшості функціональних можливостей Darktable. Після того, як у діалоговому вікні прискорювачів встановлено прапорець “увімкнути резервні дії”, утримування Ctrl під час обертання кодера сповільнить його в 10 разів, тоді як утримання Shift прискорить його.

Кілька пристроїв, вироблених компанією Behringer, мають світлодіоди в колі навколо ручок кодерів. Вони використовують різні шаблони залежно від того, до якого повзунка чи поля зі списком їх призначено:

  • Якщо повзунок змінюється від -1 до +1, лише середній світлодіод горітиме на нулі. Переміщення в мінус поступово освітлюватиме ліву сторону, переміщення в плюс – праву сторону.
  • Якщо повзунок змінюється від 0 до 100%, ви побачите більше світлодіодів, що горять під час руху праворуч, доки всі вони не засвітяться на 100%.
  • Інші числові значення використовуватимуть 1 або 2 світлодіоди для позначення проміжних значень.
  • Випадаючі списки використовуватимуть 1 світлодіод для параметрів, які підходять для першого повороту диска, і 2 для другого повороту.

🔗Вирішення проблем і конфігурація

Якщо під час натискання клавіш або обертання ручок у верхній частині екрана не відображається “Не призначено”, то перевірте, чи бачать пристрій інші програми MIDI. У Linux вам потрібно буде встановити Alsa. Після підключення пристрою dmesg має відображати рядки, подібні до цих:

usb 1-1: new full-speed USB device number 2 using xhci_hcd
...
mc: Linux media interface: v0.10
usbcore: registered new interface driver snd-usb-audio

Darktable використовує простий кросплатформний рівень PortMidi для доступу до базового API ОС (Alsa, Core Midi, WinMM). Якщо ви компілюєте самостійно, переконайтеся, що ви включили цю бібліотеку.

Запуск Darktable із параметром налагодження -d input дасть додаткову інформацію. Він має спробувати відкрити до 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 тощо. Додавання “;-” в кінці запобігатиме завантаженню подальших пристроїв.

Якщо ви просто вкажете параметр конфігурації як один знак мінус “-”, жодні пристрої не будуть завантажені взагалі.

Для пристроїв, які використовують відносне кодування, як зазначено вище, вам доведеться виконувати процедуру повільного повороту ліворуч при кожному запуску або додавати знайдене кодування до рядка конфігурації. Наприклад, “Loupedeck:127”.

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

🔗Підтримувані пристрої

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

🔗Behringer X-touch Mini / Compact

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

🔗Behringer BCR2000 / BCF2000

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

🔗Arturia Beatstep

Окремі ротори можна налаштувати для надсилання абсолютних (0-127) значень або змін (+/- 1,2,3,… у різних кодуваннях). Рекомендоване значення Relative #1 для всіх регуляторів із налаштуванням Knob Acceleration встановленим на Slow (Off) або Medium. Потім додайте рядок BeatStep:63:16 у Налаштування > Різне > Інтерфейс > Упорядкувати або виключити MIDI-пристрої. Це можна налаштувати за допомогою Midi Control Center, доступного для Windows і MacOS.

🔗Loupedeck / Loupedeck+

Вставте рядок Loupedeck:127 у “Налаштування > Різне > Інтерфейс > Упорядкувати або виключити MIDI-пристрої”.

@jenshannoschwalm надав розкладку, яку можна імпортувати в діалоговому вікні/вкладці прискорювачів. Її можна знайти разом із документацією тут.

🔗Korg nanoKONTROL2

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

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

translations