alsa ~/.asoundrc

Linux : 2013. 3. 28. 12:04
반응형

http://alsa.opensrc.org/FAQ026



~/.asoundrc


우분투

$ cat /proc/asound/cards

 0 [PCH            ]: HDA-Intel - HDA Intel PCH

                      HDA Intel PCH at 0xd1518000 irq 195

 1 [Device         ]: USB-Audio - USB Sound Device

                      USB Sound Device at usb-0000:00:14.0-2.1, full speed

 2 [NVidia         ]: HDA-Intel - HDA NVidia

                      HDA NVidia at 0xbd080000 irq 17



#

#  ALSA library configuration file

#


# pre-load the configuration files


@hooks [

{

func load

files [

{

@func concat

strings [

{ @func datadir }

"/alsa.conf.d/"

]

}

"/etc/asound.conf"

"~/.asoundrc"

]

errors false

}

]


# load card-specific configuration files (on request)


cards.@hooks [

{

func load

files [

{

@func concat

strings [

{ @func datadir }

"/cards/aliases.conf"

]

}

]

}

{

func load_for_all_cards

files [

{

@func concat

strings [

{ @func datadir }

"/cards/"

{ @func private_string }

".conf"

]

}

]

errors false

}

]


#

# defaults

#


# show all name hints also for definitions without hint {} section

defaults.namehint.showall on

# show just basic name hints

defaults.namehint.basic on

# show extended name hints

defaults.namehint.extended on

#

defaults.ctl.card 0

defaults.pcm.card 0

defaults.pcm.device 0

defaults.pcm.subdevice -1

defaults.pcm.nonblock 1

defaults.pcm.compat 0

defaults.pcm.minperiodtime 5000 # in us

defaults.pcm.ipc_key 5678293

defaults.pcm.ipc_gid audio

defaults.pcm.ipc_perm 0660

defaults.pcm.dmix.max_periods 0

defaults.pcm.dmix.rate 48000

defaults.pcm.dmix.format "unchanged"

defaults.pcm.dmix.card defaults.pcm.card

defaults.pcm.dmix.device defaults.pcm.device

defaults.pcm.dsnoop.card defaults.pcm.card

defaults.pcm.dsnoop.device defaults.pcm.device

defaults.pcm.front.card defaults.pcm.card

defaults.pcm.front.device defaults.pcm.device

defaults.pcm.rear.card defaults.pcm.card

defaults.pcm.rear.device defaults.pcm.device

defaults.pcm.center_lfe.card defaults.pcm.card

defaults.pcm.center_lfe.device defaults.pcm.device

defaults.pcm.side.card defaults.pcm.card

defaults.pcm.side.device defaults.pcm.device

defaults.pcm.surround21.card defaults.pcm.card

defaults.pcm.surround21.device defaults.pcm.device

defaults.pcm.surround40.card defaults.pcm.card

defaults.pcm.surround40.device defaults.pcm.device

defaults.pcm.surround41.card defaults.pcm.card

defaults.pcm.surround41.device defaults.pcm.device

defaults.pcm.surround50.card defaults.pcm.card

defaults.pcm.surround50.device defaults.pcm.device

defaults.pcm.surround51.card defaults.pcm.card

defaults.pcm.surround51.device defaults.pcm.device

defaults.pcm.surround71.card defaults.pcm.card

defaults.pcm.surround71.device defaults.pcm.device

defaults.pcm.iec958.card defaults.pcm.card

defaults.pcm.iec958.device defaults.pcm.device

defaults.pcm.modem.card defaults.pcm.card

defaults.pcm.modem.device defaults.pcm.device

# truncate files via file or tee PCM

defaults.pcm.file_format "raw"

defaults.pcm.file_truncate true

defaults.rawmidi.card 0

defaults.rawmidi.device 0

defaults.rawmidi.subdevice -1

defaults.hwdep.card 0

defaults.hwdep.device 0

defaults.timer.class 2

defaults.timer.sclass 0

defaults.timer.card 0

defaults.timer.device 0

defaults.timer.subdevice 0


#

#  PCM interface

#


# redirect to load-on-demand extended pcm definitions

pcm.cards cards.pcm


pcm.default cards.pcm.default

pcm.sysdefault cards.pcm.default

pcm.front cards.pcm.front

pcm.rear cards.pcm.rear

pcm.center_lfe cards.pcm.center_lfe

