Musiikit soimaan Debianista Androidiin

Mu­sii­kin soit­ta­mi­nen De­bi­an-pöy­tä­ko­neel­ta ver­kon yli And­roid-tab­le­til­le on­nis­tuu kyl­lä, mut­ta hie­man sää­tö­jä täy­tyy teh­dä.
Kuva: Kuva­kaappaus BubbleUPnP-sovel­luksesta

Tykkään tiskata kuulokkeet korvilla. Yleensä pistän soittolistan pyörimään Android-tabletin Grooveshark-sovelluksesta1, josta musiikki kantautuu langattomasti Bluetooth-palikkaan ja sieltä kuulokkeisiin. Sovelluksen kautta ei voi kuitenkaan kuunnella Broadcast-lähetyksiä (esim. GIGA:n lähetystä), mikä on vähän harmi.

Debian-pöytäkoneeni täyskokoisella selaimella Broadcastit luonnollisesti toimivat, mutta Bluetoothia tuossa koneessa ei ole, eikä yhteys etäisyyden puolesta toimisi välttämättä kuitenkaan. En myöskään mielelläni vetäisi kuulokejohtoa koneelta asunnon läpi tiskipöydän ääreen, joten jonkinlainen langaton ratkaisu on siis tarpeen.

Spesifejä PulseAudio→Android -sovelluksia on olemassa, mutta näistä yksikään ei vaikuttanut ensisilmäyksellä kelvolliselta: olisi asennettava ohjelmistoja Debianiin pakettivarastojen ulkopuolelta, ja ostettava Android-sovelluksen Pro-versio mainosten poistamiseksi. Siispä digitaaliset legopalikat esiin ja tehään itte!

Debian-säädöt

PulseAudio-äänet saa vietyä UPnP-striimiksi Rygelin ja sen GSTLaunch-liitännäisen avulla. Rygel on asennettuna valmiiksi, mutta GSTLaunch-osa on asennettava erikseen. Asennetaan samalla muut tarvittavat työkalut:

sudo apt-get install rygel-gst-launch pavucontrol paprefs

Sitten kytketään PulseAudion UPnP-tuki päälle. Helpointa tämä on graafisella paprefs-sovelluksella, jonka Verkkopalvelin-välilehdeltä valitaan valintalaatikot Tarjoa paikalliset äänilaitteet saataville DLNA/UPnP-mediapalvelimena ja Luo erillinen äänilaite median DLNA/UPnP-suoratoistoa varten.

Tämän jälkeen GSTLaunch-liitännäinen on otettava käyttöön muokkaamalla ~/.config/rygel.conf -tiedostoa (esim. nanolla tai geditillä). Jos Rygelin asetuksia ei ole koskaan säädetty, saattaa tiedosto puuttua. Tällöin kannattaa käynnistää ja sulkea rygel-preferences kertaalleen, jolloin ohjelma luo oletusasetukset näppärästi. rygel.conf-tiedostosta poistetaan tämän jälkeen koko tiedoston lopussa oleva [GSTLaunch]-osio, ja korvataan se seuraavalla pätkällä:

[GstLaunch]
enabled=true
launch-items=myaudioflac
myaudioflac-title=FLAC-ääni laitteelta @HOSTNAME@
myaudioflac-mime=audio/flac
myaudioflac-launch=pulsesrc device=upnp.monitor ! flacenc

Jos GStreamer-liukuhihna on tuttu, saa striiminsä halutessaan myös muissa muodoissa. Itse päädyin kuitenkin FLAC:iin, sillä se on oletuksena tarpeeksi korkealaatuinen, mutta mahtuu kuitenkin vaivatta kulkemaan WLAN:issa tabletille.

Tässä vaiheessa on varminta käynnistää Rygel ja PulseAudio uudelleen:

killall rygel
pulseaudio –kill
pulseaudio –start
nohup rygel &
Oh­jel­man saa tuut­taa­maan ään­tä verk­koon vaih­ta­mal­la sen ulos­tu­lo­lait­teen. Sa­mal­la ta­val­la ää­net saa myös ta­kai­sin kai­ut­ti­miin.
Kuva: Kuva­kaappaus pavucontrol-ohjelmasta

Seuraavaksi laitetaan musiikit soimaan Groovesharkista. Oletuksena äänet tulevat koneen kaiuttimista, joten käännetään Grooveshark soittamaan verkkoon: avataan pavucontrol, ja valitaan Toisto-välilehden ALSA plug-in [plugin-container] -ohjelman kohdelaitteeksi sisäisen äänentoiston sijaan DLNA/UPnP Streaming. Tässä vaiheessa kaikki on valmista Debianin puolesta.

Android-säädöt

Ole­tus­ase­tuk­sil­la Rygel syy­tää verk­koon usei­ta UPnP-lait­tei­ta. Ko­ti­ver­kos­sa­ni nii­tä on run­saas­ti jo en­nes­tään­kin.
Kuva: Kuva­kaappaus BubbleUPnP-sovel­luksesta

Androidilla ei tarvitse paljoa tehdä. Käynnistetään aluksi UPnP-toistosovellus − itse suosittelen BubbleUPnP:tä − ja valitaan lähdelaitteeksi GST Plugin ja soitettavaksi kappaleeksi FLAC-ääni laitteelta laitteennimi. Pienen puskuroinnin jälkeen musiikin pitäisi lähteä raikaamaan Android-laitteesta, josta sen voi sitten halutessaan ohjata vaikkapa Bluetooth-kuulokkeisiin.

Kannattaa huomata, että puskuroinnin takia ääni tulee muutaman sekunnin viiveellä, joten esimerkiksi kappaleenvaihdot tapahtuvat pienellä viiveellä. Tämä ei itseäni haittaa, sillä tiskatessa harvemmin viitsin köpötellä kappaletta vaihtamaan.

Silloin tällöin BubbleUPnP ei lähde soittamaan kappaletta, vaan tarjoaa sen sijaan Action Timeout -virhettä. En ole keksinyt toistaiseksi ongelmaan ratkaisua, mutta stop-play -kierros auttaa yleensä. Käsittääkseni ongelma on sovelluksessa. Jos soittoa haluaa kokeilla toisella sovelluksella, saa äänivirran URL-osoitteen näkyviin napsauttamalla keskeltä ruutua. URL kelpaa esimerkiksi Androidin VLC-soittimelle.

1) Sovellus vaatii GS Anywhere -tilauksen, noin kympin kuussa. Suosittelen kokeilemaan!