AtmoWin
Inhaltsverzeichnis |
AtmoWin
Maintainer: André Weber
Autor(en): André Weber, Matthiaz, MacGyver2k
Wer seine AtmoLight Hardware auch unter Windows oder außerhalb von VDR betreiben möchte, ist natürlich auf deren Softwareunterstützung angewiesen. Im diesem Rahmen entstand eine Steuersoftware die unter Microsoft Windows eingesetzt werden kann, sowie eine Modul für den populären VideoLAN Mediaplayer, welches auch für die Linux Versionen verfügbar ist.
Als Basis für die Software diente das Plugin für den VDR - aus diesem wurden die Algorithmen für die Berechnungen der Farbwerte übernommen.
Installation
Entpackt den Inhalt des Downloads (atmoWin_<xyz>.zip) in einen beliebigen Ordner und wenn ihr wollt das AtmoWin gleich beim Start eures PC geladen wird - legt ihr noch eine Verknüpfung zur AtmoWinA.exe in die Autostart Gruppe.
Nach dem Starten des Programmes erscheint dieses Symbol in eurer Taskleiste neben der Uhr - zum Öffnen des Einstellungsdialoges reicht ein Doppelklick auf das Icon oder ihr öffnet das Einstellungsmenü via Rechtsklick [Einstellungen].
Einrichtungsdialog
Bedeutung der Optionen...
[Gerätetyp] erlaubt die Auswahl der angeschlossenen AtmoLight Hardware derzeit gibt es hier nur die Auswahlmöglichkeiten "Atmo" für die aktuelle Hardware und "Dummy" für eine Bildschirmausgabe der Farben speziell für Entwickler ohne eigene Hardware.
[Schnittstelle] hier wird die Serielle Schnittstelle ausgewählt an welche die Hardware angeschlossen ist. (spielt natürlich für "dummy-device" keine Rolle)
[aktiver Effekt] gibt an für was die Hardware gerade genutzt wird derzeit gibt es folgende Funktionen:
- "Kein Effekt aktiv" -- AtmoLight bleibt beim Starten des Programmes dunkel
- "feste Farbe" -- es wird ein voreingestellte Farbe angezeigt
- "live Bild" -- solange kein spezieller Player die Steuerungsschnittstellen von AtmoWin anspricht wird dabei der aktuelle Bildschirminhalt via Screencopyverfahren als Quelle verwendet (Achtung sehr hohe CPU Last ist ein bekanntes Problem)
- "Farbwechsel" -- durchläuft zufällige Farben auf allen Kanälen
- "Farbwechsel LR" -- der obere und untere Kanal wird abgeschaltet, und die Farben wechseln von Links nach Rechts.
Die Effekte kann man auch über das Kontextmenü des Icons neben der Uhr umschalten.
Farbwechsel
Die Anzahl der Schritte für einen Farbwechsel und die Wartezeit zwischen zwei Schritten stellt man in der Gruppe "Farbwechsel" ein.
Farbwechsel LR
Die Farben wechseln von Links nach Rechts. Die Anzahl der Schritte für einen Farbwechsel und die Wartezeit zwischen zwei Schritten stellt man in der Gruppe "Farbwechsel LR" ein.
Feste Farbe
Die Konfiguration der Farbe erfolgt über die Schaltfläche [auswählen] in der Gruppe "Feste Farbe"
Shutdown Farbe
Die Gruppe "Shutdown Farbe" ermöglicht es mit dem Button [auswählen] und der Checkbox [X] verwenden eine Farbe einzustellen die AtmoLight ausgeben soll, wenn die Steuersoftware beendet wird - z.B. beim Herunterfahren von Windows. Ist diese Option deaktiviert bleibt die zuletzt gezeigte Farbe aktiv.
Live Bild Parameter
Diesen Einstellungen widme ich einiger weitergehender Erklärungen. (bitte korrigiert mich wenn diese Falsch sein sollten.) Die Auswahlliste [Quellmonitor] legt den Monitor fest dessen Bildinhalt für den Livemodus verwendet werden soll, solange dieser Modus im GDI Capture Verfahren läuft - sobald eine externe Quelle die Bilddaten liefert. Wie zum Beispiel das VideoLAN Modul oder der "geplante?" DirectShow-Filter spielt diese Einstellung keine Rolle mehr.
Die Option [Widescreenmodus] ermöglicht es bei der Ausgabe des Desktops via TV-Out auf einen 16:9 Fernseher ohne passende Auflösung, wo durch den Overscan / Abschneiden des TV's Bildinhalt vom Desktop nicht angezeigt wird aus der Berechnung auszuschließen. (Quasi umgekehrtes Letterboxing?) (spielt aber für den normalen Betrieb IMHO keine Rolle und kann inaktiv bleiben. Schwarze Balken bei Filmen etc. spielen Prinzipbedingt sowieso keine Rolle)
[Edge Weightning] steuert die Priorität von Pixeln in Abhängigkeit deren Entfernung vom Rand. Aber Achtung dieser Faktor ist nicht linear - sondern wir als Exponent für die Wichtung verwendet. Z.b. wenn die Wichtung der Pixel für den Linken Kanal als Werte von 0..255 festgelegt sind (255 höchste Priorität) ergebe sich somit für den Pixel links außen nach rechts folgende Basiswichtungen die durch "Edge Weightning" manipuliert werden können: folgende Tabelle zeigt am Beispiel für den Linken Kanal und die ersten 5 Spalten wie sich Edgeweightning auswirkt.
Spalte | Grundwichtung (Graukeil) | Edgeweight 0 | Edgeweight 1 | Edgeweight 2 | Edgeweight 3 |
---|---|---|---|---|---|
Spalte 0 | 255/255 | 1,00 | 1,000 | 1,000 | 1,000 |
Spalte 1 | 250/255 | 1,00 | 0,980 | 0,960 | 0,941 |
Spalte 2 | 246/255 | 1,00 | 0,965 | 0,931 | 0,899 |
Spalte 3 | 242/255 | 1,00 | 0,949 | 0,901 | 0,855 |
Spalte 4 | 238/255 | 1,00 | 0,933 | 0,870 | 0,812 |
Also gilt wenn man Edge Weightning auf 0 setzt - werden alle Pixel des Bildes mit gleicher Priorität betrachtet egal wie weit diese Pixel vom Rand entfernt sind - je höher man Edge Weightning wählt - desto mehr gehen die Pixel des Randes in die Berechnung ein und die Pixel weiter vom Rand entfernt verlieren an Bedeutung.
[Brightness 100%] dient zur Steuerung der Helligkeit der ausgegeben Farben - sollte im Normalfall bei 100% belassen wird, es sei denn eure LED Stripes strahlen zu hell, dann könnt hier nachregeln.
[Darkness Limit] ist eine wichtige Option da darüber gesteuert wird, welche Pixel überhaupt in die Berechnung eingehen - der Wert 0 bewirkt das alle Pixel in die Berechnung eingehen die im HSV Farbmodell V>0 besitzen. Der Wert 1 bedeutet V>10, 2 -> V>20 etc... Werte um 3 haben sich bei mir als ausreichend Wirksam gezeigt, um auch Filme die im Letterboxedformat vorliegen mit guten Optischen Effekten abzuspielen. -> man sollte den Wert keinesfalls zu hoch wählen - da sich sonst nicht mehr viel tut.
[Hue Windowing] [Sat Windowing] sollte man auf 3 belassen. Wen die Werte aber trotzdem interessieren - beim ermitteln der Statisk der häufigsten Farbe müssen für die Anteile HUE und SAT der HSV Pixel Wertegruppen gebildet werden - z.B. ein Wert von 3 bedeutet all Sat Wert 0..2 gehen in die gleiche Gruppe ein, 3..5 ... etc...je grösser man diese Werte ansetzt, desto mehr Farben werden am Ende zu einer Gruppen zusammengeführt - was am Ende wieder zu Farbverfälschungen führen kann - da am Ende der Mittelwert der Gruppe in die Ausgangsfarbe eingeht?
[Filtermodus]
- "No Filter" -- d.h. die Farben werden sofort wie in der Statistik ermittelt ausgeben - kann zu Flimmern führen und hektischen Farbwechseln (ist nur was um Rechenleistung zu sparen.)
- "Combined" -- ist der intelligenste Filter, er wechselt die Farben über einen gewissen Zeitraum und ergibt so schöne softe übergänge, aber wenn der Bildinhalt sich schlagartig ändert (z.b. Gewitter mit Blitzen im Film) - reagiert er auch schnell. Die Weichen langsamen Farbübergänge steuert man über den Regler [Filter length] soviele Millisekunden dauert der Übergang dann, [Filter Threshold] hingegen legt den Schwellwert fest bei dem sofort auf die neue Farbe umgeschaltet werden soll.
- "Percent" -- bedeutet die neue Farbe für einen Kanal setz sich zu einem bestimmten Prozentsatz aus der aktuellen Farbe und der neu berechneten Farbe zusammen, der Prozentsatz wird über den Schieberegler [Filter Smoothness] eingestellt.
Weisabgleich
Da die Helligkeitswerte der verbauten LED's in den Streifen nicht unbedingt gleich sein müssen - gibt es über den Weissabgleich die Möglichkeit das zu korrigeren. Es stehen dabei je nach Firmwarestand des Atmo Controller zwei Möglichkeiten zur Auswahl - ältere nicht aktualisierte Controller vollziehen den Weissabgleich in der Steuersoftware. In neueren Firmwareversionen wurde dieser Abgleich in die Hardware (Firmware) verlagert - so dass die CPU entlastet wird.
Man kann es leider dem Controller nicht ansehen ob er in der Lage ist den Weissabgleich in Hardware auszuführen - man muss es wissen oder ausprobieren - sofern der Controller den Hardware Weissabgleich nicht beherrscht passiert beim Einstellen der Werte und speichern überhaupt nichts - da die alte Firmware den Steuerbefehl einfach ignoriert.
Wenn man den Hardware Weisabgleich verwendet, sollte man den Weissableich via Software im Button [Weissabgleich (Software)...] deaktivieren.
Weisabgleich Software
Weisabgleich Hardware
Befehlszeilentools
Für einige Befehle und Funktionen kann es hilfreich sein - wenn man diese aus anderen Programmen heraus anschieben kann - oder von der Befehlszeile aus. Für andere Programme steh eine sogenannte COM (ActiveX) Schnittstelle zur Verfügung. Der geneigte User - möge sich bitte den Quelltext herunterladen, und das Beispielprogramm zu deren Nutzung lesen.
Für die einfache Steuerung via Batchdatei oder eines Automatisierungstools - z.B. Girder oder EventGhost unter Windows kann das Programm AtmoCtrl.exe verwendet werden. Dieses Programm setzt voraus dass die Steuersoftware bereits konfiguriert ist und ausgeführt wird.
Man kann damit die Effektmodi umschalten, je nach Effektmodus die Farben ändern, oder kleine Sequenzen von Farbwechseln mit Pausen dazwischen realisieren.
folgende Parameter werden dabei unterstützt: -effect [none|live|static|lrchanger|changer] dient zum Umschaltung des aktuellen Effektprogrammes none - ist komplett Abschaltung live - schaltet in den Live GDI Screencapture modus (VLC verliert hierbei dei Verbindung! als Vorsicht) static - aktiviert die feste Farbe welche eingestellt ist lrchanger - Farbwechsel LR changer - Farbwechsel
-color RedValue GreenValue BlueValue - gibt eines bestimmte Farbe auf alle Kanälen der Hardware aus (sollte nur mit den Effekten None oder static verwendet werden, weil die Farbe sonst gleich wieder verschwindet) die Komponenten von RGB sind im Bereich 0..255 zu verwenden.
-chcolor channel RedValue GreentValue BlueValue -- gibt eine Farbe auf einem bestimmten Kanal aus 0..4 für die AtmoHardware bestimmte (n.i.y.)
-sleep time -- wartet mit der Abarbeitung der Parameterliste soviele Millisekunden.
Alle Parameter können in der Befehlszeile beliebig oft wiederholt werden, um so kleine Befehlssequenzen an die Atmo Hardware zu schicken...
VideoLAN Integration
Für VideoLAN in der Version 0.9 wird ein Filtermodul existieren was die Videodaten vorberechnet.