pcm.side cards.pcm.side

pcm.surround21 cards.pcm.surround21

pcm.surround40 cards.pcm.surround40

pcm.surround41 cards.pcm.surround41

pcm.surround50 cards.pcm.surround50

pcm.surround51 cards.pcm.surround51

pcm.surround71 cards.pcm.surround71

pcm.iec958 cards.pcm.iec958

pcm.spdif iec958

pcm.hdmi cards.pcm.hdmi

pcm.dmix cards.pcm.dmix

pcm.dsnoop cards.pcm.dsnoop

pcm.modem cards.pcm.modem

pcm.phoneline cards.pcm.phoneline


pcm.hw {

@args [ CARD DEV SUBDEV ]

@args.CARD {

type string

default {

@func getenv

vars [

ALSA_PCM_CARD

ALSA_CARD

]

default {

@func refer

name defaults.pcm.card

}

}

}

@args.DEV {

type integer

default {

@func igetenv

vars [

ALSA_PCM_DEVICE

]

default {

@func refer

name defaults.pcm.device

}

}

}

@args.SUBDEV {

type integer

default {

@func refer

name defaults.pcm.subdevice

}

}

type hw

card $CARD

device $DEV

subdevice $SUBDEV

hint {

show {

@func refer

name defaults.namehint.extended

}

description "Direct hardware device without any conversions"

}

}


pcm.plughw {

@args [ CARD DEV SUBDEV ]

@args.CARD {

type string

default {

@func getenv

vars [

ALSA_PCM_CARD

ALSA_CARD

]

default {

@func refer

name defaults.pcm.card

}

}

}

@args.DEV {

type integer

default {

@func igetenv

vars [

ALSA_PCM_DEVICE

]

default {

@func refer

name defaults.pcm.device

}

}

}

@args.SUBDEV {

type integer

default {

@func refer

name defaults.pcm.subdevice

}

}

type plug

slave.pcm {

type hw

card $CARD

device $DEV

subdevice $SUBDEV

}

hint {

show {

@func refer

name defaults.namehint.extended

}

description "Hardware device with all software conversions"

}

}


pcm.plug {

@args [ SLAVE ]

@args.SLAVE {

type string

}

type plug

slave.pcm $SLAVE

}


pcm.shm {

@args [ SOCKET PCM ]

@args.SOCKET {

type string

}

@args.PCM {

type string

}

type shm

server $SOCKET

pcm $PCM

}


pcm.tee {

@args [ SLAVE FILE FORMAT ]

@args.SLAVE {

type string

}

@args.FILE {

type string

}

@args.FORMAT {

type string

default {

@func refer

name defaults.pcm.file_format

}

}

type file

slave.pcm $SLAVE

file $FILE

format $FORMAT

truncate {

@func refer

name defaults.pcm.file_truncate

}

}


pcm.file {

@args [ FILE FORMAT ]

@args.FILE {

type string

}

@args.FORMAT {

type string

default {

@func refer

name defaults.pcm.file_format

}

}

type file

slave.pcm null

file $FILE

format $FORMAT

truncate {

@func refer

name defaults.pcm.file_truncate

}

}


pcm.null {

type null

hint {

show {

@func refer

name defaults.namehint.basic

}

description "Discard all samples (playback) or generate zero samples (capture)"

}

}


#

#  Control interface

#

ctl.sysdefault {

type hw

card {

@func getenv

vars [

ALSA_CTL_CARD

ALSA_CARD

]

default {

@func refer

name defaults.ctl.card

}

}

hint.description "Default control device"

}

ctl.default ctl.sysdefault


ctl.hw {

@args [ CARD ]

@args.CARD {

type string

default {

@func getenv

vars [

ALSA_CTL_CARD

ALSA_CARD

]

default {

@func refer

name defaults.ctl.card

}

}

}

type hw

card $CARD

hint.description "Direct control device"

}


ctl.shm {

@args [ SOCKET CTL ]

@args.SOCKET {

type string

}

@args.CTL {

type string

}

type shm

server $SOCKET

ctl $CTL

}


#

#  RawMidi interface

#


rawmidi.default {

type hw

card {

@func getenv

vars [

ALSA_RAWMIDI_CARD

ALSA_CARD

]

default {

@func refer

name defaults.rawmidi.card

}

}

device {

@func igetenv

vars [

ALSA_RAWMIDI_DEVICE

]

default {

@func refer

name defaults.rawmidi.device

}

}

hint.description "Default raw MIDI device"

}


