DMXControl 2.x und vvvv

Aus Deutsches DMXC-Wiki
Im-aim.png DMXControl 2.x und vvvv

Einleitung

Dieser Artikel beschreibt eine weitere Möglichkeit, mittels DMXControl Video-/Grafikanwendungen zu steuern, dessen Ergebnis dann über einen Beamer projeziert werden kann. DMXControl bietet dazu ja bereits alternative Möglichkeiten wie den Softscanner oder das MadMaxOne Plugin.

Mit vvvv als Renderer, geht man dann schon eher in die Richtung eines VJ-Tools. Eine entsprechende Diskussion für den KickOff eines solchen Projektes Projekt Integration VJ-Tool wurde hier auch schon mal geführt, seinerzeit zum Gephex-Tool, welches aber keine geeignete Schnittstelle bietet. Damals fand die Diskussion wenig Resonanz.

Das Tool vvvv (http://vvvv.org) bietet als Schnittstellen u.a. ArtNet-Knoten, aber hier sind die Lizenzregeln zu beachten. Das Tool ist für die Nutzung im nicht-kommerziellen Bereich frei, aber ansonsten sind Lizenzgebühren zu entrichten. Es spricht sicherlich nichts dagegen, vvvv auf der Schuldisco oder der Geburtstagsparty zu verwenden, aber als kommerzieller Diskotheken-Betreiber sollte man sich schon die Lizenzregeln genau anschauen.

Ich selbst habe (noch) keine richtige Ahnung von vvvv, daher hat mir der user "Kalle" aus dem vvvv-Forum geholfen und die beiden hier vorgestellten vvvv-patches erstellt (so nennt man die Module bei vvvv). Hier noch einmal herzlichen Dank an ihn, da er auch die Genehmigung für die hiesige Veröffentlichung der Module gegeben hat. Ich hoffe, dass sich in der DMXControl-Community Experten oder Interessierte finden, die das Thema weiter treiben werden.

Dieses Einführungstutorial besteht aus 3 Schritten:

  • DMX-gesteuertes Rendering in vvvv
  • externe Steuerung über den DMX-Workshop (optional)
  • Steuerung von vvvv mittels DMXControl

Ich versuche, alles so zu beschreiben, dass man die Konfiguration auf dem eigenen PC nachvollziehen kann. Ich würde mich sehr darüber freuen, wenn jemand diesen Artikel seinen Erfahrungen erweitern könnte.

vvvv und DMX

vvvv unterstützt verschiedene Interfaces (siehe HowToDMX) , u.a. DMX4All und EntTec, wir nutzen aber hier ausschliesslich die ArtNet-Schnittstelle. Auf der Seite Kalles_DMX_Module hat Kalle weitere eigene DMX-Anwendungen und seine Knoten beschrieben.

Um zu starten, muss man natürlich vvvv installiert haben. Das geht sehr unproblematisch ab, für hochwertiges Rendering wird DirectX9 benötigt, aber selbst das können wir für dieses Beispiel ignorieren, da wir nur mit GDI(?) arbeiten.

Da es nicht Ziel dieses Tutorials ist, einen vvvv-patch zu schreiben, sondern ihn anzuwenden, können wir uns hier auf das Nötigste bei der Bedienung einschränken.

Ich habe vvvv 4.0 beta 16 installiert. Natürlich macht man gleich neugierig einen Doppelklick auf vvvv.exe - und ist enttäuscht. Das Tool macht erstmal einen Check, ob man auch .NET 2.0 installiert hat. Ansonsten sieht man nur ein bescheidenes Begrüßungsfenster:

Vvvv Welcome screen.JPG

Einiges erscheint erstmal ungewöhnlich: Keine feste Menü-Anordnung, man kann alles was im Fenster zu sehen ist, mit der Maus verschieben. Man kann nicht mal das Fenster schließen. Ein wenig Aufklärung gibt die berühmte F1-Hilfe-Taste:

  • Fenster Schließen: Ctrl-W
  • Fullscreen: Alt+Enter (brauchen wir später für unser Grafikfenster)
  • Wenn nichts mehr geht: Alt+F4

Natürlich hat vvvv auch Menüpunkte, nur ein wenig versteckt: Leertaste + rechter Mausklick ! Aber das brauchen wir nicht wirklich für dieses Tutorial.

Eine Anwendung, also ein patch in vvvv besteht aus diversen Knoten. Oben hat ein Knoten Input-Pins, unten Output-Pins. Leicht zu merken.

Nun kanns losgehen: Kalle hat zwei patches erstellt:

Der Sender patch wird später nicht mehr benötigt. Er dient uns in diesem ersten Teil des Tutorials als Testsender für DMX-Signale, die per ArtNet und Broadcast verteilt werden.

Ein patch kann folgendermaßen gestartet werden:

  • über den Open-Menüpunkt oder
  • per Doppelklick auf den patch oder
  • einfach per Drag&Drop in das vvvv-Root-Fenster reinziehen.


Der ArtNet Sender

Nun bitte den Sender starten:

Vvvv Sender.JPG

Der Sender ist nur dann ordnungsgemäß gestartet, wenn unten links wie im Bild der DMX-Knoten erscheint. Das könnte nicht der Fall sein, falls gerade DMXControl läuft und dort das ArtNet-Plugin aktiviert ist, weil sich dann DMXControl schon den Port "geschnappt" hat. Ebenso muß man dem Firewall erlauben, dass vvvv kommunizieren darf, da wir ja eine IP-Verbindung nutzen wollen.

Was passiert nun hier?

Der DMX-Knoten als eigentlicher Sender hat zwei Input-Pins. Wenn man mit der Maus darüber fährt, wird deren Funktion angezeigt:

  • rechter Pin: "Do Send". Dieser Pin wird aus einem anderen Knoten (IOBox) mit einer 1 versorgt. Das sieht man besser, wenn man die IOBox etwas verschiebt.
  • linker Pin: das ist das Input-Array, also die 512-Kanäle.

Um das genauer zu sehen, markieren wir den DMX-Knoten und drücken "Ctrl-I" für den Inspektor. Mit dem Hrn. Inspektor kann man Eigenschaften des Knoten sehen und verändern. So könnte man die SubNetID oder das Universe modifizieren.

Vvvv Sender Inspektor.JPG

Vvvv Sender Inspektor universe.JPG

Klickt man auf das Doppelzeichen ">>", so erkennt man, dass das patch 12 Kanäle (von 0-11 numeriert) versorgt. Die Werte werden durch den "Cons"-Knoten zusammengefasst und aus 4 weiteren Input-Knoten erzeugt. Das sind weitere IOBoxen, die die später erzeugte Figur beeinflussen:

  • translet: x/y Skalierung
  • rgb : Farbe
  • Cycles : Radius und Segment-Größe der Figur

Man kann die Werte manuell verändern, indem man den Inspektor schließt und im Hauptfenster des DMX-Senders eins der Felder anklickt und bei gedrückter rechter Maustaste die Maus nach oben oder unten zieht. Diese 12 Werte (Kanäle) müssen wir dann später auch per DMXControl versorgen. Erstmal fällt im Inspektor auf, dass alle DMX-Werte zwischen 0 und 1 normiert sind.

Der ArtNet Receiver

Nun starten wir analog zu oben den Receiver. Auch hier bitte kontrollieren, ob der DMX-Knoten oben in der Mitte ordnungsgemäß erscheint. Noch passiert kommunikationsmäßig nichts Spektakuläres, da Sender und Receiver lokal laufen und sich irgendwie über IP broadcast gefunden haben. Ob das wirklich so ist, überprüft man einfach, indem im Sender einige Werte geändert werden.

Vvvv Receiver.JPG

Ich habe, um die Bildgröße etwas zu reduzieren, bei mir den Renderer-Knoten verschoben, ansonsten müsste es wie oben aussehen. Jetzt kann man wunderbar vom Sender-patch aus über ArtNet die Farbe, Position und das Aussehen der Figur im Output-Fenster verändern. Wer zwei Bildschirme hat, kann mit Alt+Enter auf einem die Figur im Vollbild anzeigen.

Leider bin ich nicht der vvvv-Experte, um Kalles Receiver-patch im Detail zu erklären, aber Max (Maximilian) hat hier mit den folgenden Absätzen schon etwas ausgeholfen. Durch Spielen mit den Parametern kann man sich teilweise den Sinn erschliessen, z.B. hat das Ändern der Input-Parameter für den GetSpread-Node folgende Figur gezaubert, die dann auch wiederum vom Sender verschoben und gedreht werden kann.

ArtNet - DMX Knoten

Im DMX Knoten wird das ArtNet Universum und die Sub Net ID eingestellt. Über einen Knoten können 512 Kanäle Empfangen werden. Pin 1 ist der Input und Pin 2 der Output


Renderer

Vvvv Renderer.JPG

Am Pin-Layer bekommt der Renderer sein Eingangssignal von diversen Nodes, in diesem Fall vom „Segment“. Wenn man die Maus über die Pins hält werden die Funktionen angezeigt und sind eigentlich selbsterklärend. z. B. Hintergrundfarbe, Clear, Enable, Fullscreen, etc. Die Werte dieser Pins können entweder mit dem Inspektor (Optionsmenü, wird mit „Strg + I“aufgerufen) eingestellt werden oder es können DMX-Kanäle benutzt werden.

Erzeugen von DMX Kanälen

Vvvv Segment.JPG

Um ein DMX Kanal zu erzeugen sind drei Nodes notwendig.

  • 1. „GetSlice“ Er wird über den Input mit dem DMX ArtNet Knoten verbunden.
  • 2. „Map“ wandelt einen Wert in einem festgelegten Eingabebereich in einen proportionalen Wert in einem festgelegten Ausgabebereich um.
Beispiel:
Eingabebereichen von 0 bis 1
Ausgabebereich von -1 bis 1
Eingabewert: 0,5
Ausgabewert: 0
  • 3. „IOBox“ wird in dem Program als Eingabebox für sämtliche Module genutzt und kann je nach dem, wo sie angeschlossen wird auch das Aussehen ändern.

Der Output des „Map“-Nodes kann nun beliebig an Eingänge diverser Module gesetzt werden. Klickt man auf einen Pin eines Moduls, werden alle Pins, an die ein Anschluss möglich ist, größer. In dieser Art lassen sich beliebig viele DMX Kanäle einfügen, die von DMXControl angesteuert werden können.

Erzeugen von Mustern

Vvvv GetSlice.JPG

Das Segment ist wie der Name schon sagt, ein geometrisches Objekt, das an den Renderer angeschlossen wird. Mit dem „Transform“ lassen sich X/Y-Verschiebungen Drehungen etc. realisieren. Hier bietet vvvv unwahrscheinlich viele Möglichkeiten, jedes mal wenn man davor sitzt entdeckt man wieder was Neues.

Farben

Vvvv RGB.JPG

Es gibt eine ganze Reihe an Modulen, die mit Farbwerten gefüttert werden müssen. Als Basis kann man erstmal das Modul „RGB“ benutzen. Es kann entweder direkt mit Kanälen versorgt werden, oder wie hier zu sehen über das Modul „GetSpread“ mit einer Startadresse.

Vvvv neueFigur.JPG

Vielleicht kann ja hier jemand helfen und alles erklären. Sicherlich kann man diese Parameter durch leichten Umbau des patches auch über DMX steuern.


Jetzt haben wir aber schon eine Idee, was wir später per Szene oder Effekte von DMXControl in diesem patch ändern könnten. Schaut man sich mal auf den Seiten von vvvv.org um, bekommt man eine Vorahnung, welche grafischen Möglichkeiten darüber hinaus möglich sind.


Externe Steuerung über den DMX-Workshop

Dieser Teil ist optional. Er dient eher zur Kontrolle und zum Monitoring des ArtNet-Traffics, wird aber nicht zur eigentlichen DMX-Steuerung benötigt. Der Teil mit dem DMX-Workshop kann also auch weggelassen werden, wenn man dieses frei verfügbare Tool von http://artisticlicence.com nicht installiert hat.

Den download findet man hier:

download


Vvvv DMXWorkshop1.JPG

Der DMX-Workshop enthält einen Data-Monitor. Wie in der Abbildung selektiert man das vvvv-ArtNet-Universe. Ändert man dann im Sender wie oben beschrieben, irgendwelche Werte, dann wird das auch im Data-Monitor angezeigt.

Nun schliessen wir unseren vvvv-Sender (zur Erinnerung: das geht mit Ctrl-W). Dafür öffnen wir das Dynamic-Tool vom DMX-Workshop, und wählen dort "ArtNet" als Ausgang aus. Wie in der folgenden Abbildung wird noch der Radiobutton "Group Dynamic" ausgewählt. Für unseren patch können wir den End-Kanal auf 12 einschränken.

Vvvv DMXWorkshop DynamicTransmit.JPG

Nun werden vom DMX-Workshop willkürlich DMX-Signale für diese Kanäle gesendet, wie man natürlich auch im Data Monitor verfolgen kann. Wenn sich die Figur in unserem vvvv-Receiver nun verändert, ist sichergestellt, dass dieser auch auf DMX-Werte "von außen" reagiert. Bei mir fliegt die Figur von links unten nach rechts oben und ändert dabei ihre Form. Also sollte es doch mit DMXControl auch klappen!


Steuerung von vvvv mittels DMXControl

Jetzt starten wir DMXControl und erleben die erste kleine Überraschung: Es kommt eine Warnung "Port 0x1936 bereits in Verwendung". Diese können wir getrost wegklicken, aber wir merken schon mal, dass irgendwas mit ArtNet funktioniert. Zumindest, nachdem man bei der ArtNet-Plugin-Konfiguration das richtige Universum eingestellt hat.

Da ich keine Lust hatte, mir für diesen Test ein DDF zu erstellen, hab ich einfach 12 Generische Dimmer in der Bühnenansicht erzeugt und diese auf eine Submasterbank gepatcht. Nun kann man bequem mit Fadern spielen und erkennt schnell die Reihenfolge und Bedeutung der Kanäle, die ich entsprechend benannt habe:

  • 1: Pan
  • 2: Tilt
  • 3: y-Drehung/Größe
  • 4: x-Drehung/Größe
  • 5: Cyan
  • 6: Magnenta
  • 7: Yellow
  • 8: unbenutzt
  • 9: Segmentgröße
  • 10: Ringstärke
  • 11: unbenutzt
  • 12: unbenutzt

Danach ist es einfach, ein paar Szenen einzuspielen und über das Szenenlistentool ablaufen zu lassen. Der Renderer wird einfach wie ein virtuelles DMX-Gerät betrachtet. Beim Ablauf der Szenenliste entsteht eine kleine Video-Abfolge, die ich abgefilmt habe.

DMXControl steuert vvvv.JPG

Das Beispielprojekt kann hier heruntergeladen werden ((download-Projekt).

Wer nicht gleich das Projekt ausprobieren möchte, kann sich hier das Video anschauen (Video(1MB) ), um einen Eindruck zu bekommen.

Ich habe das ganze auch in einer verteilten Konfiguration getestet, wo vvvv und DMXControl auf verschiedenen (virtuellen) Rechnern liefen.

Wie weiter?

Eine der nächsten Aufgaben ist es sicherlich, die unerschöpflichen Möglichkeiten von vvvv zu ergründen. Dann kann man sicherlich Kalle's patch erweitern, spezielle DDFs erstellen und ggfs. über spezielle DMXControl-Anpassungen nachdenken. Es wäre super, wenn sich einige Leute finden würden, die im Rahmen des DMXControl-Projektes an diesem Thema weiter brüten.


Weitere Artikel zu vvvv