ondersteuning voor midi-apparaten

🔗inleiding

MIDI is een communicatieprotocol dat wordt gebruikt door veel elektronische muziekinstrumenten (“piano’s”), digitale audiostudioapparatuur (“bedieningsoppervlakken”) en zelfs speciale “fotobewerkingstoetsenborden” zoals de Loupedeck/Loupedeck+ (maar niet hun latere producten). Dergelijke apparaten zijn doorgaans voorzien van sets toetsen/knoppen en soms van encoders (knoppen/rotors) en faders (schuifregelaars). Knoppen zijn soms voorzien van lampjes, wat ze ideaal maakt voor het schakelen tussen functies in darktable, omdat de lampjes de huidige (aan/uit) status kunnen weerspiegelen. Encoders en faders zijn ideaal voor gebruik met schuifregelaars op het scherm in verwerkingsmodules. Ze kunnen “eindeloos” zijn (zonder begin-/eindpunt en zonder enige markering op de knop), waardoor een rotatie van meer dan 360 graden mogelijk is, en ze kunnen gemotoriseerd zijn. Dit is handig bij het schakelen tussen afbeeldingen of punten in de bewerkingsgeschiedenis, omdat de “fysieke” positie van de encoders/faders altijd overeenkomt met de positie op het scherm. Mogelijk vindt u ook een ring met LED’s rond een encoder die de huidige waarde aangeeft.

🔗eindeloze encoders; absolute / relatieve codering

Naast hun fysieke kenmerken zijn deze apparaten vaak in hoge mate configureerbaar in de manier waarop ze gegevens verzenden. Encoders kunnen hun “absolute” positie verzenden wanneer ze worden gedraaid, als een waarde in het bereik van 0-127. Darktable stuurt de huidige positie van de schuifregelaar op het scherm terug, waarop een ring van LED’s zou laten zien (indien aanwezig) of waarop een gemotoriseerde fader zou reageren (door de knop te bewegen). Als de encoder eindeloos is, kan deze ook worden gebruikt met andere snelheden en een hogere resolutie dan alleen de 128 stappen, waarbij veel rotaties of minder dan een volledige rotatie nodig zijn om de schuifregelaar op het scherm tussen de uitersten te verplaatsen.

Eindeloze encoders zonder ringverlichting kunnen relatieve bewegingen verzenden die kunnen worden versneld bij snel draaien. Er kunnen verschillende coderingsmodi worden gebruikt en het apparaat wordt mogelijk geleverd met software om deze opties te configureren. Het is belangrijk dat alle encoders dezelfde instellingen gebruiken en op hetzelfde “kanaal” verzenden als de toetsen (idealiter de eerste: 0 of 1). Standaard probeert darktable erachter te komen welk kanaal en welke codering wordt gebruikt door naar de eerste vijf berichten te luisteren. Na het starten van een sessie moet u langzaam een knop naar links/omlaag draaien, zodat er 5 identieke berichten van één stap omlaag worden verzonden. Als dit niet lukt, kan het invoersysteem worden gereset (door op Ctrl+Alt+Shift+i te drukken) voor een nieuwe poging. Als dit lukt, wordt er in het midden van het scherm een toastbericht weergegeven met de ontdekte coderingsmodus - 127 (“2s Complement”) en 63 (“Relative Offset”) zijn gebruikelijk.

🔗gebruik

Als uw apparaat succesvol is geconfigureerd en verbonden, zou u berichten als “G#–1 (8) niet toegewezen” moeten zien wanneer u op een knop drukt (de eerste is een muzieknotatiecode voor de “toon”, de tweede een numerieke weergave ) of “CC1,up niet toegewezen” bij het aanpassen van een encoder. U bent nu klaar om knoppen en encoders aan acties toe te wijzen. De eenvoudigste manier om dit voor een aantal van hen in één keer te doen, is door op de knop visuele snelkoppelingen te drukken (links van de knop Voorkeuren ) om de modus voor visuele snelkoppeling te openen. Als u in deze modus met de muis over een knop of schuifregelaar beweegt en vervolgens op een toets drukt of aan een encoder op het MIDI-apparaat draait, wordt deze toegewezen als een snelkoppeling naar die widget. Je kunt het meteen testen (terwijl je in de kaartmodus blijft) door de muis naar het midden van het scherm te bewegen (zodat je hem niet per ongeluk aan een andere widget toewijst) en de actie vervolgens te herhalen. Klik met de rechtermuisknop om de kaartmodus uit te schakelen.

