tyrel.cloud


All posts tagged:


ASLA - Pulseaudio Cheatsheet

Updated by Tyrel on 2020-05-06

Summary

Piping other application audio into your microphone!

ASLA - PulseAudio CheatSheet


IMG


This is very Informal, just a bunch of useful commands and scripts. I will add some structure later. (Once I get this all figured out) Ubuntu 18.04 Bionic


ASLA

Advanced Linux Sound Architecture (ALSA) is a software framework and part of the Linux kernel that provides an application programming interface (API) for sound card device drivers.

Tools:

alsamixer

arecord -r 41000 -d 900 test.wav

aplay test.wav


Pulse Audio

PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. In broad terms ALSA is the sound hardware driver and PulseAudio is the interface engine between Applications and ALSA. It is the default sound server in Ubuntu and Arch Linux.

Wiki

pacmd

pactl

pulseaudio -k

pacmd list-sources |grep name:

pacmd list-sinks |grep name:

Functional PulseAuido Bash Script:

#!/bin/bash

# Kill pulseaudio
pulseaudio -k

# Kill OpenVpn
sudo service openvpn stop

# Declare your microphone and speakers
MICROPHONE="alsa_input.usb-Apple_Inc._Display_Audio_30D6B202-00.analog-mono"
#SPEAKERS="alsa_output.usb-Apple_Inc._Display_Audio_30D6B202-00.analog-stereo"
SPEAKERS="alsa_output.pci-0000_00_1b.0.analog-stereo"

# Create the virtual sinks
pactl load-module module-null-sink sink_name=vsink_capture   sink_properties=device.description="vsink_capture"
pactl load-module module-null-sink sink_name=vsink_fx        sink_properties=device.description="vsink_fx"
pactl load-module module-null-sink sink_name=vsink_fx_mic    sink_properties=device.description="vsink_fx_mic"
pactl load-module module-null-sink sink_name=vsink_fx_to_spk sink_properties=device.description="vsink_fx_to_spk"
#pactl set-sink-volume vsink_fx_to_spk '40%'

# Create a combination virtual sink
pactl load-module module-combine-sink sink_name=capture_combined slaves=vsink_capture,vsink_fx_to_spk

# Create the loopbacks
pactl load-module module-loopback sink=vsink_fx_mic     source="$MICROPHONE"
pactl load-module module-loopback sink=vsink_fx_mic     source=vsink_fx.monitor
pactl load-module module-loopback sink=vsink_fx_to_spk  source=vsink_fx.monitor
pactl load-module module-loopback sink="$SPEAKERS"      source=vsink_fx_to_spk.monitor

# Open pavucontrol
pavucontrol

DIAGRAM:

                   +-------------+         +-------------+
                   | Recording   |         | Video Chat  |
                   | Application |         | Application |
                   +------^------+         | Playback    |
                          |                +-----+-------+
                          |                      |
                          |                      |
                   +------+--------+      +------v-----------+
                   |               |      |                  |
                   | vsink_capture <------+ capture_combined |
                   |               |      |                  |
                   +---------------+      +------+-----------+
                                                 |
                                                 |
                                                 |
                                        +--------v----------+
                                        |                   |   +---------------------+
                                        |  vsink_fx_to_spk  +---> Speakers/Headphones |
                                        |                   |   +---------------------+
                                        +-------^-----------+
                                                |
                                                |
+-------------+     +------------+      +-------+----------+    +-------------+
| Music       |     |            |      |                  |    | Video Chat  |
| Application +----->  vsink_fx  +------>   vsink_fx_mic   +----> Application |
| Playback    |     |            |      |                  |    | Recording   |
+-------------+     +------------+      +-------^----------+    +-------------+
                                                |
                                                |
                                          +-----+------+
                                          | Microphone |
                                          +------------+

Feel like I missed something? Let me know in the comments!