なぜ4チャンネルや6チャンネルのサウンドを再生できないのにスピーカーテストはできますか?

なぜ4チャンネルや6チャンネルのサウンドを再生できないのにスピーカーテストはできますか?

現在Soundblasterカード(CA106チップセット)を4チャンネルで出力するように設定しようとしています。

プラグを使用して4つのスピーカーをアナログ出力に接続しました。

ユーティリティを使用してpseakerをテストすると正常に動作しますspeaker-testが、ユーティリティを使用して4チャンネル(自分で作成したもの)またはマルチチャンネルサウンド(Webで検索したもの)を再生しようとするたびに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同じ仮想デバイス(surround40)を使用して4チャンネルサウンドを再生しようとしたときの出力は次のとおりです。

[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

デバイスを明示的に指定せずに使用しようとすると、aplay2つのスピーカーでのみ音が再生されます。このテストの出力を参照してください。

[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"
    }
}

関連情報