Mogelijk wilt u ook knoppen toewijzen om de Ctrl- en Shift-toetsfuncties te dupliceren. Hiervoor heeft u het volledige dialoogvenster met snelkoppelingen nodig (klik met de rechtermuisknop op de snelkoppelingsknop of open voorkeuren en ga naar de [sneltoetsen](../preferences-settings/shortcuts .md) tabblad). Dubbelklik in de bovenste lijst (“actie”) op “global/modifiers”. Druk nu op de MIDI-knop die u aan Shift wilt toewijzen. Dubbelklik opnieuw op “global/modifiers”, maar verander deze keer na het toewijzen van een knop het element voor de nieuw gemaakte sneltoets in de onderste lijst van “shift” naar “ctrl”. Nu kunt u uw MIDI-apparaat samen met uw muis gebruiken om toegang te krijgen tot de meeste functionaliteit in darktable. Na het aanvinken van “terugval inschakelen” in het dialoogvenster met sneltoetsen, zal het ingedrukt houden van Ctrl terwijl je aan een encoder draait het met een factor 10 vertragen, terwijl het ingedrukt houden van Shift het versnelt.

Verschillende door Behringer geproduceerde apparaten hebben LED’s in een cirkel rond hun encoderknoppen. Deze gebruiken verschillende patronen, afhankelijk van aan welke schuifregelaar of combobox ze zijn toegewezen:

  • Als de schuifregelaar van -1 naar +1 gaat, brandt alleen de middelste LED op nul. Als u negatief beweegt, wordt de linkerkant geleidelijk verlicht, als u positief beweegt, wordt de rechterkant verlicht.
  • Als de schuifregelaar van 0-100% gaat, zie je meer LED’s branden als je naar rechts beweegt, totdat ze allemaal op 100% branden.
  • Andere numerieke waarden gebruiken 1 of 2 LED’s om tussenwaarden aan te geven.
  • Dropdownmenu’s gebruiken 1 LED voor de opties die passen bij de eerste draai aan de draaiknop en 2 bij de tweede draai.

🔗Problemen oplossen en configuratie

Als je geen “niet toegewezen” toast bovenaan je scherm ziet wanneer je op toetsen drukt of aan knoppen draait, wil je testen of andere MIDI-toepassingen het apparaat kunnen zien. Onder Linux moet Alsa geïnstalleerd zijn. Na het aansluiten van het apparaat zou dmesg regels als deze moeten tonen:

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

Darktable gebruikt de eenvoudige platformonafhankelijke laag PortMidi om toegang te krijgen tot de onderliggende OS API (Alsa, Core Midi, WinMM). Als u zelf compileert, zorg er dan voor dat u deze bibliotheek hebt opgenomen.

Het starten van darktable met de debug-parameters -d input zal aanvullende informatie opleveren. Het zou moeten proberen maximaal 10 MIDI-apparaten te openen in de volgorde waarin het ze vindt. Op de opdrachtregel ziet u mogelijk zoiets als dit:

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

Twee problemen kunnen zich voordoen:

  • een apparaat die je niet wilt gebruiken, kan evengoed geopend worden (en mogelijk voor ongewenste gedrag zorgen, zoals het te vroeg starten van een vuurwerk show – bekijk dit document); of

  • apparaten kunnen in een andere volgorde weergegeven worden bij opnieuw opstarten (bijvoorbeeld omdat deze op een andere usb poort is aangesloten). Doordat configuraties alleen worden opgeslagen met de apparaat nummers kan het opnieuw ordenen voor een incorrecte weergave zorgen.

U kunt bepalen welke apparaten op een specifieke locatie moeten worden geladen en welke moeten worden overgeslagen met behulp van de configuratieparameter voorkeuren > diversen > interface > ordenen of uitsluiten midi apparaten. Om het laden van de BCR2000 in het bovenstaande voorbeeld over te slaan en de andere twee apparaten in slot 0 en 2 te plaatsen, kunt u deze configuratieparameter instellen op “BeatStep;dontuse;X-TOUCH;-BCR2000”. Dit zou de BeatStep als midi0-apparaat laten, midi1 altijd ongebruikt laten en de BCR2000 helemaal niet laden, maar als er andere apparaten zijn aangesloten, verschijnen ze als midi3, midi4 enzovoort. Door “;-” aan het einde toe te voegen, wordt voorkomen dat verdere apparaten worden geladen.

Als u de configuratieparameter alleen opgeeft als een enkel minteken “-”, worden er helemaal geen apparaten geladen.

Voor apparaten die relatieve codering gebruiken, zoals hierboven vermeld, moet u bij elke start de slow-turn-left-procedure uitvoeren, of de gevonden codering toevoegen aan de configuratiereeks. Bijvoorbeeld “Loupedeck:127”.

