Kein Ton über HDMI/ARC (an Panasonic OLED)

Ich hatte Schwierigkeiten, den Ton meines neuen Fernseher in den AV-Receiver zu bekommen:

Mein bisheriges Setup war Player→[HDMI]→Receiver↔[HDMI/ARC]↔TV, man beachte die bidirektionale Richtung zwischen Receiver und TV, das Stichwort ist hier ARC. Dadurch konnte der Receiver den Ton des Players abgreifen (und wiedergeben) und das Bild an den TV durchreichen. Der TV konnte seinen Ton (etwa beim Fernsehen) über dasselbe Kabel an den Receiver zurückgeben. Und Steuersignale wie bspw. Lautstärke ebenfalls. Das ist ziemlich super.

Das geht mit dem neuen TV nicht mehr, weil der Receiver kein 4k durchschleift 🙄. Der Player hat nun zum Glück zwei HDMI-Ausgänge, einen für Bild (geht jetzt zum TV) und einen für Audio (geht jetzt in den Receiver). Aber wie den Ton vom TV in den Receiver bekommen? Die naheliegende Antwort lautet TOSLINK aka optisches Audio. Und das ist ziemlich stuhl.

Der TOSLINK-Stecker ist maximal asymmetrisch und nur mit viel Gefummel in die Buchse zu bekommen. Die Buchse ist maximal filigran und von so einer Klappe verdeckt (sonst leuchtet’s die ganze Zeit rot). In meinem TV ist die Buchse außerdem über Kopf montiert, und so kam es, wie es kommen musste:

Das sind die Überreste meiner Buchse 😭 Nun hält das Kabel noch schlechter, also bei TOSLINK sowieso schon.

Ich begann (Erzählerstimme: “…jetzt doch schon mal …”), wieder über ARC nachzudenken. Warum sollte das nicht immer noch funktionieren? Gesagt, probiert, der TV scheint den Receiver zu finden – Lautstärkeregelung geht, und wenn ich den TV ausschalte, geht auch der Receiver aus. Nur Ton, Ton höre ich nicht. Vielleicht ein anderer HDMI-Input? Auch nicht. Und nun? TOSLINK geschrottet, ARC geht nicht. Kurz googeln, und man findet viele Foreneinträge wie diesen hier, es gibt auch weitere:

ARC ist sowas von unausgereift. Je nach TV/Receiver/Firmware funktioniert es halt nicht.

Kann ich ja fast nicht glauben, zumindest nicht in meiner Kombination hier, der Receiver ist der alte, der TV nach wie vor ein Panasonic. Zumal, ich bin erklärter ARC-Fanboy und möchte das auch bleiben 😊 So, und jetzt komme ich zum eigentlichen Aufhänger dieses Posts: Es kommt auf die korrekte HDMI-Buchse am Receiver an; es muss der HDMI-Output sein! Das ist nicht selbsterklärend, denn warum sollte ARC-Input nicht an irgendeiner Input-Buchse hängen dürfen? Aber wenn man sich das ursprüngliche Setup ansieht, wird diese Anforderung klar. Oder wenn man das Naming ansieht, ARC steht für Audio Return Channel, und ein “Return” wird es nur, wenn der eigentliche Output dann als Input verwendet wird. Gedacht, probiert, nur, wenn ich Audio-Input über den Output erwarte, auf welchen Kanal stelle ich dann meinen Receiver? Da hilft (Erzählerstimme: “…jetzt doch schon mal …”) ein Blick in die Anleitung: AV 1. Der scheint also mehrfach belegt zu sein, es gibt auch einen dedizierten AV 1-Input auf der Rückseite. Aber das soll mir egal sein.

Liebes Internet: ARC-Input an den HDMI-Output anschließen, korrekten Kanal wählen, dann klappt’s auch mit dem Nachbarn.

MicroPython vs. HTTP Response Headers

