PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : opensuse- nforce2- kein5.1



Schorsch89
08.11.07, 17:46
Hallo erstmal,
ich bin hier ganz neu und das auch in der linuxwelt.
Habe mich zwar schon ein wenig reingefitzt, aber ich verzweifel am sound.
Habe dazu (so scheints mir) das komplette internet inklusive diesem Forum durchsucht, vieles ausprobiert und bin kläglich gescheitert.

Mein Problem: Beim 5.1 sound geben nur die frontlautsprecher wieder.

in diesen ganzen Mixern (KMIX, Alsamixer, ...) habe ich folgendes eingestellt:

Ausgänge:
-alle hochgedreht und aktiviert

Eingänge:
-3DControl- center/depth aktiviert
-Line/CD/Mic/Video/Phone/Aux/capture hochgedreht und aktiviert
-IEc958 PLayback AC97-SPSA hochgedreht und aktiviert

Schalter:
-3D Control an
-Surround Down Mix an
-Center/LFE Down Mix an
-Mic Boost/IEC958/MIX/Mix Mono aus
-Analog to IEC958 Output an
-Duplicate Front an
-Exchange Center/LFE aus
-External Amplifier an
-Swap Surround Slot aus

Surround Jack Mode - shared
Mic select -Mic1
Mono Output Select -Mix
Channel Mode - 6ch

Die Dickgedruckten optionen funktionieren meiner meinung nach nicht.
Die Soundquelle ist mp3 als stereo, also ist es eigentlich richtig, dass nur vorn musik kommt. Aber irgendwie müsste doch der Mixer ein Center und lfe kanal erstellen können.
Durch duplicate Front hab ich wenigstens auf den Hinteren Boxen sound.

Mein Computer:
OS: Opensuse 10.2 KDE 3.5.5 Kernel 2.6.18.2

CPU: Athlon XP 3000+
MB: A7N8X-deluxe
GPU: Geforce FX 5600
RAM: 1024MB

Sound: Onboard Nvidia nForce2 Realtec chipsatz ALC650F



Über Hilfe würde ich mich sehr freuen und bitte entschuldigt, dass sich das Tjema vielleicht wiederholt. Gruß Georg

Michieru
08.11.07, 23:50
Hiho

Fast die selbe onboard soundkarte hab ich auch ^^ "Abit nfs-2" oder so ähnlich "lang net mehr die Verpackung angeschaut"
Damals hab ich auch endlos lange mit dem Sound rumprobiert bis ich es hinbekommen hab. Allerdings kann ich dir freudig mitteilen das es eine Lösung gibt (sogar eine inkl. Subwoofer).

Die Lösung basiert auf alsa und der dortigen Möglichkeit die Soundausgabe durch etliche Filter laufen zu lassen. Hört sich schwer an ist aber im enteffekt recht einfach.

Als erstes braucht man die Konfiguration die im home verzeichniss als .asoundrc abgespeichert wird. Im folgende meine .asoundrc die mit meinerm Nforce2 problemlos funktioniert. (Siehe Code weiter untern)

Als nächstes muss man den Soundprogramm / Spiel / etc sagen das es nicht den standard PCM von alsa benutzen soll sondern unseren selbst definierten. In den meisten fällen geht man dazu in das entsprechende Programm und stellt die Soundausgabe auf "ALSA" um und gibt folgende PCM devices an.

plug:dmix10to51 (für Mono -> 5.1)
plug:dmix20to51 (für Stereo -> 5.1)
plug:dmix40to51 (für Surround -> 5.1)

Zudem gibt es dann noch die realen devices für echte Stereo oder echtes 5.1
plug:mono (für mono - In meiner Konfig allerdings mono -> stereo)
plug:stereo (für stereo)
plug:surround40 (für 4.0 Sound)
plug:surround51 (für 5.1 Sound)

Wenn die Datei im Homeverzeichniss liegt und dein Soundprogramm eingestellt ist musst du allerdings Linux neu starten bzw zumindestens deine Sitzung beenden und neu anmelden. Danach sollte 5.1 auch für Stereo & co funktionieren. Wichtig Es kann sein das du in KMix den Channel-Mode auf 6ch stellen musst.
Im übrigen kannst du mit z.B. "speaker-test -D dmix20to51 -c 2" oder "speaker-test -D dmix40to51 -c 4" die einzelnen PCMs testen.

