VirtualDJ7 Pro und DMXControl 2

Aus Deutsches DMXC-Wiki
Version vom 11. Mai 2013, 17:27 Uhr von Jkuehn (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Einleitung

Ich hab lange drüber nachgedacht, wie ich aus VirtualDJ den exakten Beat rauskriegen kann. Im Forum steht ganz oft, dass es nichtmehr geht ab Version 7. Aber ich dachte, dass es doch irgendwie gehen muss. Dann ist mir eingefallen, dass unser Midi-Controller (Numark Mixtrack Pro) auch die LEDs der SYNC-Tasten im Beat blinken lässt und da es ja nur ein Midi-Controller ist, muss das auch mit DMXControl gehen. Da die Midi-Funktion bei der Home- bzw. Free-Version deaktiviert/auf 10min begrenzt ist, funktioniert das folgende Tutorial nur mit der Pro Version von VirtualDJ. Es kann durchaus sein, dass es auch mit mitgelieferten LE Versionen von Controllern funktioniert, das hab ich nicht getestet.
Letztendlich gab es dann 2 Möglichkeiten, zuerst eine von mir (etwas komplizierter) und dann eine von mirka21.
Nachdem der Beat draußen war und ich verstanden hatte wie man Signale aus VDJ rauskriegt war es nicht schwer noch ein paar mehr Extras einzubauen.

Beat

leichte Lösung

via MidiMapper, würde ich jedem empfehlen.
von mirka21

benötigte Software

Die Programme müssen alle installiert sein, die Reihenfolge ist egal.

  • VirtualDJ 7 Pro* (Funktioniert auch mit 7.4 Pro - getestet) ein virtuelles MIDI-Kabel (nicht MidiYoke), hierfür eignet sich LoopBe
  • und natürlich DMXControl

Device

Das VirtualDJ überhaupt irgendwas über MIDI ausgeben kann muss man ein Device erstellen und unter \user\%name%\documents\virtualdj\devices\ abspeichern. Diese Device-Datei erstellt man für LoopBe, dann erkennt VDJ LoopBe als Controller. In die Datei muss folgendes:

<?xml version="1.0" encoding="UTF-8"?>
<device author="CHACKL" decks="1" drivernameout="LoopBe Internal MIDI" name="MIDIO" type="MIDI" >
  <led channel="0" name="LED_Beat1" note="0" />
  <led channel="1" name="LED_Beat2" note="1" />
  <led channel="2" name="LED_Beat3" note="2" />
  <led channel="3" name="LED_Beat4" note="3" />
</device>

Über <led [...] /> wird VDJ vorgemacht, dass es sich um LEDs handelt, weil man LEDs aus VDJ heraus steuern kann.

Download

Die Datei gibts fertig hier[1] zum download.

Mapper

Jetzt muss man VirtualDJ noch beibringen, was es auf den LEDs anzeigen soll. Hier nimmt die original Datei von mirka21 immer den Player, der gerade über PFL ausgewählt ist. Das ist nicht ideal, wenn man ein neues Lied lädt und vorhört blinkt das Licht falsch bzw. garnicht. Den Mapper hab ich etwas abgeändert, deswegen sieht er jetzt so aus:

<?xml version="1.0" encoding="UTF-8"?>
<mapper device="MIDIO" author="Atomix Productions" description="MIDI Out Beispiel" version="704" date="07/12/2012">
  <map value="LED_Beat1" action="deck active get beat_num 1" />
  <map value="LED_Beat2" action="deck active get beat_num 2" />
  <map value="LED_Beat3" action="deck active get beat_num 3" />
  <map value="LED_Beat4" action="deck active get beat_num 4" />
</mapper>

Die Datei kommt in \user\%name%\documents\virtualdj\mappers\.

Immer beim entsprechenden Beat-Schlag sendet VDJ jetzt auf dem ausgewählten MIDI-Kanal einen Wert. Insgesamt sendet VDJ 4 verschiedene Werte immer für den 1. 2. 3. und 4. Schlag eines Taktes.

Download

Auch die Datei gibts schon fertig zum runterladen hier[2].

DMXC-Konfiguration

Jetzt muss man DMXC öffnen und warten bis die 4 Midi-Signale angekommen sind. Wenn DMXC jedes mal das selbe tun soll, muss man 4mal die selbe Aktion zuweisen.

TAP

Da DMXC beim TAP-Button immer einen Mittelwert nimmt, wird das Licht trotz der sehr exakten übertragung nicht direkt im Beat blinken. Dafür laufen Effekte aber weiter, wenn die Musik stoppt.

SYNC

Die SYNC Funktion hat sich als sehr gut erwießen. Immer wenn der Sync-Button im Beattool gedrückt wird bedeutet das für DMXC einen Beat, es rechnet keinen Mittelwert aus oder so. Deshalb bietet sich dieses SYNC-Button hierfür seht gut an. Immer wenn der Track über einen Beat-Strich in VDJ kommt schaltet DMXC einen Beat, d.h. wenn der DJ über so einen Beatstrich scratcht blitzen die Scheinwerfer entsprechend schneller. Daraus lässt sich aber auch schließen, dass in dem Moment wo der Track gestoppt wird DMXC nicht mehr weiterschaltet.
Bevor man dieses Sync-Button allerdings einsetzt sollte man kurz einmal am Anfang den Reset Button vom Beattool drücken, sonst blinkt es nur wild rum, da die Scheinwerfer einmal beim Beat vom Beattool (also den, der über die TAP-Taste eingestellt worden ist) und immer dann wenn die SYNC-Taste gedrückt wird reagiert.

Sonstiges

Hier sind noch ein paar weitere Sachen, die für diesen Teil wichtig sein könnten.

weitere Controller

VirtualDJ unterstütz nach meinem jetzigen Wissensstand mehrere Midi-Controller gleichzeitig (zur Not einmal neustarten).

mehr DMXC steuern

mirka21 hat am Ende von seinem Post noch etwas ganz interessantes erwähnt:
Man kann über diesen Virtuellen LED-Controller alle über MIDI ansteuerbaren Teile von DMXControl steuern, indem man den LEDs den Befehl "var 'value000' ? on : off" gibt. Dabei ist value000 eine Variable. (000 muss durch andere Zahlen ersetzt werden.) Im Keyboard-Mapper von VirtualDJ kann man nun einer Taste den Befehl "toggle 'value000' while_pressed" zuordnen und somit DMXC über die Tastatur steuern.
Natürlich muss das nicht unbedingt der Keyboard-Mapper sein. Wenn man einen externen Midi-Controller für VDJ verwendet kann man dieses genauso einsetzen, wenn man dort Tasten entbehren kann.

schwerere Lösung

via MidiClock, funktioniert nicht unbedingt immer.
von LJ Jojo
Ich verwende diese Lösung nicht mehr!

benötigte Software

Das installiert/entpackt ihr nun alles.

Einstellungen für VDJ

(Hier nur das einstellen, was hier steht, sonst könnt ihr euer gesamtes Windows sofort zerstören!)

  1. Öffne das Ausführen-Fenster (bei Win7+8 nicht nötig)
  2. dort gibt man nun regedit ein (bei Win7+8 direkt ins Startmenü-Suchfeld) und öffnet die regedit.exe
  3. Links in dem Explorer geht ihr in folgendes Verzeichnis: HKEY_CURRENT_USER/Software/Virtual DJ
  4. Nun sucht ihr den Punkt "SendMidiClockTo"
  5. dort mit Rechtsklick den "Ändern-Dialog" öffnen und in das in das Feld "Wert" "all" eintragen (ohne Anführungszeichen)
  6. Nun OK klicken und regedit schließen.

Programme starten

Nun startet ihr die Programme, die Reihenfolge ist glaub ich egal, bei mir war sie:

  1. VirtualDJ
  2. MIDIClock2Note
  3. MidiOx
  4. DMXC

Programminterne Einstellungen

VirtualDJ

Hier müsst ihr nichts einstellen. Nur ein Lied zum abspielen in den Player ziehen.

MIDI Clock2Note

MIDI Ein- und Ausgang einstellen.

  1. MidiIn: MidiYoke2 ein
  2. MidiOut: MidiYoke2 ein
  3. Den Rest so lassen, wie er war.

Das Tool zeigt den ausgewählten Ein- bzw. Ausgang nicht an.

MidiOX

MidiOX mappt die MIDI-Daten auf ein anderes Virtuelles Midi Kabel.

  1. Options - Midi Devices
  2. als MidiIn: MidiYoke1
  3. als MidiOut MidiYoke2 ein.

(falls ihr mehr MidiController habt, die ihr mit DMXC verbinden wollt, müsst ihr diese bei MidiIn auch auswählen.)

DMXControl
  • Bei der Midi-Fernbedinung muss man nun noch MidiYoke2 einstellen.
  • (falls euer weiteres angeschlossenes Gerät MidiOut unterstützt, könnt ihr das hier direkt auswählen.)
  • Nun drückt ihr auf Midi-Lern, es sollten mindestens 2 Kanäle mit folgenden Werten erscheinen:
Midi-Status   	MIDI-Kanal	Adresse	Min.Wert   Max.Wert   Flags
Note On/Off     1                64     0          127        E,Ü,-
Note On/Off     1                65     0          127        E,Ü,-
  • Die beiden Noten kann man unter Steuerelement in Beat1 und Beat2 umbenennen. Dann ist es später übersichtlicher.
  • Nun erstellt ihr eine neue Bank.
  • Ihr wählt Beat1 (oder 2) aus und stellt als Modul: BeatTool, als Funktion: Tap-Button, als Kanal: Auswählen und als Flags, bzw. Wert - ein.
  • Nun drückt ihr OK und öffnet unter Fenster die Midi-Fernsteuerung, dort wählt ihr die richtige Bank und setzt den Haken bei aktiv.

Fertig

Jetzt erstellt ihr noch einen Musikgesteuerten Effekt und startet in VDJ das Lied, der grüne Punkt von MIDIClock2Note sollte deutlich blinken. Und in MidiOx sollten in dem Fenster Werte angezeigt werden, in DMXC sollte das Beattool anfangen zu blinken.

Tipp

Schalte im WindowsMixer das MidiClock2Note Stumm, da es bei jedem Beatsignal einen Ton von sich gibt.

Quelle

Auf diese Lösung bin ich hier http://www.freestylers.tv/forum/viewtopic.php?f=31&t=445 gestoßen. Ich hab sie aber auf DMXC angepasst.

Bassschläge

Falls du einen MIDI-DJ-Controller hast ist die vielleicht aufgefallen, dass bei den meisten die Sync-Tasten-LED nicht im Beat blinkt sondern nur bei Bassschlägen. Genau dieses Signal kann man auch an DMXControl senden, was für leichte Blinder-Effekte gut zu gebrauchen ist.

benötigte Software

Device

Das Devicefile braucht einfach nur eine LED. Diese kann man zu dem von oben hinzufügen oder ein neues erstellen. Das sieht dann so aus:

<?xml version="1.0" encoding="UTF-8"?>
<device author="LJJojo" decks="1" drivernameout="LoopBe Internal MIDI" name="MIDIO" type="MIDI" >
	<led channel="4" name="Sync" note="4" />
</device>

Download

folgt...

Mapper

Jetzt noch der Befehl, der VDJ sagt, dass es bei jedem Bassschlag eine MIDI-Note senden soll:

<?xml version="1.0" encoding="UTF-8"?>
<mapper device="MIDIO" author="Atomix Productions" description="MIDI Out Beispiel" version="704" date="30/12/2012"> 
	<map value="Sync" action="deck active sync" />
</mapper>

Download

folgt...

DMXC-Konfiguration

Sobald das Signal in DMXC angekommen ist, kann man damit machen, was man will.

Tipp

Ich bevorzuge es durch das Signal einen Effekt zu starten, der aus einem Schritt besteht in dem z.B. zwei schwache LED-PARs weiß blinden, das heißt:

Einblendezeit: 0,1s
Haltezeit:     0,1s

Und ganz wichtig! Den Effekt nicht wiederholen lassen! Sonst wird er einmal bei einem Bassschlag gestartet und danach leuchten sie immer weiß oder faden immer wieder auf weiß, was flackert.

Kombination

Gut lässt sich der Effekt z.B. mit einem fade-Effekt kombinieren. Die LED-PARs faden dann die ganze Zeit durch und bei jedem Bass-Schlag werden sie kurz weiß.

VU-Meter (Level-Meter)

Ein VU-Meter ist eine coole Sache, wenn es z.B. auf 5 LED-PARs oder auf LED-BARs angezeigt wird. Das ganze ging bis jetzt nur über Winamp. Aber wer legt schon mit Winamp auf? Deshalb hab ich lange rumprobiert und gegooglet bist ich endlich eine Lösung hatte ein beliebiges Level-Meter aus VDJ in DMXC zu importieren.

benötigte Software

Device

Da die meisten Einstellungen hier in DMXControl vorgenommen werden ist das Devicefile ziemlich klein. Es sind nur andere Befehle wie bei den anderen Funktionen. Hier ist es:

<?xml version="1.0" encoding="UTF-8"?>
<device author="CHACKL" decks="1" drivernameout="LoopBe Internal MIDI" name="MIDIO" type="MIDI" >
	<bar channel="15" cc="0x24"  name="VU_METER" />
</device>

cc steht für ControlChange, deshalb wird das alles auf einer Note ausgegeben die "gedimmt" wird.

Download

folgt...

Mapper

Der Mapper ist auch ganz einfach:

<?xml version="1.0" encoding="UTF-8"?>
<mapper device="MIDIO" author="Atomix Productions" description="MIDI Out Beispiel" version="704" date="30/12/2012"> 
	<map value="VU_METER" action="get vu_meter" />
</mapper>

Durch "get vu_meter" wird das Level des Master-Ausgangs abgefragt. Man kann auch durch andere Befehle andere Level abfragen, z.B. das Vorhör-Level oder nur links/rechts.

Download

folgt...

DMXC-Konfiguration

Die Konfiguration von DMXC ist etwas aufwendig. Ich steuere Submaster, auf die ich dann die zu dimmenden Geräte lege. Da es hier von Vorteil ist Geräte mit Dimmer zu verwenden hier ein Link zu einer Anleitung für Virtuelle Dimmer. Hier im Beispiel steuert das VU-Meter drei Segmente ener LED-BAR. Da MIDI 127 verschiedene Werte für die CC-Nachricht senden kann, teilen wir 127 durch 3:

127/3=42,33

Steuerelemente

Jetzt drücken wir zuerst einmal den Midi-Learn Button und empfangen mit etwas Glück eine Midi-CC-Nachricht:

Steuerelement MIDI-Status MIDI-Kanal Adresse Min. Wert Max. Wert Flags
Neues Steuerelement Controller 16 36 0 127 E,Ü

So, jetzt beginnt die Arbeit.
Wir müssen das jetzt so aufbereiten, dass wir es auf mehrere Submaster legen können. Dafür werden wir am Ende 9 Steuerelemente haben, für jeden Submaster 3.
Das erste Steuerelement beginnt bei min.Wert 0 und endet bei max.Wert 0.
Das zweite beginnt dann bei 0 und endet bei 42, da 42 die nächste ganze Zahl zu 42,33 ist.
Das dritte beginnt dann bei 42 und endet bei 127.
Wir brauchen also immer ein Steuerlement von 0 bis zu dem Wertebereich, den der Submaster steuern soll. Dann eins für den Wertebereich, der gesteuert werden soll. Und zum Schluss noch eins von dem Wertebereich bis 127. Wieso erklär ich später.
Bei mir sieht das dann so aus:
DMXControl-MidiFernbedienung-VU Meter.png

Befehlszuordnung

So, kommen wir nun zur Befehlszuordnung.
Also alle 9 unserer Steuerelemente brauchen als Modul "Submaster", da sie ja Submaster ansteuern sollen. Als Funktion nehmen wir "Wert setzen", sie sollen ihn schließlich einstellen. Bei Kanal kommt dann immer 3 mal der selbe, hier würde ich direkt den Kanal einer bestimmten Bank auswählen und nicht wie im Beispiel unten nur "Kanal 1/2/3". Flags müssen wir bei den Steuerelementen setzen, die von 0 bis zum Wertebereich und vom Wertebereich bis 127 gehen. Und zwar immer -,0,-,- , also den angegebenen Wert verwenden. Bei 0 bis zum Wertebereich müssen wir dann als Wert 0 angeben, dass der Submaster dann auch aus ist und beim Wertebereich bis 127 geben wir 100 an, weil dann das Level über dem angegebenen Wertebereich ist und somit auf 100% sein sollte.
Hier noch ein Bild, da ich denke, dass es das besser zeigt, was ich meine:
DMXControl-MidiFernbedienung-VU Meter Befehle.png

Blinder Taste für DJ

Da der DJ der ist, der die Wave-Form vom Lied sieht und der seine Lieder auch kennen sollte, hab ich mir gedacht, dass es vielleicht bei dem ein oder anderen sinnvoll ist, wenn man dem DJ eine Blinder-Taste auf die Tastatur oder auf seinen Controller packt. Das ganze geht recht leicht über die Funktion von mirka21. Das hier ist also quasi nur ein Beispiel.

Device

folgt...

Download

folgt...

Mapper

folgt...

Download

folgt...

DMXC-Konfiguration

Hier kann man einfach einen Blinder Effekt wie den unter Bassschläge programmieren, nur dass man hier mehr (oder alle) Geräte mit einbeziehen kann.
Hier wäre mir noch wichtig zu sagen, dass man als LJ den selben Blinder Effekt abrufen sollte, denn wenn man den selben Gedanken hat und 2 verschiedene Blinder-Effekte gleichzeitig "losschießen" sieht bestimmt nicht so toll aus.

Sonstiges

Thread

Den Thread im Forum zu diesem Artikel gibts hier. Dort kommen bitte auch weitere Fragen rein.

mehrere Controller

Falls man mit DMXControl mehrere MIDI-Controller gleichzeitig verwenden will, empfiehlt es sich dafür MidiOX zu verwenden.
MidiOX kann beliebig viele MIDI-Geräte mergen und dann auf einem virtuellen Midi-Kabel (z.B. Midi Yoke oder LoopBe) wieder ausgeben. Außerdem ist MidiOX gut dazu geeignet um festzustellen, ob überhaupt ein Signal kommt, da man sich die gesendeten und empfangenen Werte anzeigen lassen kann.
folgt...

Download

In dem Archiv sind alle Dateien zum verbinden von DMXC und VDJ.
Als .zip herunterladen
ACHTUNG: In der DMXControl_Device.xml sind die MIDI-Kanäle alle 15 (bzw. in DMXControl als 16 angezeigt). Sie stimmen also nicht immer mit denen hier im Artikel überein.

Anleitungen für VDJ

Irgendwo hab auch ich mein Wissen her. Deshalb sind hier zwei Anleitungen bei denen das mit dem Device und Mapper nochmal alles (und noch mehr) erklärt ist.