Ich hatte vor Jahren meinen TV zunächst auch nur über meinen normale Stereoanlage laufen lassen und das war eigentlich nur für Musiksendungen zu gebrauchen. Wenn die Stereolautsprecher nicht sehr nahe am TV stehen ist das bei normalen Sendungen meiner Erfahrung nach nix.
Dann hatte ich eine Zeit lang eine primitive Mehrkanallösung in Betrieb. Dabei wurde ein Centerkanal schlicht durch aufaddieren der Stereosignale gebildet (= Mono), bandbegrenzt auf was um die 200Hz bis 5kHz. Für zwei hintere Lautsprecher wurden die Stereokanäle voneinander abgezogen und Hochpass gefiltert gen 10kHz. Das Ganze machet eine kleine Schaltung mit ein paar OPs im Fledderaufbau nebst zusätzlicher Stereoendstufe aus dem KFZ-Bereich für Center und Rear. Das konnte ich beim TV gucken zuschalten und es funktionierte wunderbar. Der Umstieg auf mein heutiges, 'echtes' Surround System brachte klang- und soundeffekttechnisch erschreckend wenig. Eigentlich stieg dadurch nur der WAF.
Die Herleitung der zusätzlichen Kanäle sollte also nicht das Problem sein. Man müsste halt nur eine Stelle finden, wo man ein entsprechendes Stück Software zwischen das (von AC32CH bzw. MPEG2) nach PCM dekodierte Zweikanal Audio und die Ausgabe der Soundkarte quetschen kann.
Leitet der VDR via Option -a eigentlich wirklich nur AC3-Streams aus oder jedweden Ton (also auch MPEG2 und PCM)?
Zu der 'echten' Matrixdekodierung a la Dolby konnte ich via Google erstaunlicher Weise nichts fundiertes finden.
[ANNOUNCE] Plugin 'sndctl-0.1.3' - Soundkartensteuerung in Abhängigkeit von der VDR Lautstärke
- NeverWise
- Geschlossen
-
-
-
Ach du Sch..., das bring ich in meinem derzeitigen Zustand nicht durchdacht ... und selbst wenn, was nützt es uns?
Der VDR gibt den "gewöhnlichen" Stereo-Stream nicht her, nur den AC3-Strom. Ich hab' noch nicht in den Sourcen gesucht, ob das ein hardware- oder programmiertechnisches Problem ist. Ich denke mal letzteres, denn der Sinn der Option -a kann nur sein, Ton zu machen, den die FF-Karte von sich aus nicht kann. Der schnöde Stereo-Stream müßte sich doch exakt genauso rausfiltern lassen, nur, was machen wir dann damit?
-
-
Ich fürchte, da müßte ganz was eigenes ran, AC3 hat ja mit Dolby Pro Logic technisch kaum was gemein...
Ich fang' jetzt demnächst mal ganz unten an, beim VDR nämlich.
-
Zitat
Original von NeverWise
Ich fürchte, da müßte ganz was eigenes ran, AC3 hat ja mit Dolby Pro Logic technisch kaum was gemein...Ich fang' jetzt demnächst mal ganz unten an, beim VDR nämlich.
Jain, man brauchte halt die Stelle, wo der Stereoton (ggf.) dekodiert (als PCM) vorliegt. Der kann ja als PCM (theoretisch), MPEG2 oder eben als AC3/2CH vorliegen. Dann halt PCM von 2CH auf 6CH aufbohren und raus damit an die Soundkarte.
Wenn man dem VDR den Ton immer a la Option -a entlocken kann (würde erst mal gucken, was da derzeit wirklich kommt, also z.B. auch bei AC3/2CH?) dann wäre doch der a52dec ein naheliegender Einstieg. Da halt ggf. das dekodieren von MPEG2 und die Matrix für 2CH auf 6CH ergänzen (im ersten Ansatz vieleicht nur mal Center = [L + R] / 2 und Rear = L - R) und gut!? Geeignete Aufblähalgorithmen, auch für den Subwooferchanel und Delays & Co., sollten sich doch herbeizaubern lassen, wenn man die Stelle zum Einklinken erst mal hat - oder? -
Prima, theoretisch hätten wir es dann erstmal im Griff ...
(das mit dem "herbeizaubern" gefällt mir besonders ;D)
-
Zitat
Original von NeverWise
Prima, theoretisch hätten wir es dann erstmal im Griff ...(das mit dem "herbeizaubern" gefällt mir besonders ;D)
... na und die praktische Umsetzung machst doch du - oder? Bis wann genau? -
Hallo NeverWise,
Hier das ganze nochmal Ausführlich.
ZitatHallo,
hier gibts das sound-control Plugin von NeverWise.
Ist sehr nützlich um an einem analogen 5.1-System an der Soundkarte
die Lautstärke am VDR zu ändern.Kurze Beschreibung aus dem Wiki:
Zitat
Dieses Plugin wurde inspiriert und neuentwickelt aus dem avolctl-plugin von Martin Prochnow (vielen Dank dafür). Es steuert die Lautstärke verschiedener Regler der Soundkarte in Abhängigkeit von der Lautstärkeregelung des VDR.Diese Anforderung allein ist durch das avolctl-plugin bereits gut abgebildet. Darüberhinaus kann es jedoch verschiedene Wege geben, wie die Regler der Soundkarte von der VDR-Lautstärke abhängen. Diese Wege (oder Profile) nenne ich Soundsets.
Ein Soundset für 'normales' Stereo unterscheidet sich von einem Dolby Digital Soundset, sprich, andere Soundkarten-Regler bewegen sich, wenn sich die VDR-Lautstärke ändert.
Mit sndctl lassen sich beliebig viele Soundsets anlegen, zwischen denen aus dem VDR-Menü umgeschaltet werden kann.
http://www.vdr-wiki.de/wiki/index.php/Sndctl-pluginAußerdem noch ac3dec zum Decodieren von 5.1 Streams.
Nach dem Donwload nur noch in die richten Verzeichnisse entpacken:
tar xvzf ac3dec.tgz -C /usr/local/bin
tar xvzf vdr-sndctl-0.1.3.tgz -C /usr/vdr/plugins-1.4.4!!! Update !!!
Leider speichert das Plugin die erstellten Soundsets nicht ab. Die Ursache konnte ich leider nicht finden. Wer das Plugin trotzdem nutzen möchte kann diese "workaround" benutzen:Die Einstellungen für die Soundsets werden in der /etc/vdr/setup.conf gespeichert (oder eben nich gespeichert Sad ). Man kann sie dort nach einem "stopvdr" manuell eintragen:
Beispiel:
sndctl.s1001_Master = +0
sndctl.s1001_Bass = =40
sndctl.s1001_Center = =0anstatt der 1001 muss die ID des Soundsets eingetragen werden, sie steht ebenfalls in der setup.conf (z.B. sndctl.s1001_name = Default).
HowTo zum Thema 5.1 mit analogen Boxen:
http://www.easy-vdr.de/forum/index.php?topic=1998.0Problem ist wie in der PN geschrieben, das Plugin merkt sich unter EasyVDR die Einstellungen nicht.
was machen wir falsch, oder wo können wir ansetzen zur Problem Behebung.
lg und Danke für die Hilfe prudentis
-
siehe PN ... bitte mehr Input
-
Hallo,
die Logs kommen heute Abend.
lg prudentis
-
Hallo NeverWise,
hab jetzt mal das Plugin selber Kompiliert:
Code
Alles anzeigen:/usr/local/src/VDR/PLUGINS/src/sndctl# make clean all g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"sndctl"' -I/usr/src/linux/include -I/usr/local/src/VDR/include sndctl.c g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"sndctl"' -I/usr/src/linux/include -I/usr/local/src/VDR/include alsa.c alsa.c: In constructor `cAlsa::cAlsa()': alsa.c:47: Warnung: suggest parentheses around assignment used as truth value alsa.c: In member function `virtual void cAlsa::Volumes()': alsa.c:161: Warnung: suggest parentheses around assignment used as truth value g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"sndctl"' -I/usr/src/linux/include -I/usr/local/src/VDR/include i18n.c g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"sndctl"' -I/usr/src/linux/include -I/usr/local/src/VDR/include mainmenu.c g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"sndctl"' -I/usr/src/linux/include -I/usr/local/src/VDR/include menuitems.c g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"sndctl"' -I/usr/src/linux/include -I/usr/local/src/VDR/include mixer.c g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"sndctl"' -I/usr/src/linux/include -I/usr/local/src/VDR/include setup.c g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"sndctl"' -I/usr/src/linux/include -I/usr/local/src/VDR/include setupmenu.c g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"sndctl"' -I/usr/src/linux/include -I/usr/local/src/VDR/include soundman.c g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"sndctl"' -I/usr/src/linux/include -I/usr/local/src/VDR/include soundset.c soundset.c: In constructor `cSoundSet::cSoundSet(cMixer*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)': soundset.c:43: Warnung: suggest parentheses around assignment used as truth value g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"sndctl"' -I/usr/src/linux/include -I/usr/local/src/VDR/include soundsetmenu.c g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"sndctl"' -I/usr/src/linux/include -I/usr/local/src/VDR/include status.c g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -shared sndctl.o alsa.o i18n.o mainmenu.o menuitems.o mixer.o setup.o setupmenu.o soundman.o soundset.o soundsetmenu.o status.o -lasound -o libvdr-sndctl.so
dabei kommt die obige Meldung. Problem oder nicht ?
Er erstell die Lib aber trotzdem:
(ungestrippt)
BTW: VDR=1.44 Kernel=2.6.18.3
lg prudentis
-
mit der selber Kompilierten Version, kann ich zwar Soundsets anlegen, aber nichts Konfigurieren. Speichern macht er aber, zumindest das neu angelegte Soundset.
lg prudentis
-
Hier das Log beim starten
Code
Alles anzeigenlogread |grep snd Jun 9 09:27:18 (none) user.info vdr: [3121] starting plugin: sndctl Jun 9 09:27:18 (none) user.debug vdr: [3121] sndctl (cSoundMan::DefaultSoundSetID): Trying to set default sound set to ID 's1836'. Jun 9 09:27:18 (none) user.info vdr: [3121] sndctl (cSoundMan::DefaultSoundSetID): Default sound set is 's1836'. Jun 9 09:27:18 (none) user.info vdr: [3121] sndctl (cSoundMan::SetSoundSet): Active sound set is now 's1836'. Jun 9 09:27:18 (none) user.debug vdr: [3121] sndctl (cMixer::Update): Updating controls with sound set 'digitainer'. Jun 9 09:27:18 (none) user.info vdr: [3121] sndctl (cSoundMan::SetVolume): Volume goes to 0 (of 255). Jun 9 09:27:18 (none) user.info vdr: [3121] sndctl (cSoundSet::Volume): Volume for soundset 'digitainer' goes to 0%. Jun 9 09:27:18 (none) user.debug vdr: [3121] sndctl (cMixer::Volume): Volume goes to 0%. Jun 9 09:27:18 (none) user.debug vdr: [3121] sndctl (cSetupSndctl::Set): Receiving parameter 'DefaultSoundSet' with value 's1836'. Jun 9 09:27:18 (none) user.info vdr: [3121] sndctl (cStatusSndctl::SetVolume): Received volume from VDR: '150'. Jun 9 09:27:18 (none) user.info vdr: [3121] sndctl (cSoundMan::SetVolume): Volume goes to 150 (of 255). Jun 9 09:27:18 (none) user.info vdr: [3121] sndctl (cSoundSet::Volume): Volume for soundset 'digitainer' goes to 58%. Jun 9 09:27:18 (none) user.debug vdr: [3121] sndctl (cMixer::Volume): Volume goes to 58%. Jun 9 09:27:22 (none) user.notice pci.agent[4032]: snd-via82xx: loaded successfully
lg prudentis
-
a) die 'warnings' beim Kompilieren
Der Compiler auf meinem System (gcc 3.4.1) bringt diese Warnungen nicht, sie sind aber auch nicht wichtig, die Programmlogik ist davon nicht betroffen.b) das Log
... und jetzt noch das vom Beenden des VDR und vielleicht einen komplettes Log:
- Starten des VDR
- Anlegen eines neuen Soundsets
- Versuch, dieses zu konfigurieren
- VDR beenden (oder neu starten)c) VDR 1.4.4
Nun, den habe ich ausgerechnet nicht getestet, ich schau 'mal, ob ich das nachholen kann.d) Konfigurieren
Was heißt, du kannst nichts konfigurieren? Öffnet sich das Konfigurationsmenu gar nicht erst oder kannst du darin keine Werte verändern oder geht das schon, wird aber nicht übernommen? Oder wie oder was? -
Hallo,
Zitata) die 'warnings' beim Kompilieren
Der Compiler auf meinem System (gcc 3.4.1) bringt diese Warnungen nicht, sie sind aber auch nicht wichtig, die Programmlogik ist davon nicht betroffen.
das hört sich gut an !Zitatc) VDR 1.4.4
Nun, den habe ich ausgerechnet nicht getestet, ich schau 'mal, ob ich das nachholen kann.
nach Murphy, ist das Normal !Zitatd) Konfigurieren
Was heißt, du kannst nichts konfigurieren? Öffnet sich das Konfigurationsmenu gar nicht erst oder kannst du darin keine Werte verändern oder geht das schon, wird aber nicht übernommen? Oder wie oder was?ich kann zwar das Soundset digitainer anlegen, jedoch keine Werte eintragen, da gar nichts angezeigt wird, unterhalb oder im Soundset !
ich mach das mit den Logs morgen, heute keine Chance wegen WAF !
lg prudentis
-
Zitat
Originally posted by prudentis
ich kann zwar das Soundset digitainer anlegen, jedoch keine Werte eintragen, da gar nichts angezeigt wird, unterhalb oder im Soundset !Ahh, das kann ich wahrscheinlich erklären. In der Konfiguration eines Soundsets werden nicht grundsätzlich alle Regler angezeigt, sondern nur solche, die sich auch regeln lassen. Viele Soundkarten (bzw. deren ALSA-Treiber) bieten noch viel mehr (z.B. Regler für Input-Lautstärken, verschiedene Schalter usw.)
Ich diagnostiziere also mal, dass das Plugin bei der Abfrage der möglichen Regler nix findet, was ihm sinnvoll vorkommt.
Hm, wie können wir das testen? Geht bei dir der 'alsamixer' und was steht da so?
Prinzipiell sollte dieses Problem aber nichts mit dem Problem des nicht speichern zu tun haben ... oder ist es genau das (ein neu angelegtes Soundset ist ja leer)? Dann wäre es kein EasyVDR-Problem, sondern ein hardwareabhängiges. Oder wie oder was?
-
Hi,
Nachdem ich das plugin kompiliert habe, bekomme ich immer die Meldung, dass das Plugin wegen "really binary incompatibilty" nicht geladen werden konnte.
Kompiliert habe ich es anch der Anleitung im wiki:
cd /root/vdr-1.4.7/PLUGINS/src
tar xzf vdr-sndctl-<VERSION>.tgz
ln -sf sndctl-<VERSION> sndctl
make plugins
make install-pluginswenn ich es dann manuell per -P sndctl starte, wird das plugin gestartet.
Über die runvdr bringt er dann jedochCodeWARNING: The following plugins have been left out due to really binary incompatibility: sndctl.
Wie kann ich das Plugin zum laufen bringen ?
Gruß
DonUlfo
-
"really binary incompatibilty"?
Die Fehlermeldung kenne ich leider nicht, ich will mal sehen, ob ich das irgendwie nachvollziehen kann. (Kann ein paar Tage dauern, sorry.)
-
Kein Problem, ich kann warten...
Habe wie bereits gesagt debian 4.0 drauf, vdr1.4.7 selbst kompiliert...
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!