Ebbene si, con Ubuntu 8.04 anche questo è possibile: ascoltare la propria musica su un altro pc in maniera trasparente (ovvero senza che il lettore multimediale se ne accorga)!

music_pulselogo

Sento da ogni dove lamentarsi che PulseAudio è inutile, PulseAudio ha problemi con Flash e Firefox, sarebbe stato meglio lasciare solo Alsa, era meglio quando stavamo peggio (😛 ), ecc … E invece no, io sono un utente contento!🙂 Perché? Chi mi segue sa che ho due computer: un portatile ed un fisso. Il mio portatile ha delle casse audio veramente ridicole, mentre il fisso ha un bel 5.1, quindi, perché non usare l’impianto audio di quest’ultimo?🙂

Come la maggior parte delle operazioni su Ubuntu anche questa è semplicissima (basta saperne l’esistenza)! Intanto dovremo andare ad installare un pò di pacchetti aggiuntivi per poter fare tutto da interfaccia grafica (si, stavolta è preferibile!), quindi, sia sul server che sul client, diamo:

$ sudo apt-get install padevchooser paman paprefs pavucontrol pavumeter

In realtà il pacchetto che interessa a noi è solo padevchooser, ma per funzionare correttamente necessita tutti gli altri!

Abilitiamo l’ascolto sul server:

Andiamo sul computer con l’impianto audio cattivo ed avviamo padevchooser (si trova in Applicazioni -> Audio e Video -> PulseAudio Device Chooser). Comparirà un’icona con dei jack nel vassoio di sistema (nella system tray, se vogliamo dirla in inglese che fa molto cool), clicchiamoci e nel menu che si aprirà selezioniamo Configure Local Sound Server…! Spuntate tutte le opzioni presenti nella scheda Nework Access (ovvero Enable Network Access to local sound devices, Allow the other machine on the LAN to discover local sound devices, Don’t require authentication e Make discoverable network sound devices available locally) ed anche l’unica opzione nella scheda Simultaneous Output (ovvero Add virtual output device for simultaneous output on all local sound cards).

Di seguito gli screenshot delle tre schede appena configurate:

schermata-pulseaudio-preferences schermata-pulseaudio-preferences-1 schermata-pulseaudio-preferences-2

Bene, sul server abbiamo finito! Fate attenzione al fatto che state permettendo a chiunque di collegarsi alle casse del vostro pc! Io ho una rete lan privata, ma se per voi non è così documentatevi su come si utilizza l’autenticazione!

Connettiamo il client:

Anche in questo caso dobbiamo avviare padevchooser (quindi Applicazioni -> Audio e Video -> PulseAudio Device Chooser). Nel solito menu a tendina andiamo su Default Server e, con nostro stupore, notiamo che è spuntato un nuovo dispositivo di nome utente_remoto@macchina_remota! Selezioniamolo ed il gioco è fatto, ogni suono ora verrà reindirizzato all’impianto audio del computer remoto!🙂

Ecco lo screenshot del menu a tendina con il mio server remoto:

schermata-padevchooser

Alcune considerazioni:

Il funzionamento del tutto è davvero semplice, l’autenticazione potrebbe dare alcune rogne perché suppongo vada configurata manualmente (io personalmente non mi sono posto il problema) ed il prezzo da pagare per tutta questa comodità è un largo uso del bitrate della vostra lan: in caso di utilizzo dal computer client ci saranno 60KB/s in download (il perché di una cifra così per qualcosa che dovrebbe essere un semplice ack lo ignoro) e 230KB/s in upload (come sempre sul server le cifre si invertono per download ed upload), mentre a sistema “muto” non ci sarà traffico inutile sulla rete!

Ah, il volume principale ora dovrete regolarlo da padevchooser, il volume del sistema (quello che viene influenzato con le scorciatoie da tastiera) non influenza minimamente quello remoto! ^_^

Alternative:

Il problema di ascoltare musica da remoto me l’ero già posto tempo fa, ma le soluzioni erano un pò troppo macchinose e poco pratiche, le cito giusto per gli avventurieri:

  1. Utilizzare netcat come tramite per una pipe remota, ovvero qualcosa del tipo:
    • $ nc -u -l -p 50000 | aplay #server
    • $ arecord -f cd | nc -u 192.168.1.110 50000 #client

    Oppure pensare di appoggiarsi ad un file di tipo fifo (si creano con mkfifo) e redirigere i file wav direttamente lì (con un cat file.wav > file_tipo_fifo) ed avere un meccanismo automatico di ascolto:

    • $ nc -u -l -p 50000 | aplay #server (rimasto invariato)
    • $ cat file_tipo_fifo | nc -u 192.168.1.110 50000 #client

    Questi sono giusto abbozzi di soluzione (nella prima in realtà vorrei che arecord prendesse l’audio di /dev/dsp in qualche modo), funzionano solo per file wav e, comunque, funzionano male, considerato che con i flussi non continui hanno alcuni problemi qua e là! Dovrei sostituire aplay con mplayer con i giusti settaggi (per lavorare anche in formati diversi dal wav), ma ho abbandonato quest’idea date le troppe incertezze!

  2. Installare NAS (Network Audio System) sul server con dei plugin da aggiungere a tutti i programmi del client che vogliono far uso di questa funzionalità! Questa soluzione ha l’indubbio vantaggio di poter separe i programmi che devono andare in remoto da quelli normali (con pulseaudio gradisco che audacious si senta sull’impianto 5.1, ma per le mie chiamate skype eviterei volentieri! ^_^)!