NNOSD - Ein On Screen Display für den HTPC

  • Motivation

    Mein Denon AVR kann kein OSD anzeigen, wenn das Bild vom HTPC kommt. Woran das genau liegt konnte ich nicht herausfinden. Entweder an der Kombi UHD+SDR+8bit oder am RGB statt YCbCr und bei 4096x2160 geht es sowieso nicht. Für die Ersteinrichtung des AVRs ist das noch ok, im Betrieb ist das aber ein totaler Blindflug. Zumindest habe ich einen Blick auf das AVR-Display, dazu muss ich aber meinen Hals um 160° drehen.


    Da ich auf meinen NZ8 zwei Monate warten musste, habe ich ein C# Projekt mit VisualStudio2022 aufgesetzt, welches ein Windows OSD mit der aktuellen Lautstärke anzeigen sollte. Bei der Entwicklung kamen mir immer neue Idee, was und wie man noch alles anzeigen könnte.


    Status:

    Am Bildschirm das OSD von NNOSD dann z.B. so aus wie unten dargestellt. Layout (Farben, Schriften, Anordnunge) und Inhalt (Parameter) lässt im Rahmen des RTF-Formats frei gestalten und platzieren.

    Hat sich ein Parameter geändert, kann dieser für eine definierte Zeitspanne hervorgehoben dargestellt werden und je nach Einstellung die OSD Anzeige triggern.

    Das OSD ist tatsächlich ein Overlay, es wird über allen Fenstern angezeigt und ist nicht anklickbar. Es kann nur nicht angezeigt werden, wenn MadVR oder ein Game im Exklusiv-Modus läuft. Da bei mir MadVR nicht im Exklusive-Modus funktioniert nutze ich nur den Fenster Modus. Hier funktioniert NNOSD perfekt. Die Ansicht muss aber auch nicht als OSD eingeblendet werden, sondern kann auch als reguläres Fenster auf einem anderen Bildschirm oder anderen PC dargestellt werden.


    Demo-Layout 1

    NNOSD Image1.png


    Demo-Layout 2

    NNOSD Image2.png


    Im Filmbild schaut das dann zB so aus

    NNOSD Image4.jpg



    Ein paar Details

    Aktuell implementiert habe ich die Einbindung meines Denon AVR über ein C#-Klasse die sich für andere HK-Geräte mit IP-Schnittstelle relativ leicht anpassen lässt.

    Im Wesentlichen läuft die Kommunikation mit den HiFi-Geräten über IP immer sehr ähnlich ab. Es wird über eine IP-Adresse und einen TCP-Port eine TCP/IP-Verbindung zur Kommunikation hergestellt. Darüber laufen die Kommandos und Antworten, den Syntax kann man aus den meisst öffentlich verfügbaren Protokollspezifikation entnehmen.

    Praktisch ist beim Denon, dass er bei jeder Konfigurationsänderung ein IP-Telegramm mit den Infos zur Änderung versendet. Dabei ist es egal, ob diese Änderung von der Fernbedienung, über ein IP-Kommando oder aufgrund eines neue Eingangssignals zustande kommt. Drückt man somit auf der FB auf „lauter“ sendet der AVR daraufhin die neue Lautstärke als Parameter an das Programm, dieses öffnet unmittelbar das OSD und zeigt den Lautstärkewert an. Oder wenn ein Film startet und sich das Tonformat z.B. von Stereo zu Atmos ändert, kann dies auch gleich angezeigt werden. Wie und ob eine Änderung das OSD triggert, kann konfiguriert werden und auch was angezeigt wird oder wie lange das OSD sichtbar bleiben soll. Manche Abfragen liefern unpassende Antworten. Der Parameter „Source Input“ liefert beim Denon zB. „SAT/CBL“ bei mir steckt aber der AppleTV dran. Daher gibt es Dictionary-Listen zur Übersetzung. Sendet der AVR als Eingang „SAT/CBL“ wird im OSD „HDMI 1 -Apple TV“ angezeigt.

    Parameter von Geräten die nicht von sich aus Updates senden, können zyklisch abgefragt werden - zB alle 60 Sekunden den Beamer abfragen.

    Weitere Details gehen jetzt hier zu weit.


    Konfiguration

    Das Konfigurationsfenster sieht aktuell wie folgt aus. (siehe unten)

    1) Bereich - OSD Layout Designer

    Hier kann man wie in einem Textprogramm das Layout entwerfen

    Für die Parameter der Devices werden Tags (Platzhalter) eingefügt. zB <D.MV> für den Wert des Parameters „Denon Master Volume“. Wird ein „.HL“ an den Tag angefügt gibt dieser die Formatierung für die Darstellung bei einer Parameteränderung an.

    2) Bereich - Devices

    Hier werden die verbunden Geräte angezeigt, konfiguriert und getestet.

    3) Bereich – Debugging

    Für die Entwicklung wichtig – kann man dann später ausblenden


    NNOSD Image3.png



    Meinen Fragen an das Forum

    • Gibt es Interesse an diesem Programm?
    • Welche Geräte soll ich primär noch hinzufügen? Mein JVC Beamer kommt jetzt mal als nächstes dran!
    • Ich möchte hier auch die IP-Protokollspezifikationen der HiFi-Geräteherstellen verlinken. Gibt es da schon eine Zusammenstellung, auf der man aufbauen kann?
    • Gibt es freiwillige Alfa-Tester?
    • Sonstige Ideen?
  • Hi,


    wow, sehr interessante Lösung von Dir! Klasse! :respect:


    Ich stand vor einem ähnlichem Problem. Ich benötige ebenfalls ein OSD, da ich keinen AVR mehr in meiner Kette habe. Die Lautstärkeregelung funktioniert bei mir über eine Software AcourateConvolver und das Sounddecoding übernimmt ein Smyth Realiser A16 AES. Ich bin absolut nicht fit im Programmieren, konnte mir aber mit Autoit ein kleines Script basteln, das meine Grundanforderung nun einigermaßen zuverlässig erfüllt.


    osd.jpg


    Dein Tool sieht da aber bedeutend schicker und flexibler aus. Meine beiden wichtigsten "Geräte" können per TCP abgefragt werden, allerdings hatte ich große Probleme mit Verbindungsabbrüchen bzw. Aussetzern bei zu häufigen/schnellen Abfragen. Das kann aber auch zu 100% an meinen bescheidenen Programmierkenntnissen liegen.


    Lange Rede, ich hätte schon großes Interesse an Deinem NNOSD. Allerdings bin ich mir nicht sicher, ob meine Hauptdevices zuverlässig von Deinem Programm abgefragt werden können. Außerdem hast Du zur Zeit sicher Besseres zu tun als Dich um die Integration von exotischen Geräten zu kümmern. Genieße erstmal Deinen NZ8, das ist ein wirklich klasse Beamer.


    VG, Stefan

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!