rawmidi.hw {

@args [ CARD DEV SUBDEV ]

@args.CARD {

type string

default {

@func getenv

vars [

ALSA_RAWMIDI_CARD

ALSA_CARD

]

default {

@func refer

name defaults.rawmidi.card

}

}

}

@args.DEV {

type integer

default {

@func igetenv

vars [

ALSA_RAWMIDI_DEVICE

]

default {

@func refer

name defaults.rawmidi.device

}

}

}

@args.SUBDEV {

type integer

default -1

}

type hw

card $CARD

device $DEV

subdevice $SUBDEV

hint {

description "Direct rawmidi driver device"

device $DEV

}

}


rawmidi.virtual {

@args [ MERGE ]

@args.MERGE {

type string

default 1

}

type virtual

merge $MERGE

}


#

#  Sequencer interface

#


seq.default {

type hw

hint.description "Default sequencer device"

}


seq.hw {

type hw

}


#

#  HwDep interface

#


hwdep.default {

type hw

card {

@func getenv

vars [

ALSA_HWDEP_CARD

ALSA_CARD

]

default {

@func refer

name defaults.hwdep.card

}

}

device {

@func igetenv

vars [

ALSA_HWDEP_DEVICE

]

default {

@func refer

name defaults.hwdep.device

}

}

hint.description "Default hardware dependent device"

}


hwdep.hw {

@args [ CARD DEV ]

@args.CARD {

type string

default {

@func getenv

vars [

ALSA_HWDEP_CARD

ALSA_CARD

]

default {

@func refer

name defaults.hwdep.card

}

}

}

@args.DEV {

type integer

default {

@func igetenv

vars [

ALSA_HWDEP_DEVICE

]

default {

@func refer

name defaults.hwdep.device

}

}

}

type hw

card $CARD

device $DEV

hint {

description "Direct hardware dependent device"

device $DEV

}

}


#

#  Timer interface

#


timer_query.default {

type hw

}


timer_query.hw {

type hw

}


timer.default {

type hw

class {

@func refer

name defaults.timer.class

}

sclass {

@func refer

name defaults.timer.sclass

}

card {

@func refer

name defaults.timer.card

}

device {

@func refer

name defaults.timer.device

}

subdevice {

@func refer

name defaults.timer.subdevice

}

hint.description "Default timer device"

}


timer.hw {

@args [ CLASS SCLASS CARD DEV SUBDEV ]

@args.CLASS {

type integer

default {

@func refer

name defaults.timer.class

}

}

@args.SCLASS {

type integer

default {

@func refer

name defaults.timer.sclass

}

}

@args.CARD {

type string

default {

@func refer

name defaults.timer.card

}

}

@args.DEV {

type integer

default {

@func refer

name defaults.timer.device

}

}

@args.SUBDEV {

type integer

default {

@func refer

name defaults.timer.subdevice

}

}

type hw

class $CLASS

sclass $SCLASS

card $CARD

device $DEV

subdevice $SUBDEV

hint {

description "Direct timer device"

device $DEV

}

}


라즈베리

$ cat /proc/asound/cards 

 0 [b1             ]: bcm2835_hdmi - bcm2835 HDMI 1

                      bcm2835 HDMI 1

 1 [Headphones     ]: bcm2835_headphonbcm2835 Headphones - bcm2835 Headphones

                      bcm2835 Headphones

 2 [Amplif         ]: USB-Audio - Meizu HiFi DAC Headphone Amplif

                      Headset Meizu Corp Meizu HiFi DAC Headphone Amplif at usb-0000:01:00.0-1.3, hig




pi@raspberrypi:~ $ cat ~/.asoundrc 

pcm.!default {

type asym

playback.pcm {

type plug

slave.pcm "output"

}

capture.pcm {

type plug

slave.pcm "input"

}

}


pcm.output {

type hw

card 2

}


ctl.!default {

type hw

card 2

}



반응형

'Linux' 카테고리의 다른 글

ubuntu 12.10 unity 에서 gnome 으로 돌아가고 싶다면 !!  (0) 2013.03.28
serial input  (0) 2013.02.08
u-boot 의 command 값을 코드에 넣기  (0) 2012.04.19
Posted by Real_G