Sommige MIDI-controllers hebben toetsen met een lampje eronder. Deze kunnen worden gebruikt om tussen instellingen te schakelen en de huidige positie weer te geven door het licht aan of uit te zetten. Om dit te laten werken, controleert darktable periodiek (een paar keer per seconde) of bijvoorbeeld de positie van een schakelknop op het scherm is gewijzigd, en stuurt het berichten naar de knoppen van gekoppelde MIDI-apparaten om hun licht aan of uit te zetten. Maar als er onbedoeld een onbekend apparaat is aangesloten, kan dit ongewenst zijn. Dus standaard wacht darktable tot een “notitie”-bericht wordt ontvangen van een MIDI-knop voordat het een “notitie”-licht aan/uit-berichten terugstuurt (en elk lager nummer) voor die knop. Op die manier worden niet meer knoppen aangesproken dan er op het apparaat bestaan. Als u wilt dat alle knoplampjes onmiddellijk worden gebruikt (in plaats van dat u de hoogste notitie een keer moet indrukken voor elke sessee), kunt u het aantal knoppen specificeren in de voorkeur “volgorde van uit te sluiten MIDI-apparaten”, bijvoorbeeld “BeatStep:63 :16”.

🔗ondersteunde apparaten

Het snelkoppelingssysteem is uitgebreid getest met de Behringer-apparaten en bevat aangepaste code om met hun specifieke functies om te gaan. Alle andere apparaten worden behandeld als “generieke midi” en werken mogelijk niet (goed). Als het je lukt om een MIDI-apparaat aan de praat te krijgen dat hieronder niet wordt vermeld, wordt het zeer op prijs gesteld als je feedback wilt geven om anderen te helpen als er speciale stappen nodig zijn. U kunt dit doen door een documentatie pull request in te dienen om deze pagina aan te passen of door [een probleem in te dienen](https://github.com/ darktable-org/dtdocs/issues) met de benodigde informatie.

🔗Behringer X-touch Mini / Compact

Deze apparaten moeten in de standaardmodus staan (niet MC). Lagen A en B worden echter enigszins ondersteund, omdat het apparaat geen melding verzendt bij het schakelen tussen lagen, en omdat lichten (zowel onder de knoppen als het patroon dat rond de rotors wordt gebruikt) worden ingesteld op basis van welke laag darktable denkt dat actief is, alles wordt pas volledig bijgewerkt nadat u op de “nieuwe” laag iets hebt ingedrukt of gedraaid. Er wordt uitgegaan van standaardinstellingen; Als er wijzigingen zijn aangebracht, kunnen deze worden hersteld met behulp van deze X-Touch Editor

🔗Behringer BCR2000 / BCF2000

Deze machines zijn zeer configureerbaar, dus er zijn veel instellingen die de interactie met de MIDI module van darktable kunnen bemoeilijken. De BC Manager tool (beschikbaar voor Windows en MacOS) kan worden gebruikt om ze te configureren. Het gemakkelijkste is om alle encoders en knoppen terug te zetten naar hun eenvoudigste instellingen, wat kan worden gedaan (voor de BCR2000) met [dit bestand](https://github.com/dterrahe/darktable/files/6539400/bcr2000. alle.knoppen.en.encoders.zip). Je kunt het naar de machine sturen met BC Manager of (onder Linux) met amidi. Er is ook een algemene instelling genaamd “Deadtime” die bepaalt hoe lang de BCR binnenkomende berichten negeert na het verzenden van updates. Dit is bedoeld om feedbackloops te voorkomen, maar voor darktable betekent dit dat het de aanpassingen blokkeert die onmiddellijk na elke rotorbeweging worden teruggestuurd. Dus Deadtime moet op 0 worden gezet.

🔗Arturia Beatstep

Individuele rotors kunnen worden geconfigureerd om absolute (0-127) waarden of wijzigingen (+/- 1,2,3,… in verschillende coderingen) te verzenden. De aanbevolen instelling is Relatief #1 voor alle knoppen waarvan de knopversnelling is ingesteld op Langzaam (Uit) of Medium. Plaats vervolgens de string BeatStep:63:16 in [voorkeuren > diversen > interface > ordenen of uitsluiten MIDI apparaten] (../preferences-settings/miscellaneous.md#interface). Dit kan worden geconfigureerd met Midi Control Center, beschikbaar voor Windows of MacOS.

🔗Loupedeck / Loupedeck+

Plaats de string Loupedeck:127 in “voorkeuren > diversen > interface > ordenen of uitsluiten MIDI apparaten”.

@jenshannoschwalm heeft een lay-out geleverd die kan worden geïmporteerd in het dialoogvenster/tabblad met snelkoppelingen. Het kan, met documentatie, hier worden gevonden https://github.com/darktable-org/darktable/pull/12829#issuecomment-1320264833

🔗Korg nanoKONTROL2

Het apparaat moet eerst worden geconfigureerd met behulp van de Korg Kontrol Editor-toepassing om in de CC-modus te staan en elke knop moet worden ingesteld op het notitietype en Momentary-knopgedrag. Om de verlichting in de knoppen te bedienen, moet de LED-modus worden ingesteld op Extern. Het is belangrijk op te merken dat de Track- en de Marker-knoppen geen leds hebben.

Er is een Kontrol Editor-profiel beschikbaar hier, dat kan worden geladen met behulp van de Windows-toepassing om al deze instellingen direct te configureren om correct te werken met ontwikkelen.

translations