Miten pulsen saa käyttämään SP/DIF-lähtöä automaattisesti kaikelle materiaalille niin, että kanavia ei huku matkalla eikä tarvi käsin jumpata mitään uudelleenkäynnistyksiä? Viimeksi kun turhauduin pulsen kanssa, niin tuo oli mahdotonta.
Jeps. PulseAudio ei vieläkään tue pakatun äänen (DD/DTS/MP2/...) läpivientiä, eli se on hoidettava suoraan Alsan iec958-laitteen kautta. Pulse saattaa kuitenkin varata tuon laitteen, kun se on asetetettu viemään äänet digitaaliseen ääniulostuloon ja jokin ohjelma soittaa ääntä. Tällöin äänipalvelin on sammutettava tai sen ulostuloa on vaihdettava ennen kuin digitaalista monikanavaääntä voi viedä ulos.
Pari ratkaisuvaihtoehtoa:
1. Käytä äänipiirin analogi->S/PDIF-miksaustaJotkut äänipiirit (ainakin HDA-pohjaiset) osaavat miksata analogisen stereoulostulon äänen S/PDIF:iin silloin kun laite on PCM-tilassa. Toiminnon voi kytkeä päällä (gnome-)alsamixerin "S/PDIF"-valinnalla. Silloin läpivienti voi onnistua myös PulseAudion kanssa asettamalla sen ulostuloksi analoginen stereo. Kun mediasoitin vaihtaa S/PDIF-ulostulon DD/DTS-läpivientimoodiin, Pulsen kautta kulkevat äänet lakkaavat kuulumasta digitaaliulostulosta ja niiden sijaan viedään pakattu ääni ulkoiselle dekooderille.
Ongelmana tässä on se, että ALSA ei välttämättä osaa palauttaa analogiäänen reititystä DD/DTS-toiston jälkeen, ennen kuin kaikki äänilaitetta käyttävät ohjelmat on käynnistetty uudelleen. Ainakin itselläni on ollut tämä ongelma pitkään ja on edelleen Debianin ALSA 1.0.22:ssa. Asetusten muuttaminen
iecsetillä ei auta, vaan joudun listaamaan kaikki äänilaitteita käyttävät prosessit (
lsof /dev/snd/*) ja sulkemaan tai tappamaan ne. Tämän jälkeen reititys palautuu, kun seuraavan kerran toistan ääntä analogilaitteen kautta.
Pulseaudion tapauksessa äänipalvelin on käynnistettävä uudelleen, jos tämä vika iskee, eli alkuperäinen ongelma vain muuttaa hieman muotoaan. Ilmeisesti joillain Karmicin käyttäjillä homma kuitenkin toimii:
http://ubuntuforums.org/showthread.php?t=1304614&page=32. Käynnistä mediasoitin pasuspenderillaPulseAudion saa helposti pois alta ja iec958-laitteen vapaaksi pulseaudio-utils -paketin
pasuspender-apuohjelmalla. Lisää vain
"pasuspender --" mediasoittimen käynnistyskomennon alkuun. Esimerkiksi päävalikossa olevan SMPlayerin komennoksi tulisi tämä:
pasuspender -- smplayer %U
HUOM! Mediasoitin pitää asettaa käyttämään suoraan Alsan iec958-laitetta. Jos ohjelma yrittää käyttää Pulselle reititettyä Alsan oletusäänilaitetta tai Pulsea suoraan, äänen (ja todennäköisesti videon) toisto jäätyy välittömästi.
9.10:ssä Alsan default-äänilaite kierrätetään oletuksena PulseAudion kautta, eli käyttäjän ei tarvitse muuttaa asetuksia sitä varten.
mielenkiintoista. ainakaan itselläni näin ei ole ollut, eikä muuten ollut lucidissakaan, kun jouduin sen kiintolevyrikon vuoksi asentamaan uusiksi. tämä tosin 64-bittisellä, sikäli kun siinä on eroja.
Ei ole eroa; minullakin on 64-bittinen karmic, jossa tuo on toiminut ilman mitään säätämisiä. Alsan pääasetustiedoston,
/usr/share/alsa/alsa.conf:n alussa ladataan
/usr/share/alsa/pulse.conf, joka sisältää tällaista:
# PulseAudio alsa plugin configuration file to set the pulseaudio plugin as
# default output for applications using alsa when pulseaudio is running.
hook_func.pulse_load_if_running {
lib "libasound_module_conf_pulse.so"
func "conf_pulse_hook_load_if_running"
}
@hooks [
{
func pulse_load_if_running
files [
"/usr/share/alsa/pulse-alsa.conf"
"/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]
pulse-alsa.conf puolestaan sisältää samat asetukset, jotka annoit tuossa aiemmin. Eli jos nämä tiedostot ovat paikallaan ja äänipalvelimen tunnistus (libasound_module_conf_pulse.so) toimii, ei pitäisi olla tarvetta kirjoitella omia säätöjä /etc/asound.confiin tai .asoundrc:hen. Tunnistusmekanismissa on myös se etu, että Pulsen voi halutessaan poistaa tai sammuttaa ilman että asoundrc:tä tarvitsisi käydä muokkaamassa.
Motalbilla tämä osa ainakin toimi VirtualBoxin ja Winen ääniongelmista päätellen.
Myös dmixin pitäisi toimia suoraan, jos PulseAudio on pois päältä.
niinhän sen pitäisi ja esim. debianissa se toimiikin, mutta yhdessäkään ubuntuasennuksessa se ei ole minulla toiminut.
Hmm. Ehkäpä Ubuntun ALSA-paketoinnista puuttuu sitten jotain dmix-asetuksia USB-DA-muuntimellesi. Täällä toimii tosiaan HDA:lla tuokin.