Es könnte sein das du mit den Bindings im Wiedergabe Device noch rumprobieren musst. 0 0 / 1 1 / 2 4 / 3 5... usw (das bedeutet Kanal 0 soll zur ausgabe 0 oder Kanal 3 soll zur Ausgabe 5... usw) Je nachdem wie du deine Lautsprecher am rechner angeschlossen hast.
.asoundrc

#
# Aufnahme device
#
pcm.capture {
type dsnoop # Aufnahme Plugin
ipc_key 2048 # Einzigartiger Key
ipc_perm 0666 # Rechtezuweisung
slave.pcm "hw:0" # Soundkarte
slave {
period_time 0
period_size 1024
buffer_size 4096
rate 44100 # Aufnahme Frequenz
}
}

#
# Wiedergabe device
#
pcm.playback {
type dmix # Wiedergabe Plugin
ipc_key 1024 # Einzigartiger Key
ipc_perm 0666 # Rechtezuweisung
slave.pcm "hw:0" # Soundkarte
slave {
channels 6 # Kanaele
period_time 0
period_size 1024
buffer_size 4096
}
bindings { # Kanal -> Lautsprecher Zuweisung
0 0 # 0->0 = Front Left
1 1 # 1->1 = Front Right
2 4 # 2->4 = Rear Left
3 5 # 3->5 = Rear Right
4 2 # 4->2 = Center
5 3 # 5->3 = LFE
}
}

#
# Duplex device
#
pcm.duplex {
type asym # Duplex Plugin
playback.pcm "playback" # Wiedergabe Device
capture.pcm "capture" # Aufnahme Device
}

#
# Default device (Gebunden an Duplex)
#
pcm.!default {
type plug
slave.pcm "duplex"
}

#
# OSS Wrapper (fuer aoss)
#
pcm.dsp "default" # /dev/dsp
pcm.dsp1 "default" # /dev/dsp1
ctl.dsp { # OSS ctl
type plug
slave.pcm "hw:0"
}
ctl.mixer { # OSS Mixer
type plug
slave.pcm "hw:0"
}


#
# Downmix Devices
#
#
# Mono to Surround51
#
pcm.dmix10to51 {
type route
slave.pcm "default"
slave.channels 6
# Front channel
ttable.0.0 1
ttable.0.1 1
# Rear channel
ttable.0.2 1
ttable.0.3 1
# Center channel
ttable.0.4 1
# LFE channel
ttable.0.5 1
}

#
# Stereo to Surround51
#
pcm.dmix20to51 {
type route
slave.pcm "default"
slave.channels 6
# Front channel
ttable.0.0 1
ttable.1.1 1
# Rear channel
ttable.0.2 1
ttable.1.3 1
# Center channel
ttable.0.4 0.5
ttable.1.4 0.5
# LFE channel
ttable.0.5 0.5
ttable.1.5 0.5
}

#
# Surround40 to Surround51
#
pcm.dmix40to51 {
type route
slave.pcm "default"
slave.channels 6
# Front channel
ttable.0.0 1
ttable.1.1 1
# Rear channel
ttable.2.2 1
ttable.3.3 1
# Center channel
ttable.0.4 0.25
ttable.1.4 0.25
ttable.2.4 0.25
ttable.3.4 0.25
# LFE channel
ttable.0.5 0.25
ttable.1.5 0.25
ttable.2.5 0.25
ttable.3.5 0.25
}

#
# Clean Devices
#
#
# Mono
#
pcm.!mono {
type route
slave.pcm "default"
slave.channels 6
# Front channel
ttable.0.0 1
ttable.0.1 1
}

#
# Stereo
#
pcm.!stereo {
type route
slave.pcm "default"
slave.channels 6
# Front channel
ttable.0.0 1
ttable.1.1 1
}

#
# Surround40
#
pcm.!surround40 {
type route
slave.pcm "default"
slave.channels 6
# Front channel
ttable.0.0 1
ttable.1.1 1
# Rear channel
ttable.2.2 1
ttable.3.3 1
}

#
# Surround51
#
pcm.!surround51 {
type route
slave.pcm "default"
slave.channels 6
# Front channel
ttable.0.0 1
ttable.1.1 1
# Rear channel
ttable.2.2 1
ttable.3.3 1
# Center channel
ttable.4.4 1
# LFE channel
ttable.5.5 1
}


