Sndctl-plugin

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Beschreibung

Autor: Thomas Hildebrandt

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.

Status

Version:

  • 0.0.1

Initiale Version (Konfiguration der Soundsets nur manuell)

Kompiliert und getestet unter:


Bedienung

Im VDR-Hauptmenü gibt es einen Eintrag Soundcontrol. Dieser liefert eine Liste der derzeit konfigurierten Soundsets; das jeweils gewünschte läßt sich durch Ok aktivieren.


Hardwareanforderungen

  • von ALSA unterstützte Soundkarte

Softwareanforderungen

Installation

Source

cd $SOURCEDIR
tar xzf vdr-sndctl-<VERSION>.tgz
ln -sf sndctl-<VERSION> sndctl
make plugins
make install-plugins


Konfiguration

Einstellungen

Es gibt in Version 0.0.1 noch keine Konfigurationsseite für die Soundsets... sorry. Alle Konfigurationen müssen in VDR's setup.conf getan werden. (Tu das nur, wenn VDR NICHT läuft, alle Arbeit könnte sonst umsonst gewesen sein.)

Beispiel:

sndctl.s1000_name = Aus
sndctl.s1001_name = Stereo
sndctl.s1001_Bass = =40
sndctl.s1001_Center = =0
sndctl.s1001_Front = =0
sndctl.s1001_LFE = =0
sndctl.s1001_Line = =80
sndctl.s1001_Master = =80
sndctl.s1001_PCM = =0
sndctl.s1001_Surround = =0
sndctl.s1001_Treble = =60
sndctl.s1002_name = Movie
sndctl.s1002_Bass = =40
sndctl.s1002_Center = +0
sndctl.s1002_Front = +0
sndctl.s1002_LFE = -20;1
sndctl.s1002_Line = =0
sndctl.s1002_Master = =100
sndctl.s1002_PCM = =74
sndctl.s1002_Surround = -20;1
sndctl.s1002_Treble = =60

Du siehst die Definition dreier Soundsets mit den Namen 'Aus', 'Stereo' und 'Movie'.

Ein wenig Erklärung:

  • sndctl.s1001_name = Stereo
 Das ist der Name für das Soundset mit der ID 's1001'.
  • sndctl.s1001_Master = =80
 Konfiguration fuer den Soundkarten-Regler 'Master'
 Erklaerung: bei jeder Aenderung der VDR Lautstaerke wird der Regler Master
             der Soundkarte auf 80% seines Maximalwertes gesetzt
  • sndctl.s1002_Center = +0
 Konfiguration fuer den Soundkarten-Regler 'Center'
 Erklaerung: bei jeder Aenderung der VDR Lautstaerke wird der Regler Center
             der Soundkarte auf den Wert der VDR Lautstaerke plus 0 gesetzt
             (sprich: die Lautstaerke folgt direkt der VDR Lautstaerke)
  • sndctl.s1002_LFE = -20;1
 Konfiguration fuer den Soundkarten-Regler 'LFE' (Bassbox ;-) )
 Erklaerung: bei jeder Aenderung der VDR Lautstaerke wird der Regler LFE
             der Soundkarte auf den Wert der VDR Lautstaerke minus 20 gesetzt,
             aber geht nie unter den Wert 1 (nur bei VDR Lautstaerke 0 geht
             der LFE auch auf 0)


Tipps

  • die Namen der Soundkartenregler gibt's z.B. mit 'alsamixer'
  • die VDR Lautstärke geht von 0 bis 255; sndctl rechnet mit 0 bis 100
  • die folgenden Operationen (erstes Zeichen) sind möglich:
    • ~ > gar nichts tun (so ein Regler wird aus den Parametern entfernt)
    • = > Regler wird immer auf denselben Wert gesetzt (gut für 'Bass' und 'Treble' oder um einen Regler "still"zulegen)
    • + > Regler bekommt die VDR Lautstärke, erhöht um diesen Wert
    • - > Regler bekommt die VDR Lautstärke abzüglich dieses Wertes
    • % > Regler bekommt x Prozent vom VDR Lautstärke-Wert
  • falls dein VDR nicht mit root-Rechten läuft, benötigt der VDR user Rechte für den Zugriff auf den Mixer der Soundkarte; evt. muss der VDR user Mitglied der Gruppe 'audio' sein


Links

  1. Download
  2. ALSA
In anderen Sprachen