Ein etablierter Player für Video-Mappings, interaktive Installationen und komplexe Videowiedergaben: Millumin wurde nah an den Anforderungen von Theatern entwickelt, das Ergebnis meistert zahlreiche Anforderungen.
Erst kommt der Bedarf, dann kommt das Produkt. Je nachdem, in welcher Welt sich Entwickler wiederfinden und welche Shows zu realisieren sind, kristallisieren sich jeweils andere Bedürfnisse heraus.
Millumin ist 2010 aus einer Livetheater- und Kunstumgebung heraus geboren worden – der Name ist eine Wortschöpfung aus den beiden Bestandteilen „myself“ und „illuminate“. Die Millumin-Entwickler aus dem Hause Anomes SARL haben Erfahrung in der Kreativarbeit an Theatern und stellten sich den modernen Herausforderungen mit einem eigenen Projekt. Die Anforderungen in diesem Bereich sind höher als man vielleicht im ersten Moment vermuten möchte. Die Intention zum Einsatz von Licht und Video wird von Kreativität inspiriert und weniger von Pragmatismus. Projektionen werden zu lebendiger Dekoration und Licht erzählt Geschichten. Änderungen in der Programmierung solcher Shows müssen rasant möglich sein und Performances nehmen nicht selten auch direkten Einfluss auf die technische Darstellung. So braucht es neben einer performanten Medienwiedergabe auch Schnittstellen für Interaktivität, Licht, Software und andere Geräte. Millumin kann durch diesen Ursprung mehr als nur eine Abspielsoftware für Videos und Grafiken sein – nämlich die Schaltstelle einer ganzen Show werden. Dennoch fokussieren wir uns hier auf die Features zur Videowiedergabe, Showprogrammierung und Warping.
Trotz der Fülle an Funktionen ist die Bedienoberfläche von Millumin überschaubar und klar strukturiert. Oben links in der Library finden sich die Quellen. Das können die eigenen Medien sein, animierte Shader, diverse Inputs wie NDI-Quellen, der Textgenerator oder auch eigens erstellte Timelines. Die Library erlaubt eine eigene Ordnerstruktur zum Verwalten der Quellen.
Im unteren Teil der Bedienoberfläche befindet sich das Dashboard. Hier werden die Quellen in Layern organisiert, mit Effekten und Blenden versehen und in „abfeuerbaren“ Columns zusammengeführt. Das Dashboard wird in zwei Modi betrieben: dem Show-Modus, bei dem ein Klick auf einen Clip oder eine Column eine sofortige Wiedergabe bedeutet, und dem „edit board“-Modus, welcher Zugriff auf bestimmte Funktionen und Eigenschaften der Clips, Columns und Layer erlaubt. Rechts neben dem Dashboard bekommt man einen Überblick über gerade aktive Layer und die Zeiten der Clips – laufende Clips lassen sich hier gleichzeitig pausieren und wieder starten. Zusätzlich lassen sich von dort Kontextmenüs zum Monitoring und eigener Cue-Programmierung aufrufen.
Anwender-Tipp
Mit dem „Auto Go“ Programm, welches in der Library zu finden ist, lassen sich automatische Sprünge von Column zu Column realisieren. So kann man einem Standbild eine Anzeigedauer vergeben, ohne daraus eine Timeline machen zu müssen, oder auch durch ein Set aus Columns loopen.
Der Bereich des Dashboards teilt sich den Platz mit der Timeline-Programmierung. Der Button für die Erstellung einer Timeline öffnet ein neues Tab neben dem Dashboard Tab. Timelines werden nach der Erstellung zu Quellen in der Library und lassen sich auch wieder als Clip im Dashboard einbinden oder in einer weiteren Timeline verschachteln. Es kann aber auch auf die Verwendung von Cues und Columns verzichtet werden und komplett in einer Timeline gearbeitet werden.
Im Fenster oben rechts erhält man Zugriff auf die Eigenschaften von Clips und auf verschiedene Optionen, je nachdem welchen Part im Dashboard man markiert hat und editieren möchte. Bestimmte Funktionen stehen nur im „edit board“-Modus zur Verfügung.
Mittig in der Oberfläche sind die Canvases dargestellt. Hier sieht man nicht nur den Content der jeweiligen Screens und das Verhalten von DMX Fixtures, sondern hier bearbeitet man auch verschiedene Funktionen Millumins. Möglichkeiten zur Skalierung, Layer-Positionierung und Warping werden beispielsweise von hier aufgerufen und bearbeitet.
Über den Menüpunkt „Outputs“ über dem Canvas erreicht man die Einstellungen zum Zuweisen der Outputs und die damit verbunden Optionen wie Testbildausgabe, Softedge-Einstellungen, Surface-Erstellung und Arrangement der Outputs.
Ein letzter auffälliger Menüpunkt ist der „Optimize“-Button. Dieser bietet Funktionen zum Verbessern der Show. Dabei wird beispielsweise angeboten, ungenutzten Content zu entfernen, Dateien automatisch in ProRes zu wandeln oder große Bilder klein zu rechnen. Diese Selbstverbesserung hilft, die Shows schlank und die Performance hoch zu halten.
Die Zweigleisigkeit aus cue- und timelinebasierter Programmierung ist ein willkommener Aspekt. Abläufe, die mit einer rein cuebasierten Programmierung sperrig und kompliziert werden, können durch Timelines ersetzt werden. Diese lassen sich wiederum direkt im Dashboard integrieren und Sätze wie „da kann ich jetzt nicht sauber hinspringen“ können vielleicht gänzlich aus dem Vokabular des Operators gestrichen werden.
Doch auch das Dashboard allein bietet gute Möglichkeiten zum Programmieren, vielerorts reichen diese Funktionen bereits aus. Inhalte lassen sich im „edit board“-Modus über mehrere Columns hinausziehen, diese Clips laufen beim nächsten Column-Trigger einfach weiter. Ein Layer könnte also den Mottoloop der Session tragen und ungeachtet anderer Wiedergaben dauerhaft bleiben, ohne im eigenen Loop zu springen. Eigenschaften des Clips an sich lassen sich ebenfalls im „edit board“-Modus bearbeiten. So kann man den Wiedergabemodus ändern oder auch den Clip einkürzen. Eine Indikation auf dem Thumbnail des Clips zum Anzeigen des Wiedergabemodus wäre hier ein gern gesehenes Gimmick. Diesen Zustand sieht man den Clips leider nicht auf einem Blick im Dashboard an.
Den Layern lassen sich ebenfalls verschiedene Funktionen und Effekte zuweisen. Jene Punkte, die sich bearbeiten lassen, können über ein kleines „+“-Zeichen neben dem Layernamen zur Animation im Dashboard und der Timeline freigegeben werden. Man sieht also nur, was man auch wirklich braucht und animieren möchte.
Millumin lässt sich nicht nur mit einer Vielzahl von Schnittstellen ansprechen, es kann auch ebenso viele Steuersignale senden und andere Geräte ansteuern. Doch beginnen wir bei den Möglichkeiten zur Steuerung unserer Show: Mit der Option „Interactions“ kann ein Programm-Mapping aufgerufen und aus einer Myriade möglicher Steuerquellen gewählt werden. Hier eine Auswahl möglicher Signalgeber: Timecode, DMX, Artnet, OSC, MIDI, Kinect, Gamepad, Scheduler und Leap Motion.
Wenn die Quelle festgelegt ist, lässt sich ein Befehl definieren – z.B. ein Tastendruck oder ein Offset für den Timecode. Dieser Befehl kann allen grün hinterlegten Parametern auf der Nutzeroberfläche zugewiesen werden. Somit lassen sich nicht nur Clips starten, sondern auch Effekte manipulieren. Layer können live bewegt und bearbeitet werden. Hier werden also sowohl die konservativen Wünsche nach Systemintegration als auch die kreativen Köpfe und Bastler erhört.
Ein weiterer Bereich, der große Auswahl bietet, offenbart sich in den möglichen Inputs. Unterstützt werden Capture-Geräte für Kameras, integrierte Kameras, NDI, Syphon, Screen Capture des eigenen Desktops und von Programmfenstern, Text, eigene Shader z. B. für Hintergrundanimationen und ein Slideshowtool ist auch dabei. Text kann auch adaptiv über automatische Dateiaktualisierung dargestellt werden. Das könnte für Scoreboards oder Abstimmergebnisse dienlich sein. Zusätzlich bietet Millumin Plugins zur Integration von After Effects, Photoshop, Cinema 4D oder auch Unity. Damit lässt sich die Contentproduktion direkt am Objekt realisieren. Firmen, die eng mit Contentproduzenten zusammenarbeiten oder dies „in house“ lösen, können an dieser Stelle die Arbeitsprozesse optimieren, Missverständnisse aus dem Weg räumen und die Arbeit an 3D-Modellen vereinfachen.
» Die Vielzahl an Schnittstellen gepaart mit der tadellosen Medienwiedergabe machen Millumin flexibel wie kaum ein zweites Programm in dieser Preisklasse. «
Alexander Heber
Bleiben noch die Schnittstellen aus Millumin heraus in andere Geräte: Selbstverständlich ist das Senden von DMX- und ArtNet-Signalen eine Möglichkeit. Es lassen sich Lampen auf Videocontent mappen und ganze Lichtsetups virtuell designen und dann in die Realität übersetzen. Hierzu lassen sich DMX-Layer im Dashboard hinzufügen. Diese dienen der Interpretation und Übersetzung von Video in unterschiedlichste RGB(W)-Modi. Hinzu kommen die Lights, welche reale Lampen repräsentieren. Millumin bietet bereits eine umfangreiche Bibliothek mit gängigen Fixtures namhafter Hersteller zum Download an. Wer nicht fündig wird, kann online ein eigenes Fixture erstellen. Millumin verlinkt entsprechend über die GUI.
Bedient und programmiert werden diese Lampen dann auch über „Interactions“ oder per Keyframe-Animation der entsprechenden Parameter. Sinnvoller ist es, vielleicht trotzdem mit einem richtigen Pult zu programmieren und diesem dann die Presets und Cues per Millumin zu entlocken. Trotzdem: es ist möglich direkt aus Millumin heraus mit Licht zu arbeiten. Ein Ambilight für eine Projektion oder LED-Wand ist hier keine große Herausforderung. Was nicht ins Gewerk Licht gehört oder nicht per Drag and Drop ins Dashboard fällt, kann vielleicht trotzdem von dort bedient werden.
Die Data Tracks ermöglichen das Senden von Daten an andere Programme und Geräte. Zur Auswahl stehen MIDI, OSC, String (UDP und TCP), Electronic (z. B. ein Arduino), PJLink und Application (für den Start von Programmen und Dateien auf dem Millumin-Mac). Diese Funktionen lassen sich erneut per Interactions oder Keyframe in die Show einbinden.
Millumin kommt regelmäßig bei Gebäudemappings zum Einsatz. Nachdem man unter Zuhilfenahme von Cinema 4D, After Effects und Photoshop-Schnittstellen den Content produziert hat, gilt es nun, die Inhalte an die Realität anzupassen. Dazu gibt es verschiedene Werkzeuge und Herangehensweisen: Eine Möglichkeit ist das Arbeiten mit Surfaces. Gedanke dahinter ist es, das reale Setup in einzelne Felder zu unterteilen und den Content für diese einzelnen Felder aufzubereiten und zu bearbeiten. Eine sinnvolle Vorrausetzung dafür ist es, den Content explizit für diese einzelnen Felder zu erzeugen – und zwar alles in der gleichen Auflösung und dem gleichen Layout. Die Layer tragen die Inhalte für die entsprechenden Surfaces, man weist diese dann dem Layer zu. In unserem Bespiel wäre das ein Gebäudemapping auf eine fiktive Schule, welche in sieben Flächen unterteilt wurde. Wenn nun die Inhalte dafür separat exportiert werden, erhält man Layer, die optimal an die einzelnen Elemente anpassbar sind. Zugegeben, in unserem Beispiel würde eine einzelne Fläche zum Mappen ausreichen. Das Verwenden von Surfaces hat beispielsweise mehr Sinn bei dem Mapping geometrischer Figuren und Formen, wie dem klassischen Würfel.
Bild: Alexander Heber
Surface: Ein Layer lässt sich einem vorher erstellten Surface zuweisen.Damit routet man den Content direkt auf diese Fläche und kann ab diesem Punkt mit dem Finetuning beginnen
Bild: Alexander Heber
Surface: Ein Layer lässt sich einem vorher erstellten Surface zuweisen.Damit routet man den Content direkt auf diese Fläche und kann ab diesem Punkt mit dem Finetuning beginnen
Ein weiteres Mapping-Tool versteckt sich im Slice-Editor. Warping-Funktionen sind in den meisten Programmen ähnlich gestaltet. Man legt eine Anzahl von Punkten auf einem Grid fest und kann diese Punkte verschieben und die Inhalte mit der gewünschten Perspektivverzerrung auf die zu mappende Fläche bringen. Häufig jedoch sind die Punkte auf einem generischen Grid nicht dort wo man sie eigentlich braucht. Vielleicht interessieren uns besonders der kleine Glockenturm und die Fenster, die großen Wandflächen sind aber eher nebensächlich. Jetzt stehen wir vor der Aufgabe, einen kleinen Bereich sehr genau und einen großen Bereich eher salopp mappen zu wollen. Normalerweise bedeutet dies mit einem großen Grid anzufangen und die grobe Form zu erfassen. Für die kleinen Bereiche muss dann das Grid immer feiner werden, um genau auf den gewünschten Elementen zu landen, ohne dabei die Bereiche ringsherum völlig zu verzerren. Das kann mitunter in einer recht mühseligen Arbeit enden, dabei bestehen die relevanten Elemente doch eigentlich auch nur aus wenigen Punkten. Millumin erlaubt es jedoch, die Punkte auf einem Grid vor dem eigentlichen Warpen zu verschieben und ein eigenes Grid zu erstellen, welches die wesentlichen Eckpunkte des zu warpenden Inhalts reflektieren kann. Mit diesem Wissen kann man sich lange vor Ankunft und Zündung der Projektorlampe auf das Mapping vorbereiten und mit Hilfe von Content und Fotos ein Warping-Grid erstellen, mit dem die Arbeit vor Ort binnen weniger Minuten erledigt sein kann.
Viele Anwender benutzen Millumin als ernstzunehmenden Ersatz für dedizierte Medienserver. Die Software selbst ist äußerst stabil und Grenzen werden eigentlich nur durch Hardwareeinschränkungen gesetzt. Offiziell unterstützt Mac OS keine framesynchronen Outputs an Macbooks und iMacs. Zwar sind Probleme mit asynchronen Outputs direkt am Mac selten geworden, richtig zufriedenstellend ist diese fehlende offizielle Unterstützung dennoch nicht.
Diesem Umstand begegnen die Nutzer von Millumin mit der entsprechenden Hardware. Ein Weg ist die Verwendung von externen Grafikkarten per Thunderbolt-3-Anschluss. Mit einem Razor-Core-X-Gehäuse und einer Gigabyte Radeon RX Vega 56 kann man selbst einen Mac Mini zu einer potenten Maschine aufrüsten. Die Outputs in dem Setup sind im Sync, so lange die Grafikkarte nicht über Gebühr beansprucht wird. Je nachdem wie man die Outputs organisiert und wie viele Layer man nutzt, ist es durchaus möglich, 3 × UHD auszuspielen und noch einen Full-HD-Arbeitsmonitor zu betreiben. Millumin kann in diesem Szenario entweder drei UHD-Layer oder zwölf Full-HD-Layer mit HAP-codierten Videos abspielen. Tests der Entwickler mit diesem Setup resultierten in konstanten 60 fps. Unter Einsatz von DataPath FX lassen sich die drei UHD-Outputs wieder in zwölf Full-HD-Outputs aufsplitten und man hat eine Größenordnung erreicht, die man erst einmal ausreizen muss.
Nutzer aus der Community haben auch die ersten Testergebnisse mit den neuen Mac-Pro-Modellen und Afterburner-Karten vorgestellt. Hierbei seien zwölf Layer bei 4k@30fps, zwei Layer bei 4k@60fps, und ein Layer mit 8k@30fps problemlos parallel gelaufen. Mit der Veröffentlichung des Mac Pro steigen die Nachfragen von Nutzern nach einer offiziell unterstützten Frame-synchronisierten Videoausgabe direkt am Gerät und es ist hoffentlich nur eine Frage der Zeit, bis man sich endlich ohne Workaround darauf verlassen kann.
Afterburner
Die Afterburner-Karte ist eine optionale PCIe-Karte für den Mac Pro zur Beschleunigung von ProRes- und ProRes-RAW-codierten Videodateien. Apple-Anwendungen wie Final Cut Pro greifen auf die Processing-Ressourcen der Karte zu, aber auch Videoplaybacksoftware wie Mitti und natürlich auch Millumin unterstützen mittlerweile die 2.400 Euro teure Zusatzkarte.
Millumin eröffnet ein aufregendes Spielfeld für kreative und interaktive Anwendungen. Das hohe Maß an Kompatibilität mit anderen Programmen und Geräten ermöglicht die Optimierung von Arbeitsabläufen und bietet das Potential, Content-Kreation und Wiedergabe näher zusammenrücken zu lassen. Es dauert einen kleinen Moment, bis man die Bedienphilosophie verinnerlicht hat und sich an ad hoc startende Clips gewöhnt hat. Ist man erstmal drin, möchte man die Funktionen nicht missen.
Doch auch Millumin ist nicht perfekt. So fehlt es an einer vernünftigen Bedienungsanleitung als PDF. Zwar erhält man alle Informationen und ausführliche Tutorials in der Online-Hilfe, aber nicht alle Darstellungen gehen bis ins Detail und noch nicht jeder Veranstaltungsort kann mit einer vernünftigen Internetverbindung dienen. Das ist traurig und wäre mit einem richtigen Manual in der Hand leichter zu ertragen.
Die Community rings um die Software ist hilfsbereit und aktiv. Im Forum auf der Webseite erhält man einen direkten Draht zu den Entwicklern und wer sinnvolle Anwendungsfälle für Feature-Wünsche skizzieren kann, wird nicht selten auch erhört. Was für unser Gewerk am wichtigsten ist, nämlich die zuverlässige Medienwiedergabe, ist für Millumin auf jeden Fall keine Herausforderung.