Question about the snd-dummy driver

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

 



Hi,

Actually, i am using the alsa dummy driver for the linux kernel.

Indeed, for a specific proof of concept, i am trying to use an audio 
loopback driver as virtual microphone.

An audio stream is injecting into the dummy using the ffmpeg tool and 
another instance of the tool get the sound back but the sound in output 
is not good.

I join more detail just below about my problem if someone can have few 
minutes to send me a feedback.

Maybe i have a problem with my alsa_id, about the format or somewhere else.

Thanks in advance.

-----------------------------------------------------------------------------------------------------

More information about :

I have an local stream encoded with the pcm_s16le codec.

I need virtual audio driver without any link with a hardware. Indeed, i 
need to inject/write/play an audio pcm stream into this driver and to to 
read/record from the same driver in output.

I can test the audio using the ffmpeg tool and it works fine :

     /usr/local/bin/ffplay -f s16le -acodec pcm_s16le -ar 44.1k -ac 1 -i 
tcp://localhost:4001

The first question is to use either the snd-aloop or snd-dummy driver ? 
which one is the best to use ?

The alsa ID to used is obtain as follow :

     export ALSA_ID="`cat /proc/asound/modules|grep snd_dummy|awk 
'{print $1}'`"
     echo ${ALSA_ID}
     1
     (not sure i have to use only 1)

Here is how i play the pcm audio stream into the Dummy driver :

     /usr/local/bin/ffmpeg -f s16le -acodec pcm_s16le -ar 44.1k -ac 1 -i 
tcp://localhost:4001 -acodec pcm_s16le -ar 44.1k -ac 1 -f alsa hw:${ALSA_ID}

For the test, the playback of the sound through the alsa drivers is done 
as follow :

     /usr/local/bin/ffplay -acodec pcm_s16le -ar 44.1k -ac 1 -f alsa 
hw:${ALSA_ID}

The recording is done like this :

     /usr/local/bin/ffmpeg -f v4l2 -i /dev/video2 -f alsa -i 
hw:${ALSA_ID} -ss 00:00:05 -async 1 
/tmp/record/live-record-1427383242378.mp4

The driver have the following configuration :

     /etc/modules-load.d/sound-loopback.conf

     snd-dummy

     /etc/modprobe.d/sound-loopback.conf

     options snd-dummy fake_buffer=0 pcm_devs=4 enable=1

$ lsmod | grep snd

snd_hda_codec_hdmi     46368  1
snd_hda_codec_realtek    65580  1
snd_hda_intel          56531  4
snd_hda_codec         192906  3 
snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel
snd_dummy              20483  2
snd_hwdep              13602  1 snd_hda_codec
snd_aloop              23396  2
snd_seq_midi           13324  0
snd_seq_midi_event     14899  1 snd_seq_midi
snd_pcm               102099  6 
snd_aloop,snd_dummy,snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
snd_page_alloc         18710  2 snd_pcm,snd_hda_intel
snd_rawmidi            30144  1 snd_seq_midi
snd_seq                61560  2 snd_seq_midi_event,snd_seq_midi
snd_seq_device         14497  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              29482  2 snd_pcm,snd_seq
snd                    69322  28 
snd_hda_codec_realtek,snd_aloop,snd_dummy,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_seq_midi
soundcore              12680  1 snd

$ cat /etc/modprobe.d/alsa-base.conf

# autoloader aliases
install sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7

# Cause optional modules to be loaded above generic modules
install snd /sbin/modprobe --ignore-install snd $CMDLINE_OPTS && { 
/sbin/modprobe --quiet --use-blacklist snd-ioctl32 ; /sbin/modprobe 
--quiet --use-blacklist snd-seq ; }
#
# Workaround at bug #499695 (reverted in Ubuntu see LP #319505)
install snd-pcm /sbin/modprobe --ignore-install snd-pcm $CMDLINE_OPTS && 
{ /sbin/modprobe --quiet --use-blacklist snd-pcm-oss ; : ; }
install snd-mixer /sbin/modprobe --ignore-install snd-mixer 
$CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-mixer-oss 
; : ; }
install snd-seq /sbin/modprobe --ignore-install snd-seq $CMDLINE_OPTS && 
{ /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; /sbin/modprobe 
--quiet --use-blacklist snd-seq-oss ; : ; }
#
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi 
$CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; 
: ; }
# Cause optional modules to be loaded above sound card driver modules
install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 
$CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist 
snd-emu10k1-synth ; }
install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx 
$CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq ; }

# Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)
install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && 
{ /sbin/modprobe --quiet --use-blacklist saa7134-alsa ; : ; }
# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
options snd-usb-audio index=-2
options snd-usb-caiaq index=-2
options snd-usb-ua101 index=-2
options snd-usb-us122l index=-2
options snd-usb-usx2y index=-2
# Ubuntu #62691, enable MPU for snd-cmipci
options snd-cmipci mpu_port=0x330 fm_port=0x388
# Keep snd-pcsp from being loaded as first soundcard
options snd-pcsp index=-2
# Keep snd-usb-audio from beeing loaded as first soundcard
options snd-usb-audio index=-2

I am using the following script to generate the /home/myuser/.asoundrc 
system file :

/etc/amahealth/setup-asoundrc.sh

#!/bin/bash
# setup-asoundrc.sh v0.1.0 20090101 markc@xxxxxxxxx GPLv3
# setup-asoundrc.sh v0.2.0 20090320 quatro_por_quatro@xxxxxxxx GPLv3
#
# A simple script to create a particular default audio device regardless
# of what cards are loaded or in what order. It could be used anytime or
# placed in a ~/.bashrc script for a persistent setup every login.
#
# Usage: setup-asoundrc.sh [DEFAULT_CARD] > ~/.asoundrc

# use the first parameter as the card name, or else
# look for the sound card, discarding those that are only microphones
# when there are multiple cards, use the first one
if default_card="${1:-$(cat "$(for f in $(ls -1 
/proc/asound/card[0-9]*/{midi,codec}* 2>/dev/null); do echo "${f%/*}"; 
done \
| sed -e '\|^[\[:blank:]\]$|d' -e 'q')/id" 2>/dev/null)}"; then
    echo "Using sound card: ${default_card}" >&2
    cat /proc/asound/card[0-9]*/id | \
    gawk --assign default_card="${default_card}" \
'{print "pcm."$1" { type hw; card "$1"; }\nctl."$1" { type hw; card 
"$1"; }" }
END {print "pcm.!default pcm."default_card"\nctl.!default 
ctl."default_card}'
else
    echo "Warning: No sound cards found." >&2
fi

Used like this :

$ sudo /etc/setup-asoundrc.sh Dummy > /home/myuser/.soundrc

That provide the following file :

pcm.Loopback { type hw; card Loopback; }
ctl.Loopback { type hw; card Loopback; }
pcm.Dummy { type hw; card Dummy; }
ctl.Dummy { type hw; card Dummy; }
pcm.HDMI { type hw; card HDMI; }
ctl.HDMI { type hw; card HDMI; }
pcm.PCH { type hw; card PCH; }
ctl.PCH { type hw; card PCH; }
pcm.!default pcm.Dummy
ctl.!default ctl.Dummy

Here are more information about :

$ aplay -l
**** Liste des Périphériques Matériels PLAYBACK ****
carte 0: Loopback [Loopback], périphérique 0: Loopback PCM [Loopback PCM]
   Sous-périphériques: 8/8
   Sous-périphérique #0: subdevice #0
   Sous-périphérique #1: subdevice #1
   Sous-périphérique #2: subdevice #2
   Sous-périphérique #3: subdevice #3
   Sous-périphérique #4: subdevice #4
   Sous-périphérique #5: subdevice #5
   Sous-périphérique #6: subdevice #6
   Sous-périphérique #7: subdevice #7
carte 0: Loopback [Loopback], périphérique 1: Loopback PCM [Loopback PCM]
   Sous-périphériques: 8/8
   Sous-périphérique #0: subdevice #0
   Sous-périphérique #1: subdevice #1
   Sous-périphérique #2: subdevice #2
   Sous-périphérique #3: subdevice #3
   Sous-périphérique #4: subdevice #4
   Sous-périphérique #5: subdevice #5
   Sous-périphérique #6: subdevice #6
   Sous-périphérique #7: subdevice #7
carte 1: Dummy [Dummy], périphérique 0: Dummy PCM [Dummy PCM]
   Sous-périphériques: 7/8
   Sous-périphérique #0: subdevice #0
   Sous-périphérique #1: subdevice #1
   Sous-périphérique #2: subdevice #2
   Sous-périphérique #3: subdevice #3
   Sous-périphérique #4: subdevice #4
   Sous-périphérique #5: subdevice #5
   Sous-périphérique #6: subdevice #6
   Sous-périphérique #7: subdevice #7
carte 1: Dummy [Dummy], périphérique 1: Dummy PCM [Dummy PCM]
   Sous-périphériques: 8/8
   Sous-périphérique #0: subdevice #0
   Sous-périphérique #1: subdevice #1
   Sous-périphérique #2: subdevice #2
   Sous-périphérique #3: subdevice #3
   Sous-périphérique #4: subdevice #4
   Sous-périphérique #5: subdevice #5
   Sous-périphérique #6: subdevice #6
   Sous-périphérique #7: subdevice #7
carte 1: Dummy [Dummy], périphérique 2: Dummy PCM [Dummy PCM]
   Sous-périphériques: 8/8
   Sous-périphérique #0: subdevice #0
   Sous-périphérique #1: subdevice #1
   Sous-périphérique #2: subdevice #2
   Sous-périphérique #3: subdevice #3
   Sous-périphérique #4: subdevice #4
   Sous-périphérique #5: subdevice #5
   Sous-périphérique #6: subdevice #6
   Sous-périphérique #7: subdevice #7
carte 1: Dummy [Dummy], périphérique 3: Dummy PCM [Dummy PCM]
   Sous-périphériques: 8/8
   Sous-périphérique #0: subdevice #0
   Sous-périphérique #1: subdevice #1
   Sous-périphérique #2: subdevice #2
   Sous-périphérique #3: subdevice #3
   Sous-périphérique #4: subdevice #4
   Sous-périphérique #5: subdevice #5
   Sous-périphérique #6: subdevice #6
   Sous-périphérique #7: subdevice #7
carte 2: HDMI [HDA Intel HDMI], périphérique 3: HDMI 0 [HDMI 0]
   Sous-périphériques: 1/1
   Sous-périphérique #0: subdevice #0
carte 2: HDMI [HDA Intel HDMI], périphérique 7: HDMI 1 [HDMI 1]
   Sous-périphériques: 1/1
   Sous-périphérique #0: subdevice #0
carte 2: HDMI [HDA Intel HDMI], périphérique 8: HDMI 2 [HDMI 2]
   Sous-périphériques: 1/1
   Sous-périphérique #0: subdevice #0
carte 3: PCH [HDA Intel PCH], périphérique 0: ALC668 Analog [ALC668 Analog]
   Sous-périphériques: 1/1
   Sous-périphérique #0: subdevice #0

$ aplay -L
null
     Discard all samples (playback) or generate zero samples (capture)
pulse
     PulseAudio Sound Server
default
     Playback/recording through the PulseAudio sound server
sysdefault:CARD=Loopback
     Loopback, Loopback PCM
     Default Audio Device
dmix:CARD=Loopback,DEV=0
     Loopback, Loopback PCM
     Direct sample mixing device
dmix:CARD=Loopback,DEV=1
     Loopback, Loopback PCM
     Direct sample mixing device
dsnoop:CARD=Loopback,DEV=0
     Loopback, Loopback PCM
     Direct sample snooping device
dsnoop:CARD=Loopback,DEV=1
     Loopback, Loopback PCM
     Direct sample snooping device
hw:CARD=Loopback,DEV=0
     Loopback, Loopback PCM
     Direct hardware device without any conversions
hw:CARD=Loopback,DEV=1
     Loopback, Loopback PCM
     Direct hardware device without any conversions
plughw:CARD=Loopback,DEV=0
     Loopback, Loopback PCM
     Hardware device with all software conversions
plughw:CARD=Loopback,DEV=1
     Loopback, Loopback PCM
     Hardware device with all software conversions
sysdefault:CARD=Dummy
     Dummy, Dummy PCM
     Default Audio Device
dmix:CARD=Dummy,DEV=0
     Dummy, Dummy PCM
     Direct sample mixing device
dmix:CARD=Dummy,DEV=1
     Dummy, Dummy PCM
     Direct sample mixing device
dmix:CARD=Dummy,DEV=2
     Dummy, Dummy PCM
     Direct sample mixing device
dmix:CARD=Dummy,DEV=3
     Dummy, Dummy PCM
     Direct sample mixing device
dsnoop:CARD=Dummy,DEV=0
     Dummy, Dummy PCM
     Direct sample snooping device
dsnoop:CARD=Dummy,DEV=1
     Dummy, Dummy PCM
     Direct sample snooping device
dsnoop:CARD=Dummy,DEV=2
     Dummy, Dummy PCM
     Direct sample snooping device
dsnoop:CARD=Dummy,DEV=3
     Dummy, Dummy PCM
     Direct sample snooping device
hw:CARD=Dummy,DEV=0
     Dummy, Dummy PCM
     Direct hardware device without any conversions
hw:CARD=Dummy,DEV=1
     Dummy, Dummy PCM
     Direct hardware device without any conversions
hw:CARD=Dummy,DEV=2
     Dummy, Dummy PCM
     Direct hardware device without any conversions
hw:CARD=Dummy,DEV=3
     Dummy, Dummy PCM
     Direct hardware device without any conversions
plughw:CARD=Dummy,DEV=0
     Dummy, Dummy PCM
     Hardware device with all software conversions
plughw:CARD=Dummy,DEV=1
     Dummy, Dummy PCM
     Hardware device with all software conversions
plughw:CARD=Dummy,DEV=2
     Dummy, Dummy PCM
     Hardware device with all software conversions
plughw:CARD=Dummy,DEV=3
     Dummy, Dummy PCM
     Hardware device with all software conversions
hdmi:CARD=HDMI,DEV=0
     HDA Intel HDMI, HDMI 0
     HDMI Audio Output
hdmi:CARD=HDMI,DEV=1
     HDA Intel HDMI, HDMI 1
     HDMI Audio Output
hdmi:CARD=HDMI,DEV=2
     HDA Intel HDMI, HDMI 2
     HDMI Audio Output
dmix:CARD=HDMI,DEV=3
     HDA Intel HDMI, HDMI 0
     Direct sample mixing device
dmix:CARD=HDMI,DEV=7
     HDA Intel HDMI, HDMI 1
     Direct sample mixing device
dmix:CARD=HDMI,DEV=8
     HDA Intel HDMI, HDMI 2
     Direct sample mixing device
dsnoop:CARD=HDMI,DEV=3
     HDA Intel HDMI, HDMI 0
     Direct sample snooping device
dsnoop:CARD=HDMI,DEV=7
     HDA Intel HDMI, HDMI 1
     Direct sample snooping device
dsnoop:CARD=HDMI,DEV=8
     HDA Intel HDMI, HDMI 2
     Direct sample snooping device
hw:CARD=HDMI,DEV=3
     HDA Intel HDMI, HDMI 0
     Direct hardware device without any conversions
hw:CARD=HDMI,DEV=7
     HDA Intel HDMI, HDMI 1
     Direct hardware device without any conversions
hw:CARD=HDMI,DEV=8
     HDA Intel HDMI, HDMI 2
     Direct hardware device without any conversions
plughw:CARD=HDMI,DEV=3
     HDA Intel HDMI, HDMI 0
     Hardware device with all software conversions
plughw:CARD=HDMI,DEV=7
     HDA Intel HDMI, HDMI 1
     Hardware device with all software conversions
plughw:CARD=HDMI,DEV=8
     HDA Intel HDMI, HDMI 2
     Hardware device with all software conversions
sysdefault:CARD=PCH
     HDA Intel PCH, ALC668 Analog
     Default Audio Device
front:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     Front speakers
surround40:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
dmix:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     Direct sample mixing device
dsnoop:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     Direct sample snooping device
hw:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     Direct hardware device without any conversions
plughw:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     Hardware device with all software conversions

$ arecord -l
**** Liste des Périphériques Matériels CAPTURE ****
carte 0: Loopback [Loopback], périphérique 0: Loopback PCM [Loopback PCM]
   Sous-périphériques: 8/8
   Sous-périphérique #0: subdevice #0
   Sous-périphérique #1: subdevice #1
   Sous-périphérique #2: subdevice #2
   Sous-périphérique #3: subdevice #3
   Sous-périphérique #4: subdevice #4
   Sous-périphérique #5: subdevice #5
   Sous-périphérique #6: subdevice #6
   Sous-périphérique #7: subdevice #7
carte 0: Loopback [Loopback], périphérique 1: Loopback PCM [Loopback PCM]
   Sous-périphériques: 8/8
   Sous-périphérique #0: subdevice #0
   Sous-périphérique #1: subdevice #1
   Sous-périphérique #2: subdevice #2
   Sous-périphérique #3: subdevice #3
   Sous-périphérique #4: subdevice #4
   Sous-périphérique #5: subdevice #5
   Sous-périphérique #6: subdevice #6
   Sous-périphérique #7: subdevice #7
carte 1: Dummy [Dummy], périphérique 0: Dummy PCM [Dummy PCM]
   Sous-périphériques: 7/8
   Sous-périphérique #0: subdevice #0
   Sous-périphérique #1: subdevice #1
   Sous-périphérique #2: subdevice #2
   Sous-périphérique #3: subdevice #3
   Sous-périphérique #4: subdevice #4
   Sous-périphérique #5: subdevice #5
   Sous-périphérique #6: subdevice #6
   Sous-périphérique #7: subdevice #7
carte 1: Dummy [Dummy], périphérique 1: Dummy PCM [Dummy PCM]
   Sous-périphériques: 8/8
   Sous-périphérique #0: subdevice #0
   Sous-périphérique #1: subdevice #1
   Sous-périphérique #2: subdevice #2
   Sous-périphérique #3: subdevice #3
   Sous-périphérique #4: subdevice #4
   Sous-périphérique #5: subdevice #5
   Sous-périphérique #6: subdevice #6
   Sous-périphérique #7: subdevice #7
carte 1: Dummy [Dummy], périphérique 2: Dummy PCM [Dummy PCM]
   Sous-périphériques: 8/8
   Sous-périphérique #0: subdevice #0
   Sous-périphérique #1: subdevice #1
   Sous-périphérique #2: subdevice #2
   Sous-périphérique #3: subdevice #3
   Sous-périphérique #4: subdevice #4
   Sous-périphérique #5: subdevice #5
   Sous-périphérique #6: subdevice #6
   Sous-périphérique #7: subdevice #7
carte 1: Dummy [Dummy], périphérique 3: Dummy PCM [Dummy PCM]
   Sous-périphériques: 8/8
   Sous-périphérique #0: subdevice #0
   Sous-périphérique #1: subdevice #1
   Sous-périphérique #2: subdevice #2
   Sous-périphérique #3: subdevice #3
   Sous-périphérique #4: subdevice #4
   Sous-périphérique #5: subdevice #5
   Sous-périphérique #6: subdevice #6
   Sous-périphérique #7: subdevice #7
carte 3: PCH [HDA Intel PCH], périphérique 0: ALC668 Analog [ALC668 Analog]
   Sous-périphériques: 1/1
   Sous-périphérique #0: subdevice #0

$ arecord -L
null
     Discard all samples (playback) or generate zero samples (capture)
pulse
     PulseAudio Sound Server
default
     Playback/recording through the PulseAudio sound server
sysdefault:CARD=Loopback
     Loopback, Loopback PCM
     Default Audio Device
dmix:CARD=Loopback,DEV=0
     Loopback, Loopback PCM
     Direct sample mixing device
dmix:CARD=Loopback,DEV=1
     Loopback, Loopback PCM
     Direct sample mixing device
dsnoop:CARD=Loopback,DEV=0
     Loopback, Loopback PCM
     Direct sample snooping device
dsnoop:CARD=Loopback,DEV=1
     Loopback, Loopback PCM
     Direct sample snooping device
hw:CARD=Loopback,DEV=0
     Loopback, Loopback PCM
     Direct hardware device without any conversions
hw:CARD=Loopback,DEV=1
     Loopback, Loopback PCM
     Direct hardware device without any conversions
plughw:CARD=Loopback,DEV=0
     Loopback, Loopback PCM
     Hardware device with all software conversions
plughw:CARD=Loopback,DEV=1
     Loopback, Loopback PCM
     Hardware device with all software conversions
sysdefault:CARD=Dummy
     Dummy, Dummy PCM
     Default Audio Device
dmix:CARD=Dummy,DEV=0
     Dummy, Dummy PCM
     Direct sample mixing device
dmix:CARD=Dummy,DEV=1
     Dummy, Dummy PCM
     Direct sample mixing device
dmix:CARD=Dummy,DEV=2
     Dummy, Dummy PCM
     Direct sample mixing device
dmix:CARD=Dummy,DEV=3
     Dummy, Dummy PCM
     Direct sample mixing device
dsnoop:CARD=Dummy,DEV=0
     Dummy, Dummy PCM
     Direct sample snooping device
dsnoop:CARD=Dummy,DEV=1
     Dummy, Dummy PCM
     Direct sample snooping device
dsnoop:CARD=Dummy,DEV=2
     Dummy, Dummy PCM
     Direct sample snooping device
dsnoop:CARD=Dummy,DEV=3
     Dummy, Dummy PCM
     Direct sample snooping device
hw:CARD=Dummy,DEV=0
     Dummy, Dummy PCM
     Direct hardware device without any conversions
hw:CARD=Dummy,DEV=1
     Dummy, Dummy PCM
     Direct hardware device without any conversions
hw:CARD=Dummy,DEV=2
     Dummy, Dummy PCM
     Direct hardware device without any conversions
hw:CARD=Dummy,DEV=3
     Dummy, Dummy PCM
     Direct hardware device without any conversions
plughw:CARD=Dummy,DEV=0
     Dummy, Dummy PCM
     Hardware device with all software conversions
plughw:CARD=Dummy,DEV=1
     Dummy, Dummy PCM
     Hardware device with all software conversions
plughw:CARD=Dummy,DEV=2
     Dummy, Dummy PCM
     Hardware device with all software conversions
plughw:CARD=Dummy,DEV=3
     Dummy, Dummy PCM
     Hardware device with all software conversions
sysdefault:CARD=PCH
     HDA Intel PCH, ALC668 Analog
     Default Audio Device
front:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     Front speakers
surround40:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
dmix:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     Direct sample mixing device
dsnoop:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     Direct sample snooping device
hw:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     Direct hardware device without any conversions
plughw:CARD=PCH,DEV=0
     HDA Intel PCH, ALC668 Analog
     Hardware device with all software conversions

$ ls /proc/asound/
card0/    card1/    card2/    card3/    cards     devices Dummy/    
HDMI/     hwdep     Loopback/ modules   PCH/ pcm       seq/      
timers    version

$ cat /proc/asound/pcm
00-00: Loopback PCM : Loopback PCM : playback 8 : capture 8
00-01: Loopback PCM : Loopback PCM : playback 8 : capture 8
01-00: Dummy PCM : Dummy PCM : playback 8 : capture 8
02-03: HDMI 0 : HDMI 0 : playback 1
02-07: HDMI 1 : HDMI 1 : playback 1
02-08: HDMI 2 : HDMI 2 : playback 1
03-00: ALC668 Analog : ALC668 Analog : playback 1 : capture 1

$ cat /proc/asound/modules
  0 snd_aloop
  1 snd_dummy
  2 snd_hda_intel
  3 snd_hda_intel

$ cat /proc/asound/devices
   1:        : sequencer
   2: [ 0- 1]: digital audio playback
   3: [ 0- 1]: digital audio capture
   4: [ 0- 0]: digital audio playback
   5: [ 0- 0]: digital audio capture
   6: [ 0]   : control
   7: [ 1- 0]: digital audio playback
   8: [ 1- 0]: digital audio capture
   9: [ 1]   : control
  10: [ 3- 0]: digital audio playback
  11: [ 3- 0]: digital audio capture
  12: [ 3- 0]: hardware dependent
  13: [ 3]   : control
  14: [ 2- 8]: digital audio playback
  15: [ 2- 7]: digital audio playback
  16: [ 2- 3]: digital audio playback
  17: [ 2- 0]: hardware dependent
  18: [ 2]   : control
  33:        : timer

$ cat /proc/asound/cards
  0 [Loopback       ]: Loopback - Loopback
                       Loopback 1
  1 [Dummy          ]: Dummy - Dummy
                       Dummy 1
  2 [HDMI           ]: HDA-Intel - HDA Intel HDMI
                       HDA Intel HDMI at 0xf7a14000 irq 53
  3 [PCH            ]: HDA-Intel - HDA Intel PCH
                       HDA Intel PCH at 0xf7a10000 irq 52

$ cat /proc/asound/hwdep
03-00: HDA Codec 0
02-00: HDA Codec 0

$ cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version k3.13.0-46-generic.
amahealth@amahealth-pc:~/tmp/webui-dev/DEBIAN$ cat /proc/asound/timers
G0: system timer : 4000.000us (10000000 ticks)
P0-0-0: PCM playback 0-0-0 : SLAVE
P0-0-1: PCM capture 0-0-1 : SLAVE
P0-0-2: PCM playback 0-0-2 : SLAVE
P0-0-3: PCM capture 0-0-3 : SLAVE
P0-0-4: PCM playback 0-0-4 : SLAVE
P0-0-5: PCM capture 0-0-5 : SLAVE
P0-0-6: PCM playback 0-0-6 : SLAVE
P0-0-7: PCM capture 0-0-7 : SLAVE
P0-0-8: PCM playback 0-0-8 : SLAVE
P0-0-9: PCM capture 0-0-9 : SLAVE
P0-0-10: PCM playback 0-0-10 : SLAVE
P0-0-11: PCM capture 0-0-11 : SLAVE
P0-0-12: PCM playback 0-0-12 : SLAVE
P0-0-13: PCM capture 0-0-13 : SLAVE
P0-0-14: PCM playback 0-0-14 : SLAVE
P0-0-15: PCM capture 0-0-15 : SLAVE
P0-1-0: PCM playback 0-1-0 : SLAVE
P0-1-1: PCM capture 0-1-1 : SLAVE
P0-1-2: PCM playback 0-1-2 : SLAVE
P0-1-3: PCM capture 0-1-3 : SLAVE
P0-1-4: PCM playback 0-1-4 : SLAVE
P0-1-5: PCM capture 0-1-5 : SLAVE
P0-1-6: PCM playback 0-1-6 : SLAVE
P0-1-7: PCM capture 0-1-7 : SLAVE
P0-1-8: PCM playback 0-1-8 : SLAVE
P0-1-9: PCM capture 0-1-9 : SLAVE
P0-1-10: PCM playback 0-1-10 : SLAVE
P0-1-11: PCM capture 0-1-11 : SLAVE
P0-1-12: PCM playback 0-1-12 : SLAVE
P0-1-13: PCM capture 0-1-13 : SLAVE
P0-1-14: PCM playback 0-1-14 : SLAVE
P0-1-15: PCM capture 0-1-15 : SLAVE
P1-0-0: PCM playback 1-0-0 : SLAVE
P1-0-1: PCM capture 1-0-1 : SLAVE
P1-0-2: PCM playback 1-0-2 : SLAVE
P1-0-3: PCM capture 1-0-3 : SLAVE
P1-0-4: PCM playback 1-0-4 : SLAVE
P1-0-5: PCM capture 1-0-5 : SLAVE
P1-0-6: PCM playback 1-0-6 : SLAVE
P1-0-7: PCM capture 1-0-7 : SLAVE
P1-0-8: PCM playback 1-0-8 : SLAVE
P1-0-9: PCM capture 1-0-9 : SLAVE
P1-0-10: PCM playback 1-0-10 : SLAVE
P1-0-11: PCM capture 1-0-11 : SLAVE
P1-0-12: PCM playback 1-0-12 : SLAVE
P1-0-13: PCM capture 1-0-13 : SLAVE
P1-0-14: PCM playback 1-0-14 : SLAVE
P1-0-15: PCM capture 1-0-15 : SLAVE
P2-3-0: PCM playback 2-3-0 : SLAVE
P2-7-0: PCM playback 2-7-0 : SLAVE
P2-8-0: PCM playback 2-8-0 : SLAVE
P3-0-0: PCM playback 3-0-0 : SLAVE
P3-0-1: PCM capture 3-0-1 : SLAVE

$ tree /dev/snd/
/dev/snd/
├── by-path
│   ├── pci-0000:00:03.0 -> ../controlC2
│   ├── pci-0000:00:1b.0 -> ../controlC3
│   └── platform-snd_dummy.0 -> ../controlC1
├── controlC0
├── controlC1
├── controlC2
├── controlC3
├── hwC2D0
├── hwC3D0
├── pcmC0D0c
├── pcmC0D0p
├── pcmC0D1c
├── pcmC0D1p
├── pcmC1D0c
├── pcmC1D0p
├── pcmC1D1c
├── pcmC1D1p
├── pcmC1D2c
├── pcmC1D2p
├── pcmC1D3c
├── pcmC1D3p
├── pcmC2D3p
├── pcmC2D7p
├── pcmC2D8p
├── pcmC3D0c
├── pcmC3D0p
├── seq
└── timer

1 directory, 28 files

$ tree /sys/module/snd_dummy/
/sys/module/snd_dummy/
├── coresize
├── drivers
│   └── platform:snd_dummy -> ../../../bus/platform/drivers/snd_dummy
├── holders
├── initsize
├── initstate
├── notes
├── parameters
│   ├── enable
│   ├── fake_buffer
│   ├── hrtimer
│   ├── id
│   ├── index
│   ├── model
│   ├── pcm_devs
│   └── pcm_substreams
├── refcnt
├── sections
│   ├── __jump_table
│   ├── __mcount_loc
│   └── __param
├── srcversion
├── taint
└── uevent

6 directories, 18 files

$ modinfo snd-dummy

filename: /lib/modules/3.13.0-46-generic/kernel/sound/drivers/snd-dummy.ko
license:        GPL
description:    Dummy soundcard (/dev/null)
author:         Jaroslav Kysela <perex@xxxxxxxx>
srcversion:     BE4ED116DC56DB7CDC157FD
depends:        snd,snd-pcm
intree:         Y
vermagic:       3.13.0-46-generic SMP mod_unload modversions
signer:         Magrathea: Glacier signing key
sig_key: C7:61:33:64:BC:2A:A1:9D:70:BF:0C:6E:59:BF:8A:CA:FF:65:C8:79
sig_hashalgo:   sha512
parm:           index:Index value for dummy soundcard. (array of int)
parm:           id:ID string for dummy soundcard. (array of charp)
parm:           enable:Enable this dummy soundcard. (array of bool)
parm:           model:Soundcard model. (array of charp)
parm:           pcm_devs:PCM devices # (0-4) for dummy driver. (array of 
int)
parm:           pcm_substreams:PCM substreams # (1-128) for dummy 
driver. (array of int)
parm:           fake_buffer:Fake buffer allocations. (bool)
parm:           hrtimer:Use hrtimer as the timer source. (bool)

Regards


Thierry GAYET
Mobile : +33.663.849.589
Skype : terranova44 / tux35220
Member of the GNU/Linux Fundation : 
https://www.linuxfoundation.org/users/thierryg35
www.nextinnovation.org

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user





[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux