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
- 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>
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.
verschiedene VDJ Funktionen abfragen
Wenn man in der Device Datei noch eine LED hinzufügt und ihr im Mapper die Funktion
deck active sync
zuweißt, gibt diese bei jedem Bassschlag ein MIDI-Signal aus. Das könnte für leichte Blinder Effekte (z.B. 2 schwache LED-PARs) ganz interessant sein.
schwerere Lösung
via MidiClock, funktioniert nicht unbedingt immer.
von LJ Jojo
Ich verwende diese Lösung nicht mehr!
benötigte Software
- VirtualDJ 7 Pro
- Das DMXC Tool MIDIClock2Note: MIDIClock2Note Plugin DMXC2
- MidiJoke und MidiOx: http://www.midiox.com
- und natürlich DMXControl
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!)
- Öffne das Ausführen-Fenster (bei Win7+8 nicht nötig)
- dort gibt man nun regedit ein (bei Win7+8 direkt ins Startmenü-Suchfeld) und öffnet die regedit.exe
- Links in dem Explorer geht ihr in folgendes Verzeichnis: HKEY_CURRENT_USER/Software/Virtual DJ
- Nun sucht ihr den Punkt "SendMidiClockTo"
- dort mit Rechtsklick den "Ändern-Dialog" öffnen und in das in das Feld "Wert" "all" eintragen (ohne Anführungszeichen)
- Nun OK klicken und regedit schließen.
Programme starten
Nun startet ihr die Programme, die Reihenfolge ist glaub ich egal, bei mir war sie:
- VirtualDJ
- MIDIClock2Note
- MidiOx
- 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.
- MidiIn: MidiYoke2 ein
- MidiOut: MidiYoke2 ein
- 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.
- Options - Midi Devices
- als MidiIn: MidiYoke1
- 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
- VirtualDJ7 Pro
- LoopBe (http://www.nerds.de)
- DMXControl
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
- VirtualDJ7 Pro
- LoopBe (http://www.nerds.de)
- DMXControl
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:
- "get vu_meter_left" für das Linke Deck.
- "get vu_meter_right" für das Rechte Deck.
Download
folgt...
DMXC-Konfiguration
folgt...
Blinder Taste für DJ
folgt...
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
Hier gibts bald die Dateien, in denen alle Funktionen integriert sind.