NACHTRAG: Sehe grad noch das du SUSE10.2 benutzt... ich mittlerweile aber 10.3... es kann sein das du in den Programmen plug:dmix20to51:0 schreiben musst (also mit angehängten :0)... so hatte ich es in 10.1 und 10.2 (machte aber in 10.3 probleme, da gehts nur ohne dem :0)

Schorsch89
09.11.07, 21:52
Danke, Danke.
Ich höre endlich aus allen lautsprechern sound.
Eigentlich sollte mir das vorerst reichen- aber da ich nie zufrieden bin:

Ein weiteres Problem:
Eigentlich müsste der center-lautsprecher ja höhere frequenzbereiche ausgeben, als der subwoofer. Der subwoofer gibt aber noch zu hohe frequenzen ab und der center zu tiefe.
Ich habe daher versucht den center mit dem subwoofer (über die Bindings in .asoundrc) zu vertauschen. Es ist aber kein unterschied im vergleich zu vorher zu hören. Liegt das daran, dass für center und subwoofer eine gleiche Ausgabe gemixt wird?

Kurz gesagt kommen mir die Bässe nicht klar genug vom Subwoofer.

was kann ich da tun?

Freue mich schon auf die Antwort, weil mir die erste wirklich schnell weitergeholfen hat.
gruß Georg

Michieru
09.11.07, 23:02
Also für meine Bedürfnisse reichts, dahingehend hab ich mich damals auch eher weniger damit beschäftigt... aber was ich damals noch aufgeschnappt hab ist das man die einzelnen kanäle noch gesondert durch frequenzfilter schleusen kann aber wie das geht "schulterzuck"

momentahn bekommt bei z.B. demix20to51 (stereo -> 5.1) der subwoofer und center einen mix aus links und rechts geroutet

# Center channel
ttable.0.4 0.5 (Links-0 -> Center-4 mit halber stärke 0.5)
ttable.1.4 0.5 (Rechts-1 -> Center-4 mit halber stärke 0.5)
# LFE channel
ttable.0.5 0.5 (Links-0 -> LFE-5 mit halber stärke 0.5)
ttable.1.5 0.5 (rechts-1 -> LFE-5 mit halber stärke 0.5)

Michieru
10.11.07, 01:21
Hab mich mal drangesetzt bezüglich lowpassfilter und highpassfilter... keine ahnung ob das wirklich was bring ^^ aber zumindestens kommt sound aus den boxen... ^-^#

Testen kannst du es mit "speaker-text -D dmix51to51 -c 6"
Durch den Filter habe ich nur die dmix-PCM's gejagt da die Cleandevices (Mono/Stereo/Surround) entweder den subwoofer nicht benutzen oder bei echtem 5.1 (z.B. DVD's) die jeweilige ausgabe wohl schon vom Original her gefiltert sein dürfte.
Zusätzlich hab ich aber dmix51to51 hinzugefügt. (fals du trozdem 5.1 Sound durch den Filter schicken willst)

Damit das ganze funktioniert muss ladspa installiert sein und dazu noch die ladspa pakete "blop" und "cmt"

.asoundrc

# Aufnahme device
pcm.capture {
type dsnoop # Aufnahme Plugin
ipc_key 2048 # Einzigartiger Key
ipc_perm 0666 # Rechtezuweisung
slave.pcm "hw:0" # Soundkarte
slave {
period_time 0
period_size 1024
buffer_size 4096
rate 44100 # Aufnahme Frequenz
}
}

# Wiedergabe device
pcm.playback {
type dmix # Wiedergabe Plugin
ipc_key 1024 # Einzigartiger Key
ipc_perm 0666 # Rechtezuweisung
slave.pcm "hw:0" # Soundkarte
slave {
channels 6 # Kanaele
period_time 0
period_size 1024
buffer_size 4096
}
bindings { # Kanal -> Lautsprecher Zuweisung
0 0 # 0->0 = Front Left
1 1 # 1->1 = Front Right
2 4 # 2->4 = Rear Left
3 5 # 3->5 = Rear Right
4 2 # 4->2 = Center
5 3 # 5->3 = LFE
}
}

# Duplex device
pcm.duplex {
type asym # Duplex Plugin
playback.pcm "playback" # Wiedergabe Device
capture.pcm "capture" # Aufnahme Device
}

