AtmoWin

Aus VDR Wiki
Wechseln zu: Navigation, Suche

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 Atmowin icon.png in eurer Taskleiste neben der Uhr - zum Öffnen des Einstellungsdialoges reicht ein Doppelklick auf das Icon oder ihr öffnet das Einstellungsmenü Atmowin popmenu.png via Rechtsklick [Einstellungen].


Einrichtungsdialog

Atmowin settings.png

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.
Atmowin effectmenu.png

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

Atmowin whiteadjust sw.png

Ziel es Weisabgleichs ist es die Einstellung der Drei Regler zu finden - wo alle drei Grundfarben der LED Stripes gleich Hell erscheinen - als Ausgangspunkt sollte man alle drei Regler auf ihren Maximalwert (255) stellen. Danach schaut man sich das Ergebnis an - und reduziert zunächst die Farbe die am meisten hervorsticht - bis diese nicht mehr auffällt, danach nimmt man sich die nächste Farbe vor... das wiederholt man solange bis man meint perfektes Weiss gemischt zu haben...

Damit die Funktionen der Software die eingestellte Werte auch verwenden, muss die Checkbox "[X] Softwareweissabgleich aktivieren" gesetzt sein, wenn ihr den Hardwareweissabgleich nutzt müsst ihr das Häkchen entfernen!

Weisabgleich Hardware

Atmowin whiteadjust hw.png

TODO: Vielleicht könnte sich hier mal der Entwickler der Firmware dazu äußern, wie man auf diesem Weg den Abgleich vollzieht - mit welchen Regler man am besten anfängt?

Die Checkbox "[ ] in Controller speichern" bewirkt das die Einstellungen beim Schließen des Dialogs mit [Ok] in den Controller IC geschrieben werden, da ein auslesen der Werte aus dem Controller selbst nicht möglich ist - speichert AtmoWin diese Werte zusätzlich in der Windows Registry - so daß man den Abgleich immer wieder fortsetzen kann. (Achtung: speichern in Registry erfolgt nur, wenn ihr auch den Einstellungsdialog selbst mit [Ok] beendet!)

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 - komplette Abschaltung der Effekte
live - schaltet in den Live GDI Screencapturemodus (VLC verliert hierbei die Verbindung! also 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.

AtmoWin Ansteuerung

Wer sein AtmoLight auch ohne aktiven Videoplayer, z.B. als statisch TV Beleuchtung nutzen will - und nicht ständig Programme starten und beenden möchte - für den ist dieser Ansatz wohl der geeigneste.

Die AtmoLight Hardware wird hierbei immer von der AtmoWin Software gesteuert - und diese belegt auch permanent die serielle Schnittstelle, erlaub aber über die Programmierschnittstellen, anderer Software die Kontrolle zu übernehmen.

Man spart sich dadurch auch die mehrfache Einrichtung der Schnittstellenparameter, Kanalzuordnung, Weissabgleich und Gammakorrektur - da man diese nur in der AtmoWin.exe einmalig vornimmt.

Wie gehts?

  1. Installation von VideoLan (0.9er Version, mit AtmoLight Plugin/Modul - derzeit nur hier im Forum erhältlich)
  2. Kopieren der Datei "AtmoCtrlLib.dll" aus dem AtmoWin Programmverzeichnis in den Ordner wo die VLC.exe liegt, das ist normalerweise C:\Programme\VideoLAN\VLC\.
  3. VideoLAN starten und Einstellungen nach eigenen Bedarf vornehmen
  4. AtmoLight Filter aktivieren dazu im Menü [Tools] --> [Einstellungen] anklicken oder [Strg+P]

Vlc filteractivate.png

    1. unten links die Option "Show Settings" "Alle" aktivieren dann sollte sich die Ansicht so verändern wie auf obigen Bild zu sehen.
    2. danach den Baum "Video" aufklappen und auf den Eintrag "Filter" klicken, in der Auflistung "Videofilter-Modul" sucht ihr den "AtmoLight Filter" und markiert [X] diesen. (die Liste ist noch nicht sortiert, also keine Garantie das die Liste bei euch die gleiche Sortierung hat)
    3. jetzt im Baum links auf den Eintrag "AtmoLight" klicken, um die Einstellungen des Filters vorzunehmen.

Danach solltet ihr dieses Bild zu sehen bekommen - nicht erschrecken vor den vielen Optionen, wird noch erklärt.
Vlc atmosettings.png

hier sind erstmal nur die Einstellungen

  • [ ] Use buildin AtmoLight
  • Filename of AtmoWinA.exe

erforderlich

Die erste Option würde den eingebauten AtmoLight Filter vollständig aktivieren - d.h. VideoLan wäre dann unabhängig von AtmoWinA.exe benutzbar, aber nicht damit, aus diesem Grund deaktiveren wir diese Option.

Der Dateiname der AtmoWinA.exe wird verwendet, um ggf. die AtmoWin Steuersoftware selbst starten zu können, solltet ihr das nicht via Autostart eures Windows erledigt haben. (kann leer bleiben - dann gibts eben kein Atmo Light - wenns gebraucht wird.) --> bzw. es erfolgt dann der Fallback auf den eingebauten AtmoLight Filter.

Das wars eigentlich schon - das nächste Video was ihr abspielt - sollte schon in den Genuß von AtmoLight kommen.

Standalone