TV über Windows media player

Antworten
dietert
Aktiver Hörer
Beiträge: 533
Registriert: 24.11.2013, 10:31
Wohnort: 76571 Gaggenau
Kontaktdaten:

TV über Windows media player

Beitrag von dietert »

Ein Frage an den/die Experten:
Für WMP habe ich einen Convolver Plugin (ConvolverWMP), der gut funktioniert und den ich nun bei der TV-Wiedergabe nutzen möchte.
Dazu habe ich eine optische Verbindung vom Sat-Tuner zum PC hergestellt. Wenn ich die Systemeinstellungen konfiguriere, höre ich den Ton auf den beiden Aktivlautsprechern, die am Line-Ausgang der Soundkarte hängen (BCA2000).
Wie kann man nun WMP dazu bewegen, einen Stream von einem SPDIF-Eingang zu lesen, damit der Convolver in Aktion tritt?

Noch was:
Die Totzeit von Convolvern, die bei Benutzung mit DVD/TV die Lippensynchronizität stört, hat etwas mit der Implementierung über FFT zu tun, ist das korrekt? Bei einer "naiven" Implementierung müsste das Problem meineserachtens nicht auftreten, weil dann die Verarbeitung Sample für Sample passiert und nicht in langen Blöcken.
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4665
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Soweit ich weiss, ist bei WMP nicht vorgesehen, dass er externe Soundkarteneingänge verarbeitet.

Für eine Faltung müssen die Musikdaten ja eingelesen, verarbeitet und wieder ausgegeben werden. Man muss hierbei aufpassen, dass nicht ein Eingangssignal durch die Souundkarte direkt zu em Ausgang geroutet wird (Monitoring-Funktion & Co.)

Totzeiten bzw. Latenzen entstehen zum einen durch die Puffer der Soundkarte und zum anderen durch die Partitionsgröße im Fall einer FFT-Convolution. Größere Puffer verringern die CPU-Belastung, erhöhen aber die Latenz.
Eine native (nicht naive) Implementierung ist denkbar, allerdings steigt dabei der CPU-Aufwand drastisch. Daher ja auch die Umrechnung per FFT (in etwa vergleichbar mit der Verwendung von Logarithmen als Ersatz für Multiplikation).
Das Ganze gilt übrigens nur für minimalphasige Filter. Filter mit Phasenkorrektur bedingen ebenfalls eine Latenz (linearphasige Filter haben z.B. eine Totzeit halbe Filterlänge/Abtastrate) unabhängig von der realisierten Faltungsstrategie.

Bei Video/TV wird aber das Gehirn mehr durch das Auge beansprucht, da spielt dann der perfekte Klang eine geringere Rolle. Insofern reichen minimalphasige Filter. Hier gibt es als Spezialität noch die non-uniform partitioned convolution, welche mit sich ändernden Partitionsgrößen arbeitet, beginnend mit kleinen Größen. Hieraus folgen kleine Latenzen. Die Realisierung ist nicht ganz ohne (ich hab es bisher noch nicht geschafft). Hierzu wären z.B. Voxengo Pristine Space und SIR2 als VST Plugins zu nennen.

Sofern aber WMP eben keinen externen Soundkarten-Eingang zulässt, muss man einen anderen VST-Host verwenden, ein mögliches Stichwort wäre hier z.B. SaviHost.

Grüsse
Uli
Bild
dietert
Aktiver Hörer
Beiträge: 533
Registriert: 24.11.2013, 10:31
Wohnort: 76571 Gaggenau
Kontaktdaten:

Beitrag von dietert »

Uli, danke für deine schnelle Antwort.

Eigentlich Schade, dass die MS Software so begrenzt ist. Immerhin gibt es da Internet Radio, also mit Streams kann es eigentlich umgehen. Dachte, es gäbe vielleicht irgendeinen Trick, den ich übersehen hatte. Werde deinen Vorschlag mit dem SaviHost und ConvolverVST versuchen.