Der Raspberry Pi Pico W ist pure Magie. Ein Microcontroller, in Python zu steuern, mit WLAN on board 😍 Super einfach, damit irgendwas im Netz zu machen – essentiell für IoT, looking at you, Arduino.

(Aber man muss|Außerdem kann man) viel über MicroPython lernen. Zum Beispiel, wie urequests Response-Header parst: Als Key/Value. Das ist uncool, da es durchaus Header gibt, die doppelt kommen können und sollen:

The optional replace parameter indicates whether the header should replace a previous similar header, or add a second header of the same type. By default it will replace, but if you pass in false as the second argument you can force multiple headers of the same type. For example:

Sagt PHP (replace Parameter).

The Set-Cookie HTTP response header is used to send a cookie from the server to the user agent, so that the user agent can send it back to the server later. To send multiple cookies, multiple Set-Cookie headers should be sent in the same response.

Sagt Mozilla.

Imho nicht unbedingt unseriöse Quellen, aber für MicroPython ist das trotzdem kein schlagendes Argument; Header duplicates werden weiterhin nicht unterstützt werden. Siehe meine längliche Diskussion ab hier.

Es gibt aber einen Workaround, und der ist imho nicht offensichtlich: Man kann nämlich urequests.post() mit einem Parameter parse_headers aufrufen, der erstmal ein Boolean ist – aber auch eine Callback-Funktion sein kann:

Das Fragment (ich hoffe, ich habe auf die Schnelle nichts vergessen) printed alle Cookies. HTH.

Panasonic TX-48JZX1509 Software Update

Ich habe seit Neuerem einen TX-48JZX1509 hier stehen, sprich: Einen Panasonic OLED aus der JZ*150*-Reihe; beide Sternchen können beliebig (einstellig) variieren, es ist immer dasselbe Modell.

Und wie ich gerade lerne, gibt es zwei Stellen im Menü, an denen man ein Software-Update triggrn kann: Setup -> System Menü -> Software-Update. Das funktioniert alerdings nicht (🙄). Die andere Stelle ist: Netzwerk -> Software-Update.

Gut zu wissn, denn mit so einer verwirrnden Benamsung ist es fast unmöglich, auf der Panasonic-Seite die passende Firmware zu finden.

macOS: Dockicon ändern

Mozilla hat in seiner grenzenlosen Weisheit entschieden, das Icon von Firefox 106 mit einem schwarzen Hintergrund zu versehen. Sehr, eh, hübsch.

Es gibt allerdings eine einfache Methode, Dockicons zu ändern:

  • Grafik (bspw. diese hier) in den Zwischenspeicher kopieren
  • Rechtsklick -> Optionen -> Im Finder anzeigen
  • CMD+i, um die Informationen aufzurufen
  • das Icon markieren
  • CMD+v, um das markierte Icon mit der kopierten Grafik zu ersetzen

Quelle

Git Properties

gradle-git-properties, ne? Da ist war mir nicht ganz klar, wie man das in einem Task vor doLast{} verwendet; ich bekam immer

Cannot get property ‘gitProps’ on extra properties extension as it does not exist

. Dabei steht es eigentlich da 🙂 Also:

hth

CycloneDX Gradle Plugin

Die “Use Cases and Examples” von CycloneDX sind leider nur so mittel hilfreich für Gradle-Projekte, insbesondere solche ohne plugins DSL. Hier wie es trotzdem zu applyen ist:

Spock: Implizite Variablen in @Unroll

Neben den where:-Variablen gibt es auch implizite:

ergibt:

via, und.

PDF konvertieren und auf Kindle spielen

Wer ein PDF hat und es auf seinen Kindle spielen will, kann das per Email machen. Die Adresse findet man auf dem Kindle unter Einstellungen -> Mein Konto -> Kindle-E-Mail-Adresse, oder unter amazon.de/myk -> Gerät auswählen, Geräteübersicht -> E-Mail.

Wenn das PDF dabei konvertiert werden soll, statt dass es einfach Grafiken werden, der muss als Betreff der Email “convert” angeben.

Quelle