Etnablog.altervista.org :)

Visitatore: 1313250
Welcome ospite
Menu di accessibilità:
Dimensione carattere:

Home > Linux > I soundservers
Contenuto della pagina:
21 Maggio 2010

I soundservers

"sound servers" (o "sound daemons"), sono ad esempio Pulseaudio, ESounD, NAS, aRTS, JACK.

In sostanza noi passiamo l'audio al sound server, e sarà lui poi a preoccuparsi della comunicazione col driver ALSA nel kernel.

Perchè mettere fra il noi e L'ALSA driver un soundserver?

Il soundserver si preoccupa di gestire i diversi flussi audio, passandoli miscelati all'ALSA driver, magari modificati secondo preferenze da noi impostate.

Ci permette quindi di gestire l'audio in maniera molto flessibile. Per fare questo i soundservers funzionano come programmi in "background" (daemons, "demoni"). In realtà dividere un programma in un "demone" che funziona in background ed in un'interfaccia che lo gestisca ("GUI"), è un approccio sempre più spesso usato nei progetti liberi. Progetti come network manager e dbus possono essere usati da chiunque senza installare gnome. Tale libertà assicura una larga accettazione ed attrae verso lo sviluppo del progetto. dcop necessitava di kdelibs e qt. Il demone, in quanto progetto separato, non ha dipendenze su GNOME o KDE. La GUI invece sarà sviluppata in base all'ambiente desktop scelto.

I soundservers sono apparsi indispensabili con OSS, che non poteva gestire più flussi contemporaneamente. Oggi i soundservers permettono spesso, oltre ad una gestione "centralizzata" dell'audio, anche numerose altre possibilità come l'uso di più schede audio contemporaneamente e persino l'invio dello stesso flusso audio alla rete (e altre funzioni..).

JACK è un audio server (un "demone" ovvero un programma eseguito in background. Di solito i demoni hanno dei nomi che terminano con la lettera "d") multipiattaforma (Linux, Windows, OS X e altre), ha le sue API (funzioni usate dagli sviluppatori di software nei propri programmi, per usare JACK) ed è ritenuto ottimo per l'editing e il mixing.

E' considerato piuttosto performante (bassa latenza, ovvero basso ritardo tra azione ed effetto. Considerate che una latenza di appena 30 ms rende difficile il lavoro ad un musicista in quanto il suono verrebbe percepito come "eco").

qjackctl è la GUI (Graphical user interface) più usata per controllare il demone Jackd.
jack-rack permette di applicare dei filtri audio LADSPA
jackdmp è una versione di Jack per sistemi multiprocessore.
jackeq è un equalizzatore.
patchage: mostra il grafico delle connessioni Jack correnti.

JACK è usato da software come Ardour (registratore multitraccia), Hydrogen (batteria elettronica), Audacity, altre (vedi di LADSPA più avanti).

Jackd è il JACK daemon. Possiamo usare jackd in riga di comando passandogli dei parametri, e comunicargli ad esempio di riprodurre usando il driver ALSA (esempio: jackd -d alsa -d hw:0 -r 44100 ).

aRts (analog realtime synthesizer) era un server audio usato da KDE. Il demone era chiamato "artsd". Si appoggia a OSS o ALSA. KDE 4 ha rimpiazzato Phonon al posto di aRts. Phonon non è un server audio.

Enlightened Sound Daemon (ESD o EsounD), sound server di Enlightened ("window manager"), adesso del tutto rimpiazzato in GNOME da:
- libcanberra (per gli "event sounds" ovvero i suoni di sistema degli ambienti desktop, come GNOME. libcanberra può usare ALSA, PulseAudio, OSS, GStreamer)
- GStreamer/PulseAudio per tutto il resto

Pulseaudio è oggi il sound server standard in diverse distribuzioni linux, è considerato un "tentativo di sostituire ESounD", rispetto a cui ha tempi di latenza minori ed una migliore architettura. Pulseaudio può addirittura mandare l'audio a un altro computer collegato in rete, che monti anch'esso Pulseaudio.