Eigentlich wäre mir eine Lösung ohne Windows viel lieber, z.B. mit einem Spartan6 oder Artix7 FPGA, wo man hinterher wirklich weiß, was das Ding macht. Der kleinste Artix7 enthält 90 DSP-Einheiten, die sich mit etwa 200 MHz takten lassen, Kosten 50 $. Das wäre also in der Summe eine FIR-Länge von 187500 bei 96000 KHz, also etwa 1 Sekunde in Stereo. Irgendwie verrückt. Ob sowas wirklich gut funktioniert, weiß man natürlich erst, wenn es fertig ist. Mit etwas Optimierung, also z.B. die von dir genannte "non-uniform partitioned convolution", sollte es auch eines der handelsüblichen Spartan6-Module tun, z.B. ein XC6SLX9, der hat schätzungsweise 8 % der genannten Rechenleistung und kostet um die 20 €.

Danke auch für den Hinweis auf den Zusammenhang zwischen Totzeit und Phasenkorrektur, das muss man wohl ausprobieren.
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4665
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

dietert hat geschrieben:Eigentlich wäre mir eine Lösung ohne Windows viel lieber, z.B. mit einem Spartan6 oder Artix7 FPGA, wo man hinterher wirklich weiß, was das Ding macht. Der kleinste Artix7 enthält 90 DSP-Einheiten, die sich mit etwa 200 MHz takten lassen, Kosten 50 $. Das wäre also in der Summe eine FIR-Länge von 187500 bei 96000 KHz, also etwa 1 Sekunde in Stereo. Irgendwie verrückt. Ob sowas wirklich gut funktioniert, weiß man natürlich erst, wenn es fertig ist. Mit etwas Optimierung, ...
Wenn Du den 50$-Conbvolver mit 187500 taps am Laufen hast, gib mir unbedingt Bescheid. :D Derzeit kenne ich als DSP-Lösung das OpenDRC, das FIR-Filter hat aber bloss 6144 taps Länge bei 48 kHz. Basis ist ein miniSharc. Tja, und das kleine "Etwas" bedingt leider einen "etwas" einen größeren Aufwand.

Grüsse
Uli
Bild
dietert
Aktiver Hörer
Beiträge: 533
Registriert: 24.11.2013, 10:31
Wohnort: 76571 Gaggenau
Kontaktdaten:

Beitrag von dietert »

Ja, ja, das dauert sicher noch was.
Man muss auch zwischen dem Preis des Chips und dem eines Boards bzw. Geräts unterscheiden. Das Spartan6-Modul von bitrecords, was ich hier habe, kostet zur Zeit 59 €, ein Artix7-Board von ztex soll demnächst kommen und wird bei etwa 110 € liegen.
Die Gerätepreise sind dann natürlich nochmal höher. Für mich geht es weniger um die Kosten, sondern um eine von Windows unabhängige, eigenständige Lösung.
Der Mehraufwand für die Optimierung hält sich übrigens in Grenzen, weil man sowieso parallelisieren muss, d. h. der Convolver ist in viele kleine Stücke zu zerlegen, die alle etwa denselben Rechenaufwand ergeben und gleichzeitig abgearbeitet werden.
Bild
dietert
Aktiver Hörer
Beiträge: 533
Registriert: 24.11.2013, 10:31
Wohnort: 76571 Gaggenau
Kontaktdaten:

Beitrag von dietert »

Erfolgsmeldung:
Streaming mit savihost war ein sehr guter Tip von Uli, nochmals Dank! Es ist dann convolverVST statt convolverWMP. War ein bischen probieren, bis ich die zu convolverVST passende Version (savihostnkx86.zip) und das richtige Setup beisammen hatte.

Es ist ein Notebook mit einem BCA2000. Jetzt kann ich z.B. von einem Sony Blueray-Player per Toslink in den BCA2000 gehen, bekomme das modifizierte Audio an den Line-Ausgängen des BCA2000 zurück und gehe damit direkt in die Aktivboxen. Es sind restaurierte Philips 22RH544, bei denen Passivweichen, Hoch- und Mitteltöner durch B&G Neo-9 PDR Magnetostaten ersetzt wurden. Der Sound ist großartig.

Die Performance hat etwas gelitten, das convolver/media/ir_cathedral.wav testfile mit 6,5 sekunden Länge läuft nicht mehr fehlerfrei durch, hat etwa alle 5 bis 10 Sekunden Rechenfehler. Aber die Lautsprecherkorrektur, die ich mit rephase erstellt habe, funktioniert bestens.
Bild
Antworten