obsługa urządzeń midi
🔗wstęp
MIDI to protokół komunikacyjny używany przez wiele elektronicznych instrumentów muzycznych („pianina”), cyfrowy sprzęt studyjny audio („powierzchnie sterujące”), a nawet dedykowane „klawiatury do edycji zdjęć”, takie jak Loupedeck/Loupedeck+ (ale nie ich późniejsze produkty). Takie urządzenia zwykle zawierają zestawy klawiszy/przycisków, a czasami enkodery (gałki/pokrętła) i suwaki. Przyciski czasami wyposażone są w diody, co czyni je idealnymi do przełączania funkcji w darktable, ponieważ lampki mogą odzwierciedlać bieżący stan (włączony/wyłączony). Enkodery i suwaki idealnie nadają się do stosowania z suwakami wyświetlanymi na ekranie w modułach produkcyjnych. Mogą być „nieskończone” (bez punktu początkowego/końcowego i bez oznaczeń na pokrętle), umożliwiając obrót większy niż 360 stopni, a także mogą być napędzane silnikiem. Jest to przydatne podczas przełączania między obrazami lub punktami w historii edycji, ponieważ „fizyczna” pozycja koderów/tłumików zawsze odpowiada pozycji na ekranie. Możesz także znaleźć pierścień diod LED wokół enkodera, który wskazuje jego aktualną wartość.
🔗nieskończone enkodery; kodowanie względne / bewzględne
Oprócz cech fizycznych, urządzenia te często oferują duże możliwości konfiguracji sposobu wysyłania danych. Enkodery mogą wysyłać swoją „bezwzględną” pozycję po obróceniu, jako wartość z zakresu 0-127. Darktable odeśle bieżącą pozycję suwaka na ekranie, którą pokaże pierścień diod LED (jeśli jest obecny) lub na który zareaguje zmotoryzowany suwak (poruszając pokrętłem). Jeśli koder jest nieograniczony, można go również używać z różnymi prędkościami i wyższą rozdzielczością, niż tylko 128 kroków, przy czym do przesunięcia suwaka ekranowego między skrajnościami potrzebnych jest wiele obrotów lub mniej niż pełny obrót.
Enkodery nieograniczone bez świateł pierścieniowych mogą wysyłać ruchy względne, które można przyspieszyć przy szybkim obrocie. Można używać różnych trybów kodowania, a do urządzenia może być dołączone oprogramowanie umożliwiające skonfigurowanie tych opcji. Ważne jest, aby wszystkie kodery korzystały z tych samych ustawień i wysyłały na tym samym „kanale” co klawisze (najlepiej pierwszy: 0 lub 1). Domyślnie darktable próbuje dowiedzieć się, który kanał i kodowanie jest używane, słuchając pierwszych pięciu wiadomości. Po rozpoczęciu sesji należy powoli kręcić pokrętłem w lewo/w dół, tak aby wysłanych zostało 5 identycznych komunikatów o jednym kroku w dół. Jeśli to się nie powiedzie, system wejściowy można zresetować (naciskając Ctrl+Alt+Shift+i) i spróbować jeszcze raz. Jeśli operacja się powiedzie, na środku ekranu zostanie pojawi się informacja, wyświetlająca wykryty tryb kodowania — często używane są wartości 127 („Dopełnienie 2s”) i 63 („Przesunięcie względne”).
🔗użycie
Jeśli twoje urządzenie zostało pomyślnie skonfigurowane i podłączone, po naciśnięciu przycisku powinien pojawić się komunikat „G#–1 (8) nie przypisany” (pierwszy to kod zapisu muzycznego „tonu”, drugi to reprezentacja numeryczna ) lub „CC1, up nie przypisane” podczas regulacji enkodera. Możesz teraz przypisać przyciski i kodery do akcji. Najłatwiej zrobić to dla wielu z nich za jednym razem, naciskając przycisk wizualne mapowanie skrótów (po lewej stronie przycisku ustawień), aby przejść do trybu mapowania wizualnego skrótów. W tym trybie, gdy najedziesz myszką na przycisk lub suwak, a następnie naciśniesz klawisz lub przekręcisz koder na urządzeniu MIDI, zostanie on przypisany jako skrót do tego widżetu. Możesz od razu to przetestować (pozostając w trybie mapowania) przesuwając myszką na środek ekranu (aby przypadkowo nie przypisać go do innego widżetu), a następnie powtarzając akcję. Kliknij PPM, aby wyłączyć tryb mapowania.
Możesz także przypisać przyciski, aby powielić funkcje klawiszy Ctrl i Shift. W tym celu potrzebne jest pełne okno dialogowe skrótów (kliknij PPM przycisk skrótów lub otwórz ustawienia i przejdź do zakładki skrótów. W górnej sekcji („akcja”) kliknij dwukrotnie pozycję „ogólne/modyfikatory”. Teraz naciśnij przycisk MIDI, który chcesz przypisać do Shift. Ponownie kliknij dwukrotnie „ogólne/modyfikatory”, ale tym razem po przypisaniu przycisku zmień element dla nowo utworzonego skrótu na dolnej liście z „shift” na „ctrl”. Teraz możesz używać urządzenia MIDI razem z myszą, aby uzyskać dostęp do większości funkcji darktable. Po zaznaczeniu opcji „włącz funkcję zastępczą” w oknie dialogowym skrótów, przytrzymanie klawisza Ctrl podczas obracania kodera spowolni go 10-krotnie, natomiast przytrzymanie klawisza Shift przyspieszy.
Kilka urządzeń wyprodukowanych przez firmę Behringer ma diody LED umieszczone w okręgu wokół pokręteł enkodera. Używają one różnych wzorców w zależności od suwaka lub pola kombi, do którego są przypisane:
- Jeśli suwak przesunie się z -1 na +1, tylko środkowa dioda LED będzie świecić na zero. Kręcenie w lewo będzie stopniowo oświetlać lewą stronę, kręcenie w prawo – prawą.
- Jeśli suwak przesunie się od 0 do 100%, przy przesuwaniu w prawo zapali się więcej diod LED, aż wszystkie zaświecą się na poziomie 100%.
- Inne wartości numeryczne będą wykorzystywać 1 lub 2 diody LED do wskazywania wartości pośrednich.
- W menu rozwijanym będzie 1 dioda LED dla opcji pasujących do pierwszego obrotu pokrętła i 2 diody w drugim obrocie.
🔗rozwiązywanie problemów i konfiguracja
Jeśli podczas naciskania klawiszy lub obracania pokręteł nie widzisz u góry ekranu żadnej informacji o “nieprzypisaniu”, sprawdź, czy inne aplikacje MIDI widzą to urządzenie. W systemie Linux musisz mieć zainstalowaną Alsę. Po podłączeniu urządzenia dmesg powinien wyświetlić takie linie:
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 wykorzystuje prostą, wieloplatformową warstwę PortMidi, aby uzyskać dostęp do podstawowego API systemu operacyjnego (Alsa, Core Midi, WinMM). Jeśli kompilujesz samodzielnie, upewnij się, że dołączyłeś tę bibliotekę.
Uruchomienie darktable z parametrami debugowania -d input
da dodatkowe informacje. Podanie tej opcji spowoduje, że darktable spróbuje otworzyć do 10 urządzeń MIDI w kolejności, w jakiej je znajdzie. W wierszu poleceń możesz zobaczyć coś takiego:
[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
Możesz napotkać dwa problemy:
-
urządzenie, którego nie chcesz używać, może i tak zostać otwarte (i potencjalnie spowodować niewłaściwe zachowanie, np. przedwczesne uruchomienie pokazu sztucznych ogni – zobacz ten dokument); lub
-
urządzenia mogą pojawić się w innej kolejności przy następnym uruchomieniu (na przykład dlatego, że są podłączone do innego portu USB). Ponieważ konfiguracje są zapisywane wyłącznie z numerem urządzenia, przenumerowanie spowodowałoby pobranie nieprawidłowego układu.
Możesz określić, które urządzenia mają zostać załadowane w określonej lokalizacji, a które pominąć, używając parametru konfiguracyjnego ustawienia > różne > interfejs > uporządkuj lub wyklucz urządzenia midi. Aby pominąć ładowanie BCR2000 w powyższym przykładzie i umieścić pozostałe dwa urządzenia w gniazdach numer 0 i 2, możesz ustawić ten parametr konfiguracyjny na „BeatStep;dontuse;X-TOUCH;-BCR2000
”. Spowodowałoby to pozostawienie BeatStep jako urządzenia midi0, zawsze pozostawienie midi1 nieużywanego i w ogóle nie załadowałoby BCR2000, ale jeśli podłączone zostaną inne urządzenia, będą one wyświetlane jako midi3, midi4 i tak dalej. Dodanie „;-
” na końcu zapobiegłoby ładowaniu dalszych urządzeń.
Jeśli podasz parametr konfiguracyjny jako pojedynczy znak minus “-
”, żadne urządzenia nie zostaną załadowane.
W przypadku urządzeń korzystających z kodowania względnego, jak wspomniano powyżej, należy wykonać procedurę powolnego skrętu w lewo przy każdym uruchomieniu lub dodać znalezione kodowanie do ciągu konfiguracyjnego. Na przykład “Loupedeck:127
”.
Niektóre kontrolery MIDI mają klawisze ze światełkiem pod nimi. Można ich używać do przełączania ustawień i pokazywania aktualnej pozycji poprzez włączenie lub wyłączenie światła. Aby to zadziałało, darktable sprawdza okresowo (kilka razy na sekundę), czy, powiedzmy, pozycja ekranowego przycisku przełączającego została zmieniona, i wysyła komunikaty do dowolnych podłączonych przycisków urządzeń MIDI, aby włączyć lub wyłączyć ich podświetlenie. Jeśli jednak przypadkowo podłączono nieznane urządzenie, może to być niepożądane. Zatem domyślnie darktable czeka, aż zostanie odebrany komunikat „nuta” z przycisku MIDI, zanim wyśle komunikaty włączające/wyłączające wstecz kontrolkę „nuta” dla tego przycisku (i dowolnego przycisku o niższym numerze). W ten sposób nie będzie adresowanych więcej przycisków niż jest na urządzeniu. Jeśli chcesz, aby podświetlenie wszystkich przycisków było natychmiast używane (zamiast naciskania najwyższej nuty raz w każdej sesji), możesz określić liczbę przycisków w preferencjach „porządkuj lub wykluczaj urządzenia MIDI”, na przykład “BeatStep:63 :16
”.
🔗wspierane urządzenia
System mapowania skrótów został najdokładniej przetestowany z urządzeniami Behringer i zawiera niestandardowy kod, obsługujący ich specyficzne funkcje. Wszystkie inne urządzenia są traktowane jako “ogólne midi” i mogą, ale nie muszą, działać (dobrze). Jeśli uda ci się uruchomić urządzenie MIDI, które nie zostało wymienione poniżej, będziemy bardzo wdzięczni za przesłanie opinii, aby pomóc innym, jeśli wymagane są jakieś specjalne kroki. Możesz to zrobić, przesyłając pull request dokumentacji, aby poprawić tę stronę, lub zgłaszając problem, zawierający niezbędne informacje.
🔗Behringer X-touch Mini / Compact
Urządzenia te powinny działać w trybie standardowym (nie MC). Warstwy A i B są jednak w pewnym stopniu obsługiwane, ponieważ urządzenie nie wysyła powiadomienia podczas przełączania między warstwami, a światła (zarówno pod przyciskami, jak i wzór wokół rotorów) są ustawiane na podstawie tego, która warstwa darktable uważa za aktywną, wszystko zostanie całkowicie zaktualizowany dopiero po naciśnięciu lub obróceniu czegoś w „nowej” warstwie. Zakłada się ustawienia domyślne; jeśli jakieś zostały zmienione, można je przywrócić za pomocą tego [edytora X-Touch] (https://mediadl.musictribe.com/download/software/behringer/X-TOUCH/X-TOUCH-EDITORv1-21.zip)
🔗Behringer BCR2000 / BCF2000
Maszyny te są wysoce konfigurowalne, więc istnieje wiele ustawień, które mogą skomplikować interakcję z modułem MIDI darktable. Do ich konfiguracji można wykorzystać narzędzie BC Manager (dostępne dla systemów Windows i MacOS). Najłatwiej jest zresetować wszystkie kodery i przyciski do najprostszych ustawień, co można zrobić (w przypadku BCR2000) za pomocą tego pliku. Możesz wysłać go do komputera za pomocą BC Managera lub (pod Linuksem) za pomocą amidi. Istnieje również globalne ustawienie o nazwie „Deadtime”, które określa, jak długo BCR ignoruje nadchodzące wiadomości po wysłaniu aktualizacji. Ma to na celu uniknięcie pętli sprzężenia zwrotnego, ale w przypadku darktable oznacza to, że blokuje on regulacje wysyłane z powrotem natychmiast po każdym ruchu rotora. Dlatego parametr deadtime musi być ustawiony na 0.
🔗Arturia Beatstep
Poszczególne rotory można skonfigurować tak, aby wysyłały wartości bezwzględne (0-127) lub zmiany (+/- 1,2,3,… w różnych kodowaniach). Zalecane ustawienie to Relative #1 dla wszystkich pokręteł z Knob Acceleration ustawionym na Slow (Off) lub Medium. Następnie umieść ciąg BeatStep:63:16
w ustawienia > różne > interfejs > uporządkuj lub wyklucz urządzenia midi. Można to skonfigurować za pomocą Midi Control Center, dostępnego dla systemu Windows lub MacOS.
🔗Loupedeck / Loupedeck+
Umieść ciąg Loupedeck:127
w “ustawienia > różne > interfejs > uporządkuj lub wyklucz urządzenia midi”.
@jenshannoschwalm udostępnił układ, który można zaimportować w oknie dialogowym/karcie skrótów. Można go znaleźć wraz z dokumentacją tutaj https://github.com/darktable-org/darktable/pull/12829#issuecomment-1320264833
🔗Korg nanoKONTROL2
Urządzenie należy najpierw skonfigurować za pomocą aplikacji Korg Kontrol Editor, aby było w trybie CC, a każdy przycisk powinien być ustawiony na typ notatki i zachowanie przycisku Momentary. Aby sterować oświetleniem w przyciskach, należy ustawić tryb LED na External. Należy zauważyć, że przyciski Track i Marker nie mają w sobie diod LED.
Tutaj dostępny jest profil Kontrol Editor, który można załadować za pomocą aplikacji Windows, aby bezpośrednio skonfigurować wszystkie te ustawienia, aby działały poprawnie z darktable.