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 [email protected] GPLv3
# setup-asoundrc.sh v0.2.0 20090320 [email protected] 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 <[email protected]>
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user