Beat aus Virtual DJ 8 in DMX Control 3.x nutzen

  • Bei mir muss immer alles beatgesteuert sein. Für DMXC2 hatte ich ein funktionierendes Setup. Nun steige auch ich endlich auf die 3er um und es stellte sich ein wenig problematisch dar den Beat aus Virtual DJ 8 (freie Version hier ausreichend) in DMXC3 zu bekommen.

    Ich wurde im Forum nicht wirklich hilfreich fündig was dieses Thema angeht. Nach einigem Rumprobieren konnte ich das Problem aber lösen und möchte meine Lösung hier teilen. Ich freue mich auf bessere Lösungen ^^


    Vorbedingungen:

    • Virtual DJ ab Version 8, freie Version ausreichend
    • LoopBe1 virtuelles MIDI Kabel installiert (LoopBe Download Seite)
    • DMX Control ab Version 3.2.3 (vielleicht geht das auch schon bei früheren Versionen aber das weis ich nicht)

    Teil 1: Beat aus Virtual DJ 8 raussenden

    • MIDI Controller anlegen: Die Datei LoopBeController.xml im Anhang muss in das Verzeichnis VirtualDJ\Devices. Diese Datei gaukelt Virtual DJ vor es handle sich um einen DJ Controller, der am virtuellen MIDI-Kabel von LoopBe1 angeschlossen ist. Ich habe in dieser Controllerdefinition einfach nur ein paar LEDs definiert. Die Definition kann aber natürlich beliebig erweitert werden.
    • Mapping für LoopBeController anlegen: Virtual DJ starten starten, Einstellungen öffnen, im Tab Mapping folgendes tun: Der Controller "LoopBe Ctrl for Beat" sollte links oben in der Auswahlliste nun verfügbar sein. Diesen anwählen. Rechts oben ein neues Mapping anlegen. Hier heißt es "BeatToDMXC". Unter Deck "automatisch" lassen. Nun kann für die vier Beat LEDs "LED_Beat..." eine Funktion in Virtual DJ ausgewählt werden. Dazu unter Key die "LED_Beat1" auswählen. Unter Action "deck active get_beat_num 1" eintragen. Das bedeutet Virtual DJ nimmt das aktive Deck, also das was grade angewählt ist (nicht unbedingt das gleiche wie für prelisten) und wann immer der 1 Schlag des Taktes kommt "leuchtet" die LED_Beat1 auf. Dieses Vorgehen muss weitere drei mal wiederholt werden, logischerweise dann mit Beat 2, 3, 4 an den entsprechenden Stellen. Rechts oben auf Speichern und das Einstellungsfenster kann geschlossen werden.
    • Jetzt kann zum Test einfach mal ein Lied abgespielt werden und mit einer Software der Wahl die MIDI Signale überprüft werden.


    Teil 2: Beat in DMXC3 empfangen und verarbeiten

    • DMX Control 3 starten, In der Menuleiste ganz oben Einstellungen -> MIDI-Verwaltung. Es öffnet sich das Panel Midi-Verwaltung. Ggf. Geräte aktualisieren klicken und es sollte eine Liste von verfügbaren Geräten erscheinen in etwa so:


    • In diesem Beispiel das Device In/0 auswählen, weil hier das LoopBe als Eingangssignal für DMX Control genutzt werden soll. (Wollte man aus DMX Control Werte raussenden würde man entsprechend Out/1 wählen.)
    • Auf Regelsatz hinzufügen klicken und unten dran erscheint ein neuer Eintrag.


    • Diesen Regelsatz auswählen und Doppelklick darauf. Es öffnet sich das Fenster Regelsatz bearbeiten. Hier werden nun 4 Button-Regeln definiert, weil es 4 LED_Beat in der Virtual DJ Controller Definition gibt die gesendet werden. Immer wenn ein Beat kommt, soll DMXC denken es wurde ein Button gedrückt. Man kann die Regeln nun anlernen lassen aber ich fand das sehr verwirrend. Nachfolgend ein Screenshot wie die erste Regel aussehen sollte. Ich würde empfehlen einfach alle Werte so zu übernehmen. Für die Regeln Beat 2, 3, 4 müssen alle Felder Data2 entsprechend auf 2, 3, 4 gesetzt werden. Hinweis: Der Wert Value ist bei der ersten Regel auf 1 stehen geblieben, weil Virtual DJ gerade auf der Position stand. Zur Erläuterung wie das jetzt funktioniert. Jede dieser Regeln achtet darauf ob eine MIDI-Note gedrückt wird. In der Virtual DJ Definition ist festgelegt, dass die Beats 1...4 jeweils die Note 1...4 ansprechen, also in der MIDI Botschaft, das Feld Data1. Wenn der Beat kommt springt der Wert der Note auf 127, also in der MIDI-Botschaft das Feld Data2. Ganz unten in den Einstellungen ist das Feld Threshold, also der Schwellwert bei dem Button der Regel als betätigt oder nicht betätigt gilt. Hier muss etwas <127 drinstehen, z.B. 126 wie im Bild. Ich habe keine Ahnung was die Funktion Backtrack macht. Ich habe die Haken in der Liste mal rausgenommen...



    • Diese MIDI-Buttons können nun im Input Assingment genutzt werden um den Speedmaster zu steuern. Der Plan: Jeder der 4 Beats soll ein mal auf die Learn Taste des Speedmasters drücken. Man könnte auch auf den Sync gehen, aber sollte die Musik mal enden ist dann auch gar kein Beat mehr in DMXC da. Mit dem Learn läuft der Beat einfach weiter und die Geschwindigkeit bleibt konstant. Nachfolgend ein Screenshot des Input Assignments. Um dieses zu erstellen habe ich unter Fenster -> Input Assignment eine eue Bank erstellt und das folgende Schaubild implementiert. Beat 1, 2, 3, 4 sind die MIDI-Buttons die zuvor definiert wurden. Solange der erste Schlag des Taktes andauert, also 1/4 der Zeit des gesamten Taktes ist der Wert true, ansonsten false. Für den Learn Eingang des Speedmasters braucht man allerdings einen Puls. Also wird hier die mit dem ValueChanged to Bool Block die Schaltflanke erkannt. Allerdings sowohl die Flanke von false->true (diesen soll genutzt werden) als auch die von true->false (diese ist unnütz). Um die unnütze Flanke von true->false zu ignorieren wird mit dem Compare == und dem Logic AND verglichen. Am Ausgang des Logic AND kommt dann ein Puls raus, wann immer Beat 1 von false->true wechselt, also wenn der Beat kommt. Dieses Konstrukt wurde weitere drei mal für die übrigen Beat Buttons erstellt. Die vier Signale werden dann verodert und auf dern Learn-Eingang des Speedmasters gegeben.


    Das ist jetzt aus meiner Sicht eine eher weniger elegante Lösung aber sie funktioniert bei mir wenigstens zuverlässig.

    Ich hoffe das kann auch anderen Leuten helfen, bzw. ich hoffe andere Leute können mir sagen wie man das "richtig" macht ^^

  • DMX Control ab Version 3.2.3 (vielleicht geht das auch schon bei früheren Versionen aber das weis ich nicht)

    Der Vollständigkeit halber: Ja, geht auch schon früher :) Seit 3.2.0 ist Midi eingebaut, davor war es ein Plugin (sah aber genau gleich aus)


    Viele Grüße

    JP


    P.S.: DMXControl 3 schreibt man zusammen, ohne Leerzeichen dazwischen :)

  • Eventuell wäre auch die OS2L Schnittstelle von Virtual DJ eine Alternative: