openvortex-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Openvortex-dev] aplay - How to use device 3 of card 0 ?


From: Raymond
Subject: [Openvortex-dev] aplay - How to use device 3 of card 0 ?
Date: Sun, 06 Mar 2005 13:22:01 +0800
User-agent: Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.4.3) Gecko/20041005

What is the correct syntax for "aplay" to use device 3 of card 0 ?

# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: au8830 [au8830], device 0: AU88x0 ADB [adb]
  Subdevices: 32/32
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
  Subdevice #8: subdevice #8
  Subdevice #9: subdevice #9
  Subdevice #10: subdevice #10
  Subdevice #11: subdevice #11
  Subdevice #12: subdevice #12
  Subdevice #13: subdevice #13
  Subdevice #14: subdevice #14
  Subdevice #15: subdevice #15
  Subdevice #16: subdevice #16
  Subdevice #17: subdevice #17
  Subdevice #18: subdevice #18
  Subdevice #19: subdevice #19
  Subdevice #20: subdevice #20
  Subdevice #21: subdevice #21
  Subdevice #22: subdevice #22
  Subdevice #23: subdevice #23
  Subdevice #24: subdevice #24
  Subdevice #25: subdevice #25
  Subdevice #26: subdevice #26
  Subdevice #27: subdevice #27
  Subdevice #28: subdevice #28
  Subdevice #29: subdevice #29
  Subdevice #30: subdevice #30
  Subdevice #31: subdevice #31
card 0: au8830 [au8830], device 1: AU88x0 SPDIF [spdif]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: au8830 [au8830], device 2: AU88x0 A3D [a3d]
  Subdevices: 16/16
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
  Subdevice #8: subdevice #8
  Subdevice #9: subdevice #9
  Subdevice #10: subdevice #10
  Subdevice #11: subdevice #11
  Subdevice #12: subdevice #12
  Subdevice #13: subdevice #13
  Subdevice #14: subdevice #14
  Subdevice #15: subdevice #15
card 0: au8830 [au8830], device 3: AU88x0 WT [wt]
  Subdevices: 64/64
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
  Subdevice #8: subdevice #8
  Subdevice #9: subdevice #9
  Subdevice #10: subdevice #10
  Subdevice #11: subdevice #11
  Subdevice #12: subdevice #12
  Subdevice #13: subdevice #13
  Subdevice #14: subdevice #14
  Subdevice #15: subdevice #15
  Subdevice #16: subdevice #16
  Subdevice #17: subdevice #17
  Subdevice #18: subdevice #18
  Subdevice #19: subdevice #19
  Subdevice #20: subdevice #20
  Subdevice #21: subdevice #21
  Subdevice #22: subdevice #22
  Subdevice #23: subdevice #23
  Subdevice #24: subdevice #24
  Subdevice #25: subdevice #25
  Subdevice #26: subdevice #26
  Subdevice #27: subdevice #27
  Subdevice #28: subdevice #28
  Subdevice #29: subdevice #29
  Subdevice #30: subdevice #30
  Subdevice #31: subdevice #31
  Subdevice #32: subdevice #32
  Subdevice #33: subdevice #33
  Subdevice #34: subdevice #34
  Subdevice #35: subdevice #35
  Subdevice #36: subdevice #36
  Subdevice #37: subdevice #37
  Subdevice #38: subdevice #38
  Subdevice #39: subdevice #39
  Subdevice #40: subdevice #40
  Subdevice #41: subdevice #41
  Subdevice #42: subdevice #42
  Subdevice #43: subdevice #43
  Subdevice #44: subdevice #44
  Subdevice #45: subdevice #45
  Subdevice #46: subdevice #46
  Subdevice #47: subdevice #47
  Subdevice #48: subdevice #48
  Subdevice #49: subdevice #49
  Subdevice #50: subdevice #50
  Subdevice #51: subdevice #51
  Subdevice #52: subdevice #52
  Subdevice #53: subdevice #53
  Subdevice #54: subdevice #54
  Subdevice #55: subdevice #55
  Subdevice #56: subdevice #56
  Subdevice #57: subdevice #57
  Subdevice #58: subdevice #58
  Subdevice #59: subdevice #59
  Subdevice #60: subdevice #60
  Subdevice #61: subdevice #61
  Subdevice #62: subdevice #62
  Subdevice #63: subdevice #63


# aplay --list-pcms
PCM list:
hw {
        @args.0 CARD
        @args.1 DEV
        @args.2 SUBDEV
        @args.CARD {
                type string
                default {
                        @func getenv
                        vars {
                                0 ALSA_PCM_CARD
                                1 ALSA_CARD
                        }
                        default {
                                @func refer
                                name 'defaults.pcm.card'
                        }
                }
        }
        @args.DEV {
                type integer
                default {
                        @func igetenv
                        vars {
                                0 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
}
plughw {
        @args.0 CARD
        @args.1 DEV
        @args.2 SUBDEV
        @args.CARD {
                type string
                default {
                        @func getenv
                        vars {
                                0 ALSA_PCM_CARD
                                1 ALSA_CARD
                        }
                        default {
                                @func refer
                                name 'defaults.pcm.card'
                        }
                }
        }
        @args.DEV {
                type integer
                default {
                        @func igetenv
                        vars {
                                0 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
        }
}
plug {
        @args.0 SLAVE
        @args.SLAVE {
                type string
        }
        type plug
        slave.pcm $SLAVE
}
dmix {
        @args.0 SLAVE
        @args.1 FORMAT
        @args.2 RATE
        @args.SLAVE {
                type string
                default 'hw:0,0'
        }
        @args.FORMAT {
                type string
                default S16_LE
        }
        @args.RATE {
                type integer
                default 48000
        }
        type dmix
        ipc_key 5678293
        ipc_key_add_uid yes
        slave {
                pcm $SLAVE
                format $FORMAT
                rate $RATE
        }
}
dsnoop {
        @args.0 SLAVE
        @args.1 FORMAT
        @args.2 RATE
        @args.SLAVE {
                type string
                default 'hw:0,0'
        }
        @args.FORMAT {
                type string
                default S16_LE
        }
        @args.RATE {
                type integer
                default 48000
        }
        type dsnoop
        ipc_key 5778293
        ipc_key_add_uid yes
        slave {
                pcm $SLAVE
                format $FORMAT
                rate $RATE
        }
}
shm {
        @args.0 SOCKET
        @args.1 PCM
        @args.SOCKET {
                type string
        }
        @args.PCM {
                type string
        }
        type shm
        server $SOCKET
        pcm $PCM
}
tee {
        @args.0 SLAVE
        @args.1 FILE
        @args.2 FORMAT
        @args.SLAVE {
                type string
        }
        @args.FILE {
                type string
        }
        @args.FORMAT {
                type string
                default raw
        }
        type file
        slave.pcm $SLAVE
        file $FILE
        format $FORMAT
}
file {
        @args.0 FILE
        @args.1 FORMAT
        @args.FILE {
                type string
        }
        @args.FORMAT {
                type string
                default raw
        }
        type file
        slave.pcm null
        file $FILE
        format $FORMAT
}
null {
        type null
}
cards 'cards.pcm'
front 'cards.pcm.front'
rear 'cards.pcm.rear'
center_lfe 'cards.pcm.center_lfe'
side 'cards.pcm.side'
surround40 'cards.pcm.surround40'
surround41 'cards.pcm.surround41'
surround50 'cards.pcm.surround50'
surround51 'cards.pcm.surround51'
surround71 'cards.pcm.surround71'
iec958 'cards.pcm.iec958'
spdif 'cards.pcm.iec958'
modem 'cards.pcm.modem'
default 'cards.pcm.default'




# more /proc/asound/card0/pcm3p/info
card: 0
device: 3
subdevice: 0
stream: PLAYBACK
id: AU88x0 WT
name: wt
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 64
subdevices_avail: 64


# aplay -D hw:0,3 test.wav
Playing WAVE 'test.wav' : Unsigned 8 bit, Rate 11025 Hz, Mono
aplay: set_params:857: Sample format non available


4) How can we use "aplay" to play test.wav on the card 0 device 3 ?

The problem with the WT device is either a bug in the DMA code or a
bad route. The WT DMA works almost indentical to the ADB DMA engine,
but with its separate set of registers. I have looked over and over
uncountable times, without finding any clue. The most uncertainty is
in regard of the WT routes. The only thing i know is that each WT bank
has 32 channels, each channel with some processing capabilities
(pitch, delay, filter, gain, etc) and there are 32 + 6 sources toward
the routing bus for each bank. I guess that the first 32 sources are
mapped to each individual WT dma channel and the other extra 6 sources
are some kind of downmix of the entire bank. But i am still clueless
about why having 32 individual sources for each channel, if we have
only 32 mixer inputs, and many of them are already being used ? There
is no way to make use of all of them, thats why i guess that there
must be some downmix of each WT block available somehow.


http://www.3dsoundsurge.com/drivers/a3d.html#WINDOWS 9x DRIVER ISSUES


2) How did you perform your "WT DMA" test ?







reply via email to

[Prev in Thread] Current Thread [Next in Thread]