Pulseaudio – Jackd – HamRadio – Noise Reduction

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

https://www.linuxmint.com/

Jackd: Servidor de So (jack1 o jack2)

https://jackaudio.org/

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

https://www.ffmpeg.org/

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

https://ardour.org/

Calf Gear Studio: Son plugins LV2 per poder fer diferents modificacions d’una font de so. Ecualitzadors, limitadors, gates …

https://calf-studio-gear.org/

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

openwebrx – eb3cxq

CARLA

Configuració preferida a 17/10/2022

Configuració que funciona amb LinuxMint 21

Per automatizar el procés al iniciar el qjackctl

Agafem la tarja per defecte que volem

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

Ara podem connectar les diferents interfícies d’àudio

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

carla-jack-multi