Ich versuche derzeit, eine Soundblaster-Karte (CA106-Chipsatz) für die Ausgabe auf 4 Kanälen einzurichten.
Ich habe 4 Lautsprecher an den analogen Ausgang angeschlossen (mithilfe der Klinkenstecker).
Wenn ich die Effekte mit dem Dienstprogramm teste, speaker-test
funktioniert es gut, aber wenn ich versuche, einen 4-Kanal-Sound (von mir selbst erstellt) oder einen beliebigen Mehrkanal-Sound (aus dem Internet abgerufen) mit aplay
dem Dienstprogramm abzuspielen, funktioniert es nicht.
Hier sind die Informationen zu meinem HW-Setup:
[root@server SurroundTestFiles]# aplay -L
default:CARD=CA0106
CA0106, CA0106
Default Audio Device
front:CARD=CA0106,DEV=0
CA0106, CA0106
Front speakers
rear:CARD=CA0106,DEV=0
CA0106, CA0106
Rear speakers
center_lfe:CARD=CA0106,DEV=0
CA0106, CA0106
Center and Subwoofer speakers
side:CARD=CA0106,DEV=0
CA0106, CA0106
Side speakers
surround40:CARD=CA0106,DEV=0
CA0106, CA0106
4.0 Surround output to Front and Rear speakers
surround41:CARD=CA0106,DEV=0
CA0106, CA0106
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=CA0106,DEV=0
CA0106, CA0106
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=CA0106,DEV=0
CA0106, CA0106
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=CA0106,DEV=0
CA0106, CA0106
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=CA0106,DEV=0
CA0106, CA0106
IEC958 (S/PDIF) Digital Audio Output
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=Intel
HDA Intel, AD198x Analog
Default Audio Device
front:CARD=Intel,DEV=0
HDA Intel, AD198x Analog
Front speakers
surround40:CARD=Intel,DEV=0
HDA Intel, AD198x Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=Intel,DEV=0
HDA Intel, AD198x Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Intel,DEV=0
HDA Intel, AD198x Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Intel,DEV=0
HDA Intel, AD198x Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Intel,DEV=0
HDA Intel, AD198x Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=Intel,DEV=0
HDA Intel
HDMI Audio Output
[root@server SurroundTestFiles]# alsacard
0
[root@server SurroundTestFiles]# cat /proc/asound/cards
0 [CA0106 ]: CA0106 - CA0106
Audigy SE [SB0570] at 0xcce0 irq 169
1 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xf7ffc000 irq 82
Hier ist der Befehl, den ich in beiden Fällen verwende (und die entsprechende Ausgabe).
Der Lautsprecher-Test:
speaker-test -c 4 -D surround40:CA0106 -t wav
Dadurch wird der richtige Ton an die richtigen Lautsprecher gesendet (4 Kanäle an 4 Lautsprecher).
Hier ist die aplay
Ausgabe beim Versuch, 4-Kanal-Sounds mit demselben virtuellen Gerät (Surround40) abzuspielen:
[root@epr-servmcs-40 SurroundTestFiles]# aplay -v -D surround40:CA0106 -c 4 test-4-channels.wav
Playing WAVE 'test-4-channels.wav' : Signed 24 bit Little Endian in 3bytes, Rate 44100 Hz, Channels 4
aplay: set_params:954: Sample format non available
Wenn ich versuche, es zu verwenden, aplay
ohne das Gerät explizit anzugeben, wird der Ton nur über zwei Lautsprecher wiedergegeben, siehe die Ausgabe für diesen Test:
[root@epr-servmcs-40 SurroundTestFiles]# aplay -v -c 4 test-4-channels.wav
Playing WAVE 'test-4-channels.wav' : Signed 24 bit Little Endian in 3bytes, Rate 44100 Hz, Channels 4
Plug PCM: Route conversion PCM (sformat=S24_3LE)
Transformation table:
0 <- 0
1 <- 1
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S24_3LE
subformat : STD
channels : 4
rate : 44100
exact rate : 44100 (44100/1)
msbits : 24
buffer_size : 7526
period_size : 940
period_time : 21333
tstamp_mode : NONE
period_step : 1
avail_min : 940
period_event : 0
start_threshold : 7526
stop_threshold : 7526
silence_threshold: 0
silence_size : 0
boundary : 986447872
Slave: Rate conversion PCM (48000, sformat=S32_LE)
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S24_3LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 24
buffer_size : 7526
period_size : 940
period_time : 21333
tstamp_mode : NONE
period_step : 1
avail_min : 940
period_event : 0
start_threshold : 7526
stop_threshold : 7526
silence_threshold: 0
silence_size : 0
boundary : 986447872
Slave: Direct Stream Mixing PCM
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S32_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 32
buffer_size : 8192
period_size : 1024
period_time : 21333
tstamp_mode : NONE
period_step : 1
avail_min : 1024
period_event : 0
start_threshold : 8192
stop_threshold : 8192
silence_threshold: 0
silence_size : 0
boundary : 1073741824
Hardware PCM card 0 'CA0106' device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S32_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 32
buffer_size : 8192
period_size : 1024
period_time : 21333
tstamp_mode : ENABLE
period_step : 1
avail_min : 1024
period_event : 0
start_threshold : 1
stop_threshold : 1073741824
silence_threshold: 0
silence_size : 1073741824
boundary : 1073741824
Mein Ziel besteht darin, aplay
die korrekte Wiedergabe von Mehrkanalton (eigentlich nur 4-Kanal-Ton) zu erzwingen (oder zu ermöglichen). Damit meine ich die Verwendung der 4 Lautsprecher.
Antwort1
Die WAV-Datei verwendet ein Beispielformat, das von Ihrer Hardware nicht unterstützt wird.
Verwenden Sie den Gerätenamen plug:surround40:CA0106
, um die automatische Konvertierung des Sample-Formats zu aktivieren.
Um dies zum Standardgerät zu machen, verwenden Sie etwas wie das Folgende in /etc/asound.conf
oder in Ihrem ~/.asoundrc
:
pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "surround40:CA0106"
}
capture.pcm {
type plug
slave.pcm "hw:CA0106"
}
}