# Default device (Gebunden an Duplex)
pcm.!default {
type plug
slave.pcm "duplex"
}

# Lowpass Filter für 5.1
pcm.filter_lpf_hpf {
type ladspa
slave.pcm "default"
path "/usr/lib/ladspa"
channels 6
plugins {
0 {
id 1098
policy none
input.bindings.0 "Input";
output.bindings.0 "Output";
}
1 {
id 1098
policy none
input.bindings.1 "Input";
output.bindings.1 "Output";
}
2 {
id 1098
policy none
input.bindings.2 "Input";
output.bindings.2 "Output";
}
3 {
id 1098
policy none
input.bindings.3 "Input";
output.bindings.3 "Output";
}
4 {
id 1052
policy none
input.bindings.4 "Input";
output.bindings.4 "Output";
}
5 {
id 1672
policy none
input.bindings.5 "Input";
output.bindings.5 "Output";
input {
controls [ 300 2 ]
}
}
}
}

# OSS Wrapper (fuer aoss)
pcm.dsp "default"
ctl.dsp {
type plug
slave.pcm "hw:0"
}
ctl.mixer {
type plug
slave.pcm "hw:0"
}

# Downmix Devices
# Mono to Surround51
pcm.dmix10to51 {
type plug
slave.pcm "filter_lpf_hpf"
slave.channels 6
ttable {
0.0 1
0.1 1
0.2 1
0.3 1
0.4 1
0.5 1
}
}

# Stereo to Surround51
pcm.dmix20to51 {
type plug
slave.pcm "filter_lpf_hpf"
slave.channels 6
ttable {
0.0 1
1.1 1
0.2 1
1.3 1
0.4 0.5
1.4 0.5
0.5 0.5
1.5 0.5
}
}

# Surround40 to Surround51
pcm.dmix40to51 {
type plug
slave.pcm "filter_lpf_hpf"
slave.channels 6
ttable {
0.0 1
1.1 1
2.2 1
3.3 1
0.4 0.25
1.4 0.25
2.4 0.25
3.4 0.25
0.5 0.25
1.5 0.25
2.5 0.25
3.5 0.25
}
}

# Surround51 to Surround51
pcm.dmix51to51 {
type plug
slave.pcm "filter_lpf_hpf"
slave.channels 6
ttable {
0.0 1
1.1 1
2.2 1
3.3 1
4.4 1
5.5 1
}
}

# Clean Devices
# Mono
pcm.!mono {
type route
slave.pcm "default"
slave.channels 6
ttable {
0.0 1
0.1 1
}
}

# Stereo
pcm.!stereo {
type route
slave.pcm "default"
slave.channels 6
ttable {
0.0 1
1.1 1
}
}

# Surround40
pcm.!surround40 {
type route
slave.pcm "default"
slave.channels 6
ttable {
0.0 1
1.1 1
2.2 1
3.3 1
}
}

# Surround51
pcm.!surround51 {
type route
slave.pcm "default"
slave.channels 6
ttable {
0.0 1
1.1 1
2.2 1
3.3 1
4.4 1
5.5 1
}
}

EDIT: ich merk grad das, das ganze zwar mit speaker-test funktioniert aber amarok / kaffeine / xine schmieren mit der meldung "pcm_params.c:187: snd_pcm_hw_param_get_min: Zusicherung »!snd_interval_empty(i)« nicht erfüllt." ab wenn ich das ladspa benutze... jemand eine idee?

Schorsch89
12.11.07, 16:11
Hallo.

Danke für deine mühe.
Gibt es eigentlich den NvMixer von Nvidia auch für Linux?

gruß Georg

Michieru
13.11.07, 12:35
Meines Wissens nach gab es mal Treiber direkt von Nvidia für Linux-Sound. Allerdings hatt ich es selbst damals nie geschaft diese zu installieren/kompilieren... glaub aber das nvidia das dann auch wieder fallen gelassen hat da sound & netzwerk von linux schon perfekt unterstützt werden.

Eine Möglichkeit was dem nvsound wohl nahe kommen dürfte ist JackAudio... damit kann man den Sound durch etliche Filter laufen lassen und den Sound kreuz und quer durch linux jagen bis man den perfekten ton hat "hab ich bisher aber nicht angerührt gehabt"