В настоящее время я пытаюсь настроить карту SoundBlaster (чипсет CA106) для вывода на 4 канала.
Я подключил 4 динамика к аналоговому выходу (используя разъемы типа «джек»).
Когда я тестирую pseakers с помощью speaker-test
утилиты, она работает хорошо, но всякий раз, когда я пытаюсь воспроизвести 4-канальный звук (созданный мной) или любой многоканальный звук (полученный из Интернета) с помощью aplay
утилиты, я не могу заставить ее работать.
Вот информация о моей аппаратной настройке:
[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
Вот команда, которую я использую в обоих случаях (и ее соответствующий вывод).
Тест на говорение:
speaker-test -c 4 -D surround40:CA0106 -t wav
Это выдает правильный звук на правильные динамики (4 канала на 4 динамика)
Вот aplay
вывод при попытке воспроизвести 4-канальный звук с использованием одного и того же виртуального устройства (surround40):
[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
Если я попытаюсь использовать его aplay
без явного указания устройства, звук будет воспроизводиться только на 2 динамиках, см. вывод этого теста:
[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
Моя цель — заставить (или разрешить) aplay
правильно воспроизводить многоканальный звук (на самом деле только 4-канальный звук), под этим я подразумеваю использование 4 динамиков.
решение1
Файл .wav использует формат образца, который не поддерживается вашим оборудованием.
Используйте имя устройства plug:surround40:CA0106
для включения автоматического преобразования формата сэмпла.
Чтобы сделать это устройство устройством по умолчанию, используйте что-то вроде этого в /etc/asound.conf
или в вашем ~/.asoundrc
:
pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "surround40:CA0106"
}
capture.pcm {
type plug
slave.pcm "hw:CA0106"
}
}