「Advanced Linux Sound Architecture/設定例」の版間の差分
表示
削除された内容 追加された内容
編集の要約なし |
|||
| 1行目: | 1行目: | ||
[[Category:サウンド]] |
|||
#redirect[[en:Advanced Linux Sound Architecture/Example Configurations]] |
|||
[[en:Advanced Linux Sound Architecture/Example Configurations]] |
|||
[[it:Advanced Linux Sound Architecture/Example Configurations]] |
|||
以下は [[ALSA]] の高度な設定のガイドです。メインの記事にあるように設定は {{ic|/etc/asound.conf}} に記述します。以下の設定が機能するという保証はありません。 |
|||
{{Note|Most things discussed here are much easier to accomplish using alsa plugins like upmix which are explained in the main article.}} |
|||
==dmix を使ってステレオ音源を 7.1 にアップミックスして 7.1 の音源はアップミックスしない== |
|||
# 2008-11-15 |
|||
# |
|||
# This .asoundrc will allow the following: |
|||
# |
|||
# - upmix stereo files to 7.1 speakers. |
|||
# - playback real 7.1 sounds, on 7.1 speakers, |
|||
# - allow the playback of both stereo (upmixed) and surround(7.1) sources at the same time. |
|||
# - use the 6th and 7th channel (side speakers) as a separate soundcard, i.e. for headphones |
|||
# (This is called the "alternate" output throughout the file, device names prefixed with 'a') |
|||
# - play mono sources in stereo (like skype & ekiga) on the alterate output |
|||
# |
|||
# Make sure you have "8 Channels" and NOT "6 Channels" selected in alsamixer! |
|||
# |
|||
# Please try the following commands, to make sure everything is working as it should. |
|||
# |
|||
# To test stereo upmix : speaker-test -c2 -Ddefault -twav |
|||
# To test surround(5.1): speaker-test -c6 -Dplug:dmix6 -twav |
|||
# To test surround(7.1): speaker-test -c6 -Dplug:dmix8 -twav |
|||
# To test alternative output: speaker-test -c2 -Daduplex -twav |
|||
# To test mono upmix: speaker-test -c1 -Dmonoduplex -twav |
|||
# |
|||
# |
|||
# It may not work out of the box for all cards. If it doesnt work for you, read the comments throughout the file. |
|||
# The basis of this file was written by wishie of #alsa, and then modified with info from various sources by |
|||
# squisher. Svenstaro modified it for 7.1 output support. |
|||
#Define the soundcard to use |
|||
pcm.snd_card { |
|||
type hw |
|||
card 0 |
|||
device 0 |
|||
} |
|||
# 8 channel dmix - output whatever audio, to all 8 speakers |
|||
pcm.dmix8 { |
|||
type dmix |
|||
ipc_key 1024 |
|||
ipc_key_add_uid false |
|||
ipc_perm 0660 |
|||
slave { |
|||
pcm "snd_card" |
|||
rate 48000 |
|||
channels 8 |
|||
period_time 0 |
|||
period_size 1024 |
|||
buffer_time 0 |
|||
buffer_size 5120 |
|||
} |
|||
# Some cards, like the "nforce" variants require the following to be uncommented. |
|||
# It routes the audio to the correct speakers. |
|||
# bindings { |
|||
# 0 0 |
|||
# 1 1 |
|||
# 2 4 |
|||
# 3 5 |
|||
# 4 2 |
|||
# 5 3 |
|||
# 6 6 |
|||
# 7 7 |
|||
# } |
|||
} |
|||
# upmixing - duplicate stereo data to all 8 channels |
|||
pcm.ch71dup { |
|||
type route |
|||
slave.pcm dmix8 |
|||
slave.channels 8 |
|||
ttable.0.0 1 |
|||
ttable.1.1 1 |
|||
ttable.0.2 1 |
|||
ttable.1.3 1 |
|||
ttable.0.4 0.5 |
|||
ttable.1.4 0.5 |
|||
ttable.0.5 0.5 |
|||
ttable.1.5 0.5 |
|||
ttable.0.6 1 |
|||
ttable.1.7 1 |
|||
} |
|||
# this creates a six channel soundcard |
|||
# and outputs to the eight channel one |
|||
# i.e. for usage in mplayer I had to define in ~/.mplayer/config: |
|||
# ao=alsa:device=dmix6 |
|||
# channels=6 |
|||
pcm.dmix6 { |
|||
type route |
|||
slave.pcm dmix8 |
|||
slave.channels 8 |
|||
ttable.0.0 1 |
|||
ttable.1.1 1 |
|||
ttable.2.2 1 |
|||
ttable.3.3 1 |
|||
ttable.4.4 1 |
|||
ttable.5.5 1 |
|||
ttable.6.6 1 |
|||
ttable.7.7 1 |
|||
} |
|||
# share the microphone, i.e. because virtualbox grabs it by default |
|||
pcm.microphone { |
|||
type dsnoop |
|||
ipc_key 1027 |
|||
slave { |
|||
pcm "snd_card" |
|||
} |
|||
} |
|||
# rate conversion, needed i.e. for wine |
|||
pcm.2chplug { |
|||
type plug |
|||
slave.pcm "ch71dup" |
|||
} |
|||
pcm.a2chplug { |
|||
type plug |
|||
slave.pcm "dmix8" |
|||
} |
|||
# routes the channel for the alternative |
|||
# 2 channel output, which becomes the 7th and 8th channel |
|||
# on the real soundcard |
|||
#pcm.alt2ch { |
|||
# type route |
|||
# slave.pcm "a2chplug" |
|||
# slave.channels 8 |
|||
# ttable.0.6 1 |
|||
# ttable.1.7 1 |
|||
#} |
|||
# skype and ekiga are only mono, so route left channel to the right channel |
|||
# note: this gets routed to the alternative 2 channels |
|||
pcm.mono_playback { |
|||
type route |
|||
slave.pcm "a2chplug" |
|||
slave.channels 8 |
|||
# Send Skype channel 0 to the L and R speakers at full volume |
|||
#ttable.0.6 1 |
|||
#ttable.0.7 1 |
|||
} |
|||
# 'full-duplex' device for use with aoss |
|||
pcm.duplex { |
|||
type asym |
|||
playback.pcm "2chplug" |
|||
capture.pcm "microphone" |
|||
} |
|||
#pcm.aduplex { |
|||
# type asym |
|||
# playback.pcm "alt2ch" |
|||
# capture.pcm "microphone" |
|||
#} |
|||
pcm.monoduplex { |
|||
type asym |
|||
playback.pcm "mono_playback" |
|||
capture.pcm "microphone" |
|||
} |
|||
# for aoss |
|||
pcm.dsp0 "duplex" |
|||
ctl.mixer0 "duplex" |
|||
# softvol manages volume in alsa |
|||
# i.e. wine likes this |
|||
pcm.mainvol { |
|||
type softvol |
|||
slave.pcm "duplex" |
|||
control { |
|||
name "2ch-Upmix Master" |
|||
card 0 |
|||
} |
|||
} |
|||
#pcm.!default "mainvol" |
|||
# set the default device according to the environment |
|||
# variable ALSA_DEFAULT_PCM and default to mainvol |
|||
pcm.!default { |
|||
@func refer |
|||
name { @func concat |
|||
strings [ "pcm." |
|||
{ @func getenv |
|||
vars [ ALSA_DEFAULT_PCM ] |
|||
default "mainvol" |
|||
} |
|||
] |
|||
} |
|||
} |
|||
# uncomment the following if you want to be able to control |
|||
# the mixer device through environment variables as well |
|||
#ctl.!default { |
|||
# @func refer |
|||
# name { @func concat |
|||
# strings [ "ctl." |
|||
# { @func getenv |
|||
# vars [ ALSA_DEFAULT_CTL |
|||
# ALSA_DEFAULT_PCM |
|||
# ] |
|||
# default "duplex" |
|||
# } |
|||
# ] |
|||
# } |
|||
#} |
|||
==Surround51 incl. ステレオのアップミックス & dmix, L/R を交換, 部屋のスピーカーの位置の調整== |
|||
Bad practice but works fine for almost everything without additional per-program/file customization: |
|||
pcm.!default { |
|||
type route |
|||
## forwards to the mixer pcm defined below |
|||
slave.pcm dmix51 |
|||
slave.channels 6 |
|||
## "Native Channels" stereo, swap left/right |
|||
ttable.0.1 1 |
|||
ttable.1.0 1 |
|||
## original normal left/right commented out |
|||
# ttable.0.0 1 |
|||
# ttable.1.1 1 |
|||
## route "native surround" so it still works but weaken signal (+ RL/RF swap) |
|||
## because my rear speakers are more like random than really behind me |
|||
ttable.2.3 0.7 |
|||
ttable.3.2 0.7 |
|||
ttable.4.4 0.7 |
|||
ttable.5.5 0.7 |
|||
## stereo => quad speaker "upmix" for "rear" speakers + swap L/R |
|||
ttable.0.3 1 |
|||
ttable.1.2 1 |
|||
## stereo L+R => join to Center & Subwoofer 50%/50% |
|||
ttable.0.4 0.5 |
|||
ttable.1.4 0.5 |
|||
ttable.0.5 0.5 |
|||
ttable.1.5 0.5 |
|||
## to test: "$ speaker-test -c6 -twav" and: "$ speaker-test -c2 -twav" |
|||
} |
|||
pcm.dmix51 { |
|||
type dmix |
|||
ipc_key 1024 |
|||
# let multiple users share |
|||
ipc_key_add_uid false |
|||
# IPC permissions (octal, default 0600) |
|||
# I think changing this fixed something - but I'm not sure what. |
|||
ipc_perm 0660 # |
|||
slave { |
|||
## this is specific to my hda_intel. Often hd:0 is just allready it; To find: $ aplay -L |
|||
pcm surround51 |
|||
# this rate makes my soundcard crackle |
|||
# rate 44100 |
|||
# this rate stops flash in firefox from playing audio, but I do not need that |
|||
rate 48000 |
|||
channels 6 |
|||
## Any other values in the 4 lines below seem to make my soundcard crackle, too |
|||
period_time 0 |
|||
period_size 1024 |
|||
buffer_time 0 |
|||
buffer_size 4096 |
|||
} |
|||
} |
|||
2015年12月9日 (水) 01:08時点における版
以下は ALSA の高度な設定のガイドです。メインの記事にあるように設定は /etc/asound.conf に記述します。以下の設定が機能するという保証はありません。
ノート Most things discussed here are much easier to accomplish using alsa plugins like upmix which are explained in the main article.
dmix を使ってステレオ音源を 7.1 にアップミックスして 7.1 の音源はアップミックスしない
# 2008-11-15
#
# This .asoundrc will allow the following:
#
# - upmix stereo files to 7.1 speakers.
# - playback real 7.1 sounds, on 7.1 speakers,
# - allow the playback of both stereo (upmixed) and surround(7.1) sources at the same time.
# - use the 6th and 7th channel (side speakers) as a separate soundcard, i.e. for headphones
# (This is called the "alternate" output throughout the file, device names prefixed with 'a')
# - play mono sources in stereo (like skype & ekiga) on the alterate output
#
# Make sure you have "8 Channels" and NOT "6 Channels" selected in alsamixer!
#
# Please try the following commands, to make sure everything is working as it should.
#
# To test stereo upmix : speaker-test -c2 -Ddefault -twav
# To test surround(5.1): speaker-test -c6 -Dplug:dmix6 -twav
# To test surround(7.1): speaker-test -c6 -Dplug:dmix8 -twav
# To test alternative output: speaker-test -c2 -Daduplex -twav
# To test mono upmix: speaker-test -c1 -Dmonoduplex -twav
#
#
# It may not work out of the box for all cards. If it doesnt work for you, read the comments throughout the file.
# The basis of this file was written by wishie of #alsa, and then modified with info from various sources by
# squisher. Svenstaro modified it for 7.1 output support.
#Define the soundcard to use
pcm.snd_card {
type hw
card 0
device 0
}
# 8 channel dmix - output whatever audio, to all 8 speakers
pcm.dmix8 {
type dmix
ipc_key 1024
ipc_key_add_uid false
ipc_perm 0660
slave {
pcm "snd_card"
rate 48000
channels 8
period_time 0
period_size 1024
buffer_time 0
buffer_size 5120
}
# Some cards, like the "nforce" variants require the following to be uncommented.
# It routes the audio to the correct speakers.
# bindings {
# 0 0
# 1 1
# 2 4
# 3 5
# 4 2
# 5 3
# 6 6
# 7 7
# }
}
# upmixing - duplicate stereo data to all 8 channels
pcm.ch71dup {
type route
slave.pcm dmix8
slave.channels 8
ttable.0.0 1
ttable.1.1 1
ttable.0.2 1
ttable.1.3 1
ttable.0.4 0.5
ttable.1.4 0.5
ttable.0.5 0.5
ttable.1.5 0.5
ttable.0.6 1
ttable.1.7 1
}
# this creates a six channel soundcard
# and outputs to the eight channel one
# i.e. for usage in mplayer I had to define in ~/.mplayer/config:
# ao=alsa:device=dmix6
# channels=6
pcm.dmix6 {
type route
slave.pcm dmix8
slave.channels 8
ttable.0.0 1
ttable.1.1 1
ttable.2.2 1
ttable.3.3 1
ttable.4.4 1
ttable.5.5 1
ttable.6.6 1
ttable.7.7 1
}
# share the microphone, i.e. because virtualbox grabs it by default
pcm.microphone {
type dsnoop
ipc_key 1027
slave {
pcm "snd_card"
}
}
# rate conversion, needed i.e. for wine
pcm.2chplug {
type plug
slave.pcm "ch71dup"
}
pcm.a2chplug {
type plug
slave.pcm "dmix8"
}
# routes the channel for the alternative
# 2 channel output, which becomes the 7th and 8th channel
# on the real soundcard
#pcm.alt2ch {
# type route
# slave.pcm "a2chplug"
# slave.channels 8
# ttable.0.6 1
# ttable.1.7 1
#}
# skype and ekiga are only mono, so route left channel to the right channel
# note: this gets routed to the alternative 2 channels
pcm.mono_playback {
type route
slave.pcm "a2chplug"
slave.channels 8
# Send Skype channel 0 to the L and R speakers at full volume
#ttable.0.6 1
#ttable.0.7 1
}
# 'full-duplex' device for use with aoss
pcm.duplex {
type asym
playback.pcm "2chplug"
capture.pcm "microphone"
}
#pcm.aduplex {
# type asym
# playback.pcm "alt2ch"
# capture.pcm "microphone"
#}
pcm.monoduplex {
type asym
playback.pcm "mono_playback"
capture.pcm "microphone"
}
# for aoss
pcm.dsp0 "duplex"
ctl.mixer0 "duplex"
# softvol manages volume in alsa
# i.e. wine likes this
pcm.mainvol {
type softvol
slave.pcm "duplex"
control {
name "2ch-Upmix Master"
card 0
}
}
#pcm.!default "mainvol"
# set the default device according to the environment
# variable ALSA_DEFAULT_PCM and default to mainvol
pcm.!default {
@func refer
name { @func concat
strings [ "pcm."
{ @func getenv
vars [ ALSA_DEFAULT_PCM ]
default "mainvol"
}
]
}
}
# uncomment the following if you want to be able to control
# the mixer device through environment variables as well
#ctl.!default {
# @func refer
# name { @func concat
# strings [ "ctl."
# { @func getenv
# vars [ ALSA_DEFAULT_CTL
# ALSA_DEFAULT_PCM
# ]
# default "duplex"
# }
# ]
# }
#}
Surround51 incl. ステレオのアップミックス & dmix, L/R を交換, 部屋のスピーカーの位置の調整
Bad practice but works fine for almost everything without additional per-program/file customization:
pcm.!default {
type route
## forwards to the mixer pcm defined below
slave.pcm dmix51
slave.channels 6
## "Native Channels" stereo, swap left/right
ttable.0.1 1
ttable.1.0 1
## original normal left/right commented out
# ttable.0.0 1
# ttable.1.1 1
## route "native surround" so it still works but weaken signal (+ RL/RF swap)
## because my rear speakers are more like random than really behind me
ttable.2.3 0.7
ttable.3.2 0.7
ttable.4.4 0.7
ttable.5.5 0.7
## stereo => quad speaker "upmix" for "rear" speakers + swap L/R
ttable.0.3 1
ttable.1.2 1
## stereo L+R => join to Center & Subwoofer 50%/50%
ttable.0.4 0.5
ttable.1.4 0.5
ttable.0.5 0.5
ttable.1.5 0.5
## to test: "$ speaker-test -c6 -twav" and: "$ speaker-test -c2 -twav"
}
pcm.dmix51 {
type dmix
ipc_key 1024
# let multiple users share
ipc_key_add_uid false
# IPC permissions (octal, default 0600)
# I think changing this fixed something - but I'm not sure what.
ipc_perm 0660 #
slave {
## this is specific to my hda_intel. Often hd:0 is just allready it; To find: $ aplay -L
pcm surround51
# this rate makes my soundcard crackle
# rate 44100
# this rate stops flash in firefox from playing audio, but I do not need that
rate 48000
channels 6
## Any other values in the 4 lines below seem to make my soundcard crackle, too
period_time 0
period_size 1024
buffer_time 0
buffer_size 4096
}
}