Paràmetres de configuració de PulseAudio
Monitoritzar l’entrada de línia de la tarjeta de so:
echo "load-module module-loopback" >> /etc/pulse/default.pa
pactl load-module module-loopback
Convertir la sortida mono per un sol canal a estereo:
pacmd list-sinks
pacmd load-module module-remap-sink sink_name=mono master=alsa_output.pci-0000_00_1b.0.analog-stereo channels=2 channel_map=mono,mono
Per ajustar els paràmetres del so:
pavucontrol
Configuració completa de reducció de so en temps real.
Utilitzarem el següent grup d’aplicacions per poder fer aquesta tasca.
S.O.: Linux Mint o qualsevol altre linux que us agradi
Jackd: Servidor de So (jack1 o jack2)
Pulseaudio: Servidor de So normalment per defecte en les distribucions modernes
https://www.freedesktop.org/wiki/Software/PulseAudio/
Patchage: Serveix per interconnectar les diferentes peces que fan servir JackD i permet fer la interconnexió personalitzada d’una forma molt senzilla
https://drobilla.net/software/patchage
FFMPEG: Per fer l’enviament del stream a un server IceCAST
zita-njbridge: Per fet l’enviament del stream per si volem enviar-lo a un altre ordinado amb JackD per poder-ho retransmetre via OBS.
https://directory.fsf.org/wiki/Zita-njbridge
Ardour4: Complet estudi de gravació per sistemes Linux. S’utilizarà com a mezclador i gestor dels plugins Calf i Noise-Repellent
Calf Gear Studio: Son plugins LV2 per poder fer diferents modificacions d’una font de so. Ecualitzadors, limitadors, gates …
Noise-Repellent: Plugin LV2 de Luciano Dato. Un espectacular DSP que ens permetrà treure el soroll de QRM i podrem escoltar senyals que normalment no escoltariem.
https://github.com/lucianodato/noise-repellent
Carla és un amfitrió de complements d’àudio amb totes les funcions, amb suport per a molts controladors d’àudio i formats de connectors. És de codi obert i està llicenciat sota la GNU General Public License, versió 2 o posterior.
https://github.com/falkTX/Carla
Després de realitzar la instal·lació de tots aquests paquets procedirem a la configuració.
El primer que farem és fer conviure el servidor PulseAudio amb Jackd. Realitzarem la següent configuració com a usuari.
$mkdir ~/.pulse; cat >~/.pulse/default.pa <<EOF
load-module module-native-protocol-unix
load-module module-jack-sink channels=2
load-module module-jack-source channels=2
load-module module-null-sink
load-module module-stream-restore
load-module module-rescue-streams
load-module module-always-sink
load-module module-suspend-on-idle
set-default-sink jack_out
set-default-source jack_in
EOF
Llavors iniciarem QjackCtl que ens proveïrà de l’inici del servei JackD al nostre ordinador.

En aquest punt ja hauriem de sentir so en el nostre ordinador de forma normal.
Sinó sentissim el so de l’entrada de línia potser es perquè no la tenim seleccionada a nivell de ALSA. Ho podrem fer fàcilment amb el AlsaMixer

A partir d’aquí iniciarem Ardour4.


Llavors iniciarem Patchage per tal de fer les connexions que calgui entre l’entrada de so del line-in i Ardour4 en cas que no s’hagi fet automaticament. Connectarem la sortida del monitor de Ardour4 a la sortida dels altaveus. I la sortida del master als connectors d’streaming si els fem servir. Com ffmpeg o zitaj2n. Així podrem control·lar el que sentim i el què publiquem a la xarxa.

Un cop fetes les conexions i tot funcionant procedirem a configurar els plugins de Ardour4 fins conseguir el so que nosaltres desitjem.




Si volem que la sortida que tenim la volem publicar a través d’un servidor IceCast ho podem fer amb FFMEG:
ffmpeg -f jack -ac 2 -i ffmpeg -acodec libmp3lame -ab 128k -ice_name "HamRadio Test" -ice_description "HamRadio Test" -content_type audio/mpeg -f mp3 icecast://source:password@icecast.server:8000/stream
Si volem enviar el so a un altre ordinador amb un JackD server per poder-ho intregrar amb OBS i fer stream a Youtube / Twitch … podem utilitzar:
zita-j2n ip-serverdesti 8888 # (en el server: zita-n2j ipserverorigen 8888)
CARLA
Configuració preferida a 10/07/2021
Només cal instal·lar els paquets i els plugins que volguem utilitzar com abans. Però la configuració és més senzilla i més òptima a nivell de recursos del nostres ordinador.
La configuració del PulseAudio és la mateixa que l’exemple anterior.
Configuració pel Carla amb el Qjackctl

Dins del programa

En el patchbay.

Els pàmetres pel plugin Noise Repellent son:

La font del so pot ser externa o podem utilitzar un receptor online tipus OpenWebRx

CARLA
Configuració preferida a 17/10/2022
Configuració que funciona amb LinuxMint 21

Per automatizar el procés al iniciar el qjackctl


Script jack.sh
#!/bin/bash
#cat /proc/asound/cards
# 0 [PCH ]: HDA-Intel - HDA Intel PCH
# HDA Intel PCH at 0xf7110000 irq 31
# 1 [Set ]: USB-Audio - C-Media USB Headphone Set
# C-Media USB Headphone Set at usb-0000:00:1a.0-1.4, full speed
# 2 [NVidia ]: HDA-Intel - HDA NVidia
# HDA NVidia at 0xf7080000 irq 17
# 3 [camera ]: USB-Audio - web camera
# Xiongmai web camera at usb-0000:00:14.0-4.1, high speed
# 4 [AUDIO ]: USB-Audio - HIFI AUDIO
# Comtrue-inc HIFI AUDIO at usb-0000:00:1d.0-1.6, high speed
function pulseconfig {
mkdir ~/.pulse 2>&1 > /dev/null
cat >~/.pulse/default.pa <<EOF
load-module module-native-protocol-unix
load-module module-jack-sink channels=2
load-module module-jack-source channels=2
load-module module-null-sink
load-module module-stream-restore
load-module module-rescue-streams
load-module module-always-sink
load-module module-suspend-on-idle
set-default-sink jack_out
set-default-source jack_in
EOF
}
case "$1" in
start)
pulseconfig
killall pulseaudio 2>&1 1> /dev/null &
;;
after)
pacmd set-default-sink jack_out &
sleep 1
alsa_in -j "C-Media_USB_In" -d hw:1 -q 1 2>&1 > /dev/null &
sleep 1
alsa_in -j "Webcam" -d hw:3 -q 1 2>&1 > /dev/null &
sleep 1
alsa_out -j "C-Media_USB_Out" -d hw:1 -q 1 2>&1 > /dev/null &
sleep 1
alsa_out -j "NVidia" -d hw:2 -q 1 2>&1 > /dev/null &
sleep 1
alsa_out -j "DAC" -d hw:4 -q 1 2>&1 > /dev/null &
;;
restart|reload|force-reload)
$0 stop
$0 start
;;
stop)
rm ~/.pulse/default.pa 2>&1 > /dev/null &
killall pulseaudio 2>&1 > /dev/null &
killall alsa_in 2>&1 > /dev/null &
killall alsa_out 2>&1 > /dev/null &
;;
*)
echo "Usage: $0 start|after|stop" >&2
exit 3
;;
esac
Resultat final

Per poder utilitzar Carla amb tot caldrà utilitzar carla-jack-multi
