I proudly present: Midi-Plugin für DMXC-3
Da mich der fehlende Midi-Support von DMXC3 etwas gestört hat, habe ich mal ILSpy und Visual Studio ausgepackt und habe mir ein kleines Midi-Plugin geschrieben. Es unterstützt im Moment Buttons und Encoder/Fader inklusive Backtrack
Kurz zur Funktionsweise:
Da man nicht immer weiß welche Midi-Devices an welchem Rechner sind und in welcher Reihenfolge, habe ich mich entschlossen die Geräte vom Midi-Mapping zu trennen. Man kann (theoretisch) unendlich viele Mappings anlegen, und diese bei Bedarf an Midi-Geräte koppeln. Jedes Mapping besteht aus sog. Regeln, diese sind dann pro Steuerelement verschieden (Buttons / Encoder / Fader / Touchpad etc).
Für jedes Mapping wird ein InputLayer im InputAssignment registriert, für jede Regel ein InputChannel im Betreffenen InputLayer.
Kleines Tutorial:
1. Installation
Version 0.5.3 findet ihr auf Github - Installationshinweise
2. Einrichten
Das MidiManager Fenster findet ihr unter dem Menüpunkt "Settings", öffnet es jetzt.
Im oberen Teil werden alle Midi-Geräte angezeigt, die an den Computer angeschlossen sind.
Diese werden bei jedem Start aufgelistet. Wichtig ist hier nur die Spalte DeviceId, die werden wir später brauchen.
Im unteren Teil könnt seht ihr eure Mappings. Klickt nun in den unteren Teil und drückt F5. Jetzt habt ihr ein neues
Mapping angelegt. Im InputAssignment seht ihr jetzt den neuen InputLayer mit dem Namen des Mappings.
3. Midi-Geräte verbinden
Falls ihr noch keine Midi-Controller angeschlossen habt, geht zu Schritt 4.
In der Mapping-Zeile seht ihr jetzt 2 Spalten für InputDeviceId und OutputDeviceId.
Dort tragt ihr jetzt die DeviceId aus der oberen Hälfte ein. Wenn ihr alles richtig gemacht habt, sollte,
wenn ihr das Bearbeiten beendet, die DeviceId von eurem Device dort stehen. Falls das Feld leer bleibt, wurde kein
passendes Gerät gefunden.
4. Regeln einrichten
Doppelklickt jetzt die Mapping-Zeile, dann sollte sich ein Bearbeitungsfenster öffnen.
Klickt auf Rules -> New. Dort seht ihr alle verfügbaren Steuerungstypen.
Wir legen jetzt einen Button an, also klickt auf ButtonRule.
Jetzt sollte sich links ein Eintrag angelegt haben, klickt drauf.
Dann könnt ihr rechts die Eigenschaften von diesem Eintrag bearbeiten.
Legt UseBacktrack auf True und IsToggle auf False fest.
Danach klickt oben auf "Begin learn". In der Eigenschaft "LearnStatus" gibt euch die Regel
Hinweise, wie der Anlernvorgang durchzuführen ist.
HINWEIS: BeginLearn funktioniert nur, wenn ihr dem Mapping ein InputDevice zugewiesen habt.
Pro angelegter Regel wird unter dem InputLayer ein InputChannel angelegt.
Das war es im Groben eigentlich schon.
Feedback, Bugreports, Wünsche, Kritik, Hilfe sind immer gern gesehen.
LG Martin
Changelog:
STABILE VERSIONEN:____________
0.1:
erstes Release
0.1.1:
Speicherproblem gefunden - wird noch gefixt
0.2:
Slider/Rotary hinzugefügt
Kleinere Verbesserungen
0.3:
Bug beim laden aufgrund unsinniger Backtrackwerte und zickiger WinMM API behoben
Midi-Channel wird nun aus der Nachricht richtig berechnet und ausgegeben - kann sein dass das euer Mapping ein wenig kaputtmacht.
Bugfix im Fader
Bugfix mit InputDevices
0.3.1:
Backtrack für Executoren - getestet und für gut befunden
Bugfix für Midi Geräte
Vorbereitung für Import/Export
0.3.2:
Import / Export Funktion eingebaut, getestet
Bugfix im Fadercontrol - Werte wurden nicht zurückgesendet.
0.3.2.1:
Habe ausversehen im Executorwindow zu Debugzwecken die Auswahl grün gefärbt. Sorry
0.3.2 und 0.3.2.1 haben den Bug dass man nur den ersten Executor backtracken konnte. ist in der 0.4 gefixt.
0.4:
Bug mit Backtrack behoben
Kleines Feature hinzugefügt werdet ihr beim ausprobieren sehen
Bug beim Import behoben
Stabilität verbessert.
0.4.1:
Sollte jetzt auch final für die 3.0 laufen.
0.4.2:
Grandmaster kann man nun steuern (findet ihr unter DynamicExecutors)
Bug beim speichern behoben
Backtrack wird nun korrekt geladen
0.5:
Hoffentlich die Bugs auf den letzten 2 Seiten behoben
Bug behoben, dass man die Guid von Regeln ändern konnte
Multi-Client tut jetzt.
0.5.1:
Update für die 3.0.1 - viel interner Umbau
0.5.2:
Bugfix für IsToggle (Lichtfuzzi)
0.5.3:
Update für die 3.1.1