Bisogna considerare che perchè PulseAudio possa interfacciarsi ad altre infrastrutture come GStreamer, ALSA, JACK, bisogna installare dei pacchetti separati, spesso "plugin" dei vari programmi che intendono usare PulseAudio.
xmms-pulse è il plugin di XMMS (è un programma music player) perchè questo usi PulseAudio.
libao-pulse è il plugin per le librerie cross-plattform libao
gst-pulse è il plugin per GStreamer.
pulseaudio-esound-compat: diciamo che questo è uno "script di compatibilità". In sostanza permette di rimpiazzare il pacchetto ESD "esound" creando un link /usr/bin/esd che è un link simbolico a PulseAudio. Sicchè tutte le applicazioni che vorrebbero usare ESD, in realtà vengono "fregate" e usano PulseAudio.

Con PulseAudio potete addirittura fare in modo che solo gli utenti autorizzati possano avere accesso all'audio del pc; usa infatti dei "gruppi":
- pulse (che è per uso interno di PulseAudio, non vi interessa, gli utenti non devono prenderne parte)
- pulse-access (quando in "system mode", il server audio accetta solo le connessioni dei membri al gruppo)
- pulse-rt (per avere accesso all'audio "real time", ma bisogna avere dei kernel "particolari" detti real-time.)

Se il vostro username non fa parte di quei gruppi (per vedere i gruppi di un utente in linux fate su shell "groups username") ma sentite lo stesso l'audio, questo di certo sarà perchè il server è stato fatto partire "localmente" (per verificare ciò fate in shell "ps aux | grep pulse" e verificate se pulseaudio è stato fatto partire dal vostro utente (lo identificate con il codice nella prima colonna, il vostro lo vedete scrivendo su shell "echo $UID" oppure semplicemente "id -u").

In sostanza PulseAudio passa l'audio di tutte le applicazioni che usano le API di Pulseaudio all'ALSA driver. Bisogna fare in modo però che anche le applicazioni che NON usano Pulseaudio, passino comunque da Pulseaudio, in modo che questo possa miscelare il tutto e passarlo all'ALSA driver. Per questo c'è un apposito ALSA pulseaudio plug in. In sostanza prima che i suoni raggiungono l'ALSA driver, l'alsa plugin li dirotta verso Pulseaudio, che può quindi mandarli all'ALSA driver.

In sostanza, fra i file di configurazione di ALSA, dovreste trovare qualche riga di codice in cui è specificato che Pulseaudio viene dichiarato periferica di riproduzione ("pcm") e controllo ("ctl") di default per ALSA. Leggete quindi /usr/share/alsa/alsa.conf, lì dovrebbe trovarsi una lista di altri file di configurazione di ALSA, che vengono infatti letti proprio a partire da alsa.conf, che è il principale. Fra tali file potreste trovare .asoundrc, /etc/asound.conf, /usr/share/alsa/pulse.conf che è appunto il file dove più probabilmente si trova la modifica in questione (o un'altra sottolista di file in cui guardare!).

La modifica consiste di queste semplici righe:

pcm.!default {
type pulse
}

ctl.!default {
type pulse
}

pcm.pulse {
type pulse
}

ctl.pulse {
type pulse
}
Le prime righe impostano "pulse" come periferiche pcm e ctl di default. Le altre righe creano una unità virtuale chiamata "pulse" per pcm (riproduzione) e ctl (controllo).

Se effettuate modifiche ricordatevi di fare ripartire nuovamente le ALSA utils (sudo /etc/init.d/alsa-utils restart).

Due software sono attualmente in sviluppo per gestire PulseAudio:

* pavucontrol (PulseAudio Volume Control): vi dà la possibilità di regolare addirittura il volume di ogni singola applicazione che in quel momento sta riproducendo (o registrando?) qualcosa.. Vi consiglio vivamente di installarlo..

* Paprefs (PulseAudio Preferences). Paprefs configura solo i servers locali e richiede "module-gconf" installato, che serve a rendere alcune opzioni modificabili da GConf (sistema utilizzato da gnome per memorizzare le impostazioni di configurazione, i cui cambiamenti sono controllati dal demone gconfd).

* Gli altri software prodotti per Pulseaudio sono da considerarsi obsoleti:
* Paman (Pulseaudio manager)
* Pavumeter (Pulseaudio Volume Meter)
* Padevchooser (Pulseaudio device chooser)

Gnome stesso fornisce uno strumento di base che si chiama gnome-volume-control (contenuto nel pacchetto gnome-media), che già in se integra un pò tutto quello che serve in fatto di volumi e regolazioni. Purtroppo però, almeno al momento, risulta ancora indispensabile installare strumenti come pavucontrol per una gestione completa dei flussi in entrata/uscita e le applicazioni che vi interagiscono..

Molte applicazioni KDE usano aRts. si può settare aRts ad usare ESD (ESD ha un apposito plugin per usare PulseAudio..).

Amarok, XMMS ed altri media players permettono di scegliere il "motore" da usare tramite le loro "preferenze" (Quindi PulseAudio).


Audacity, basato sulle librerie cross-platform wxWidgets (per la sua interfaccia), usa le API del soundserver multipiattaforma "PortAudio" (Windows, Unix, Macintosh e altre), che alla fine usa ALSA (e PulseAudio controlla ALSA, grazie al "giochetto" sul suo "asound.conf"). Audacity può supportare il server audio Jackd.
Fino ad un pò di tempo fa Audacity aveva qualche problema a funzionare con Pulseaudio, che qualcuno risolveva usando, da riga di comando, il comando padsp ("Pulseaudio OSS wrapper", in pratica è un comando per ridirezionare il suono OSS a Pulseaudio. padsp per intenderci è tipo "aoss", che ridireziona invece verso ALSA). Altri risolvevano il problema sospendendo del tutto Pulseaudio usando "pasuspender".

Oggi, personalmente non riscontro più alcun problema ad usare audacity con Pulseaudio, data l'evoluzione di entrambi, suppongo..

Sono in molti ad usare Audacity per registrare l'audio dei filmati di youtube (video musicali soprattutto), telefonate o altro, in mp3 (grazie a pavucontrol, che permette di impostare la registrazione a "monitor interno".

Vorrei aggiungere qualche parola su Audacity. Sono in molti a dire che sia un software limitato, non assolutamente a paragonabile ad altri famosi audioeditors.

Personalmente ritengo che Audacity dalla versione 1.3.12 in poi, installato e con le sue estensioni abilitate, ovvero le librerie LAME (che servono alla manipolazione di file MP3) e le FFmpeg (che consentono ad Audacity di manipolare al volo formati audio persino proprietari, come i .wma, sebbene lo stesso sito di Audacity dica che non si possa fare..bah!), sia un software estremamente potente e dotato, a differenza di altri più blasonati prodotti, di una interfaccia intuitiva ed accattivante.

Inoltre Audacity può persino sfruttare plugin LADSPA, VST e Nyquist (sono tutti dei linguaggi per creare dei programmi atti a manipolare audio) estendendo le sue possibilità. Non nego che, usandolo, a volte Audacity possa bloccarsi (capita..) ma grazie all'autosalvataggio del progetto, che Audacity opera in automatico di continuo, non ho mai perso un secondo del mio lavoro anche a seguito di un blocco. Devo dire che questa 1.3.12 per ora non mi si è mai bloccata.


Torna al menù principale di "Audio e Linux"

Descrizioni usate nelle foto: 
Postato da: Etnablog in Linux alle 23:04

Permalink | Commenti(0)
Inserisci commento

Commenti:

Nessun commento. Vuoi essere il primo?
Solo gli utenti registrati possono lasciare commenti
Caricamento pagina: 0.01 s
*1 user online
Caricamento pagina: 0.02 s