PDA

Visualizza Versione Completa : Dynamic Range Compression e Normalization con Pulseaudio su Linux



DigitalPayne
28-10-18, 08:49
Da molto tempo avevo un piccolo problema su Linux. Quando guardavo un video o ascoltavo della musica, notavo una grossa disparità di audio tra un contenuto e l'altro costringendomi a regolare spesso il livello del volume. Talvolta anche durante la riproduzione di un singolo file c'erano parti molto rumorose e altre molto silenziose a causa del dynamic range molto ampio. Capitava anche guardando qualche video su YouTube.

Finalmente ho risolto apportando una piccola modifica alla configurazione di pulseaudio.

Innanzitutto assicuratevi di avere pulseaudio installato (di solito dopo l'installazione è abilitato come sistema audio predefinito sovrapponendosi ad alsa per la riproduzione dell'audio).

Scarichiamo e installiamo i plugin LADSPA per pulsaudio (i comandi sono relativi ad Arch Linux):

sudo pacman -Syu pulseaudio-equalizer-ladspa swh-plugins

Apriamo il pannello di configurazione di pulseaudio col comando:

paprefs

Nella scheda "Simultaneous Output", abilitiamo l'opzione "Aggiungere dispositivo virtuale per uscita contemporanea su tutte le schede locali".

Creiamo un nuovo file di testo chiamato "default.pa" in "~/.config/pulse/". Copiamo a salviamo al suo interno la seguente breve configurazione:

.nofail
.include /etc/pulse/default.pa

# Create compressed sink that outpus to the simultaneous output device
load-module module-ladspa-sink sink_name=ladspa_sink master=combined plugin=dyson_compress_1403 label=dysonCompress control=0,1,0.5,0.99

# Create normalized sink that outputs to the compressed sink
load-module module-ladspa-sink sink_name=ladspa_normalized master=ladspa_sink plugin=fast_lookahead_limiter_1913 label=fastLookaheadLimiter control=10,0,0.8

# Comment out the line below to disable setting the normalized output by default:
set-default-sink ladspa_normalized


A questo punto riavviamo il server pulseaudio con

pulseaudio -k

Ora se consultiamo la lista dei dispositivi di riproduzione (con Plasma 5 basta dare un'occhiata all'icona del volume in basso a destra) abbiamo un nuovo dispositivo virtuale chiamato "Simultaneous output on Audio..." composto da altri due sottomoduli LADSPA che si occupano della compressione del dynamic range e della normalizzazione.

Assicuriamoci che "Simultaneous output on Audio..." sia abilitato (io all'inizio l'ho trovato silenzato e ho dovuto sbloccarlo) e impostato come predefinito e il gioco è fatto.

Da questo momento in poi tutti gli audio avranno lo stesso volume e non ci saranno oscillazioni tali da rompervi i timpani nelle parti più rumorose.

Ho gia detto che amo Linux? Beh, sì, lo amo. <3

DigitalPayne
04-11-18, 12:45
No, niente, dimenticate tutto quello che ho scritto. Molto meglio utilizzare pulseeffetcs.

Si cancella il file ~/.config/pulse/default.pa creato in precedenza, poi si riavvia il sistema per tornare alla configurazione standard.

Si scarica e installa pulseeffects con tutte le sue dipendenze opzionali:

sudo pacman -Syu pulseeffects calf mda.lv2 rubberband zam-plugins

Una volta finita l'installazione, si lancia pulseeffects (ha una GUI, dunque basta prenderlo dalla lista programmi, niente riga di comando).

Una volta entrati nel programma, si clicca sull'icona dell'altoparlante in alto a sinistra. Poi nella lista sul lato sinistro si seleziona "Auto Gain" e nel riquadro principale si abilita il modulo cliccando sul bottone centrale.

Basta così, con questo modulo attivato si ottiene sia compressione dinamica che normalizzazione in un sol colpo e funziona molto, ma molto, meglio.

L'unica cosà in più è che si può giocare col parametro target, io l'ho alzato a 26 facendo diverse prove con le cuffie, ma anche il 23 di default va bene. Il resto non l'ho toccato.

Per finire e rendere il tutto operativo ad ogni avvio, basta cliccare sull'icona delle impostazioni in alto a destra, selezionare la scheda General e spuntare Enable service at startup e Enable All Applications.

Si può chiudere il programma (rimane in esecuzione in background) e dalle impostazioni audio (in Plasma 5 sempre accessibili dalla system tray in basso a destra) si imposta l'uscita "PulseEffects(apps)" come predefinita.

Ecco tutto.