PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Alsa 5.1: Kanäle per Software vertauschen?



iggy
07.01.07, 14:04
Hallo!

Ich habe etwas vor. Auf Grund meiner Einrichtung und meines Zimmers hab ich mein 5.1-System auf eine bestimme Art aufgestellt. Nun kommt es zu der Situation, dass ich beim Filmschauen eine andere Position im Zimmer einnehme und es dadurch praktischer wäre die Boxen anders anzuordnen. Das ist aber umständlich bzw. hab ich auf sowas einfach keinen Bock. Nun meine Frage:

Ist es möglich (bzw habe ich mal sowas gehört) die Kanäle mit Alsa zu vertauschen? Das heißt ich möchte den Center nach links "verschieben" - konkret: Center Ton soll aus der FL-Box kommen, der FL-Ton aus der RL-Box usw. Also die Kanäle alle um eins nach links versetzen.

Ich wäre über Anregungen, Anleitungen und Hilfe zu diesem Thema sehr erfreut.

meine Soundkarte ist eine Audigy 2 ZS, sie funktioniert einwandfrei mit Alsa.

mfg iggy

ThorstenHirsch
07.01.07, 14:12
Nutzt Du denn die 5.1-Ausgänge (Klinke) Deiner Soundkarte oder hast Du einen AV-Receiver mit DD/DTS-Decoder über einen digitalen Ausgang angeschlossen? Letzteres: nein, da kannst Du die Kanäle nicht tauschen. Ersteres: ja, dazu musst Du eine .asoundrc in $HOME erstellen. Die Syntax ist hier im Forum auch schonmal beschrieben worden, Du findest aber auch auf der Gentoo-Seite einiges darüber.

iggy
08.01.07, 00:52
ja ich benutze die klinken-ausgänge. wenn ich nen receiver nutzen würde hätte ich einen der das kann! :) das sind so kleine details die ein solches gerät können sollte in meinen augen.

nun zum eigentlichen thema. das freut mich, dass es funktioniert. da werd ich mich erstmal im gentoo-forum, wiki darüber informieren. finde ich nichts, komme ich nochmal hierauf zurück. ;)

danke soweit, mfg iggy

iggy
08.01.07, 14:02
so, ich hab ja einiges gefunden. so weiß ich jetzt, dass ich die funktion ttable nutzen muss. wie der syntax und so weiter ist weiß ich. hier einfach mal das file, so wie ich es bis jetzt habe:

pcm.emu10k1 {
type hw
card 0
}

ctl.emu10k1 {
type hw
card 0
}

pcm.spin {
slave.pcm { # (Sklave von PCM)
type route # Die Funktionsart(en) des Plugins
slave.pcm "hw:0" # Der SKlave der Karte(Device) "hw:0" -> Übergeordnetes
# Plugin das benutzt wird.
slave.channels 6 # Dieser "Sklave" verwendet 6 Kanäle !!!(wichtig!)
ttable.0.2 1 # Front-Left (0) wird auf Kanal Rear-Left (2) gelegt
ttable.1.4 1 # Front-Right (1) wird auf Kanal Center (4) gelegt
ttable.2.3 1 # Rear-Left (2) wird auf Kanal Rear-Right (3) gelegt
ttable.3.1 1 # Rear-Right (3) wird auf Kanal Front-Right (1) gelegt
ttable.4.0 1 # Center (4) wird auf Kanal Front-Left (0) gelegt
}
}


nun folgende fragen: wie kann ich jetzt erstmal zum beispiel im vlc diese funktion spin nutzen. andere frage wäre, verliere ich jetzt nicht einen kanal? weil ich überschreibe ja zb mit dem center den linken kanal. nun kopier ich den linken kanal auf den links-hinten. hab ich dann auf dem links-hinten den center-kanal? ich hoffe man versteht, was ich meine. wie schon anfangs gefragt - hat das schon einmal einer so ähnlich erfolgreich gemacht und kann dieser mir hier bitte weiterhelfen?! :)

iggy
12.01.07, 15:52
wo sind all die leute, die mir gerne helfen wollen? :confused:

ThorstenHirsch
12.01.07, 16:55
Ich glaube nicht dass Du im VLC die Funktion pcm.spin nutzen kannst. Also ich hätte es so gelöst, dass ich 2 .asoundrc-Dateien schreibe:

- .asoundrc.spinned
- .asoundrc.normal

Und dann legst Du Dir 2 Hotkeys an, die einen Symlink auf die beiden Dateien erzeugen, also z.B.

- strg+n => rm $HOME/.asoundrc; ln -s $HOME.asoundrc.normal $HOME.asoundrc
- strg+s => rm $HOME/.asoundrc; ln -s $HOME.asoundrc.spinned $HOME.asoundrc

So ähnlich hab ich das mit meinen Lautsprechern gemacht - allerdings habe ich da 1 Skript geschrieben, das zuerst nachschaut wohin der Symlink aktuell zeigt, ihn löscht und dann den Symlink auf die andere Datei anlegt. So brauche ich nur 1 Hotkey um die config zu wechseln.

Kound
13.01.07, 18:02
Mal eine Frage:
Wie kann ich es einstellen, dass ich mit einem Mixer Kontroller alle Kanäle kontrollieren kann?
Weil momentan wird durch das verschieben des Master Reglers nur die Musik (Stero) auf den Front Lautsprechern leiser wird.
Wie krieg es ich es auf allen hin?

ThorstenHirsch
13.01.07, 18:21
Weiß ich nicht, aber mach' ein eigenes Thema auf, Deine Frage hat schließlich nichts mehr mit der Ursprungsfrage zu tun.

Ede
13.01.07, 21:11
http://www.linuxforen.de/forums/showthread.php?t=228804

iggy
16.01.07, 00:50
Ich glaube nicht dass Du im VLC die Funktion pcm.spin nutzen kannst. Also ich hätte es so gelöst, dass ich 2 .asoundrc-Dateien schreibe:

- .asoundrc.spinned
- .asoundrc.normal

Und dann legst Du Dir 2 Hotkeys an, die einen Symlink auf die beiden Dateien erzeugen, also z.B.

- strg+n => rm $HOME/.asoundrc; ln -s $HOME.asoundrc.normal $HOME.asoundrc
- strg+s => rm $HOME/.asoundrc; ln -s $HOME.asoundrc.spinned $HOME.asoundrc

So ähnlich hab ich das mit meinen Lautsprechern gemacht - allerdings habe ich da 1 Skript geschrieben, das zuerst nachschaut wohin der Symlink aktuell zeigt, ihn löscht und dann den Symlink auf die andere Datei anlegt. So brauche ich nur 1 Hotkey um die config zu wechseln.

und alsa registriert das sofort und stellt meine kanäle "on-the-fly" um? :confused:

ist meine beispiel-datei denn soweit in ordnung bezogen auf das von mir angemerkte problem?!

ThorstenHirsch
16.01.07, 12:08
on-the-fly? Hm... gute Frage, hab' ich noch nicht getestet. Ich denke eher, dass es umgestellt wird sobald der Soundkanal neu geöffnet wird - also notfalls vlc schließen und wieder öffnen.

Du musst irgendwie noch die Funktion spin aufrufen.

iggy
16.01.07, 13:24
ich habe jetzt diese config, mit der funktioniert der speaker-test (alsa-utils) einwandfrei. die komplette ausgabe ist um einen kanal nach links verschoben. nur ist das auch das einzige was funktioniert. mpd spielt jetzt nur noch stereo, vlc und konsorten ebenfalls. eigentlich gibt die audigy2zs ja automatisch alles in 5.1 aus. schaue ich im vlc eine dvd wird diese immer noch normal ausgeben, das heißt nicht um eins nach links verschoben. :(

weiß aber auch net mehr weiter...

hier meine config, mit der der speaker-test (
$ speaker-test -c6) einwandfrei funktioniert.

pcm.!default {
type plug
slave {
pcm surround51
}
route_policy default
slave.channels 6 # Dieser "Sklave" verwendet 6 Kanäle !!!(wichtig!)
ttable.0.2 1 # Front-Left (0) wird auf Kanal Rear-Left (2) gelegt
ttable.1.4 1 # Front-Right (1) wird auf Kanal Center (4) gelegt
ttable.2.3 1 # Rear-Left (2) wird auf Kanal Rear-Right (3) gelegt
ttable.3.1 1 # Rear-Right (3) wird auf Kanal Front-Right (1) gelegt
ttable.4.0 1 # Center (4) wird auf Kanal Front-Left (0) gelegt
ttable.5.5 1 # LFE (5) wird bleibt auf Kanal LFE (5)
}

mfg iggy

iggy
16.01.07, 13:31
ok, hab gerade herausgefunden, wenn ich den speaker-test mit dem surround51-plugin starte

$ speaker-test -Dsurround51 -c6
dann nimmt er auch die normalen kanäle, also ebenfalls nicht verschoben. hat jemand hier eine ahnung wie man das ganze nun realisieren kann. oder einen tipp, an wen ich mich wenden kann.

vielen dank, mfg iggy

ThorstenHirsch
17.01.07, 10:55
Schade, ich dachte so klappt es. Du kannst ja mal auf der mailinglist/Forum/IRC/was-auch-immer-die-haben von alsa nachfragen. www.alsa-project.org

spack0r
14.03.07, 09:17
Hallo Zusammen,

hatte das gleiche Problem.
Meine Lösung sieht folgendermaßen aus:
1. In der .alsounrc ein virtuelles Device erstellen:


pcm.spin {
type route
slave.pcm surround71
slave.channels 8
ttable.0.2 1 #links --> hinten links
ttable.1.0 1 #rechts --> vorne links
ttable.0.3 0.75 #links --> hinten rechts mit Dämpfung
ttable.1.1 0.75 #rechts --> vorne rechts mit Dämpfung
ttable.0.5 0.5 #links --> basskanal mit Dämpfung
ttable.1.5 0.5 #rechts --> basskanal mit Dämpfung
ttable.0.6 0.3 #links --> mitte links mit Dämpfung
ttable.1.6 0.3 #rechts --> mitte links mit Dämpfung
}


Hierbei wird noch ein Stereo-Upmix gemacht.

2. Testen, ob Alles ordentlich wiedergegeben wird:
Gib Deinem speaker-test als Parameter das virtuelles spin Device mit:

speaker-test -D spin -c 2

3. Test bestanden? Dann kannst Du das spin Device in deinen Sound-Anwendungen verwenden
Mplayer:

mplayer -ao alsa:device=spin test.avi

xmms:
In den Einstellungen als Ausgabe-Plugin Alsa auswählen. Und in der Alsa-Konfiguration als Audio-Gerät spin eintragen.

Diese Konfiguration fuktioniert für meine 7.1 Anlage sehr gut und sollte sich ohne Probleme auf andere Soundinstallationen übertragen lassen.
Leider kann ich Dir nicht sagen, wie Du das Ganze im VLC verwenden kannst. Sollte sich aber nach einigem Stöbern in der Dokumentation rausfinden lassen.

Hoffe ich konnte weiterhelfen:)
Links:
http://wiki.ubuntuusers.de/.asoundrc
http://alsa.opensrc.org/index.php?title=.asoundrc