Johdanto:Tämän oppaan on tarkoitus selventää miten saat hyödynnettyä 5.1 kaiuttimiasi ubuntussa ja linuxissa. Oppaan avulla saat yleisimmät soittimet ohjaamaan mono/stereo äänen kaikkiin tarvittaviin kanaviin, siten että myös kaikkia äänilähteitä voi käyttää yhtäaikaa. Oppaan kirjoitin, koska käytin tämän asian selvittämiseen itse pari päivää ja koska edes googlella ei löytynyt riittävän selkeää opasta.
Periaate:Kaikki perustuu .asoundrc (tai asound.conf) nimisen asetustiedoston muokkaukseen ja ALSA:n PCM-pluginien käyttöön. Asoundrc on siis ALSA:n asetustiedosto ja sillä voidaan luoda virtuaalisia äänilaitteita.
.asoundrc - lyhyt opas.asoundrc tiedosto sijoitetaan kotikansioon eli polkuun ~/.asoundrc. Jos halutaan kaikille käyttäjille toimivat asetukset niin luodaan asetustiedosto /etc/asound.conf.
Esimerkki 5.1:stä hyödyntävästä .asoundrc-tiedostosta:
(todennäköisesti toimii suoraan tai pienin muutoksin lähes kaikissa 5.1 järjestelmissä)
EDIT: Huomasin, että pääsee helpommalla, jos korvaa pcm.mono:n ja pcm.stereo:n pcm.!default:lla. Tällöin oletuslaite default korvataan omilla asetuksilla ja kuljetetaan dmix:n läpi. Tällöin esim. amarokin/xmms:n default asetuksia ei tarvitse muuttaa ja systeemiäänien pitäisi toimia myös 5.1:n kautta. Jos kuitenkin ongelmia ilmenee kannattaa pysyttäytyä alla olevan mallin mukaisena.
Kanavien volumea kannattaa laskea (volume väliltä 0-1esim. 0.10 0.20 0.30 jne), jos ääni särkee kun alsamixerissä volumet täysillä.
pcm.dmixs51 {
type dmix
ipc_key 1024
slave {
pcm "hw:0,1"
rate 48000
channels 6
period_time 0
period_size 1024
buffer_time 0
buffer_size 4096
}
}
pcm.mono {
type plug #EDIT: korjattu puuttuva rivi
slave{
pcm dmixs51
channels 6
}
ttable.0.0 1 #vasenetu 0->2,3,4
ttable.1.1 1 #oikeaetu 1->2,3,5
ttable.0.2 1 #keski 2
ttable.1.2 1 #keski 2
ttable.0.3 1 #lfe 3
ttable.1.3 1 #lfe 3
ttable.0.4 1 #vasen taka 4
ttable.1.5 1 #oikea taka 5
}
pcm.stereo {
type plug
slave{
pcm dmixs51
channels 6
}
ttable.0.0 1 #vasenetu 0<-2,3,4
ttable.1.1 1 #oikeaetu 1<-2,3,5
ttable.0.2 1 #keski 2
ttable.1.2 1 #keski 2
ttable.0.3 1 #lfe 3
ttable.1.3 1 #lfe 3
ttable.0.4 1 #vasen taka 4
ttable.1.5 1 #oikea taka 5
}
pcm.!surround51 {
type plug
slave{
pcm "dmixs51"
channels 6
}
ttable.0.0 1 #vasen etu 0<-0
ttable.1.1 1 #oikea etu 1<-1
ttable.4.2 1 #keski 2<-4
ttable.5.3 1 #lfe 3<-5
ttable.2.4 1 #vasen taka 4<-2
ttable.3.5 1 #oikea taka 5<-3
}
Ja sama selitettynä:pcm.dmixs51 { #Luodaan uusi virtuaalilaite nimeltään dmixs51
#määritetään käytettävä plugin eli tässä tapauksessa dmix, joka miksaa äänikortille toistettavaksi menevät äänet yhteen.
#Ilman dmixiä voitaisiin toistaa vain yhdestä sovelluksesta tulevat äänet kerralla.
type dmix
#ipc_key:ksi määritetään satunnainen numero. Jokaisella luodulla virtuaalisella dmix laitteella pitää olla eri ipc_key
ipc_key 1024
#määritetään toistavan äänilähteen asetukset
slave {
#määritetään äänikortti (hw:äänikortin-numero,laite), jolla ääntä toistetaan. Voidaan selvittää komennolla: cat /proc/asound/cards ja cat /proc/asound/devices
#yleensä yhden äänikortin laitteistoissa hw:0,1 toimii.
pcm "hw:0,1"
#näytteenotto taajuus, yleensä 44100 tai 48000
rate 48000
#moneltako kanavalta otetaan ääntä vastaan. 6 jos käytetään 5.1 järjestelmää.
channels 6
#tästä alaspäin bufferi-asetukset. Tarkempaa merkitystä en osaa kertoa, mutta kyseiset säädöt ovat toimineet:
period_time 0
period_size 1024
buffer_time 0
buffer_size 4096
}
}
pcm.mono { #luodaan uusi mono niminen virtuaalilaite, eli tämän laitteen on tarkoitus vastaanottaa yksikanavaista ääntä
type plug #tyyppi on plug eli tarkoittaa sitä, että tähän laitteeseen ohjelmat voivat syöttää ääntä toistettavaksi.
slave{
#määritetään mihin laitteeseen ääni syötetään, eli tässä tapauksessa yllä olevalle dmix:lle.
pcm dmixs51
#montako kanavaa syötetään, tässä tapauksessa 6, jolloin saadaan mono ääni kuulumaan jokaisesta 5.1 järjestelmän kanavasta.
slave.channels 6
}
#kanavien uudelleen ohjaus ttable taulukolla
#ohjataan siis kahden ensimmäisen kanavan äänet sopivasti muille kanaville
#syntax: ttable.plugChIn.plugChOut volume(0 = 0%, 1 = 100%)
ttable.0.0 1 #vasenetu 0<-2,3,4
ttable.1.1 1 #oikeaetu 1<-2,3,5
ttable.0.2 1 #keski 2
ttable.1.2 1 #keski 2
ttable.0.3 1 #lfe 3
ttable.1.3 1 #lfe 3
ttable.0.4 1 #vasen taka 4
ttable.1.5 1 #oikea taka 5
}
pcm.stereo { #luodaan oma virtuaalilaite stereo ääntä varten
type plug
slave{
pcm dmixs51
channels 6
}
ttable.0.0 1 #vasenetu 0<-2,3,4
ttable.1.1 1 #oikeaetu 1<-2,3,5
ttable.0.2 1 #keski 2
ttable.1.2 1 #keski 2
ttable.0.3 1 #lfe 3
ttable.1.3 1 #lfe 3
ttable.0.4 1 #vasen taka 4
ttable.1.5 1 #oikea taka 5
}
pcm.!surround51 { # !-merkki korvaa olemassa olevan virtuaalilaitteen. ALSA:n asetuksissa on tavallisesti
#surround51 niminen laite jo määritettynä joten korvataan se.
type plug
slave {
pcm dmixs51
channels 6
}
#Itse määritin 5.1 kanavaisen äänen asetukset näin, koska vasentaka-kaiutin toisti aina keskikaiuttimen äänet ja oikeataka LFE kanavan äänet:
ttable.0.0 1 #vasen etu 0<-0
ttable.1.1 1 #oikea etu 1<-1
ttable.4.2 1 #keski 2<-4
ttable.5.3 1 #LFE (subwoofer) 3<-5
ttable.2.4 1 #vasen taka 4<-2
ttable.3.5 1 #oikea taka 5<-3
}
ttablen tarkempaan määrittämiseen kannattaa käyttää komentoa:
speaker-test -D<virtuaali-plugi> -c <kanavat>
Eli jos käytät ylläolevaa .asoundrc:tä:
speaker-test -Dsurround51 -c 6
Speaker-test toistaa kohinaa vuoronperään eri kanavaan.
Myös alsamixeriä kannattaa hyödyntää testaamisessa eli konsolissa komento:
alsamixer
Eri kanavien voimakkuuksia ohjaillaan näppäimillä: Q(vasen+) W(molemmat+) E(oikea+) ja Z(vasen-) X(molemmat-) C(oikea-). Samalla kannattaa tarkistaa ettei PCM, surround ja LFE ole mutella (muten saa pois/päälle näppäimellä M) ja tarkistaa muutenkin, että asetukset ovat kunnossa.
Ohjelmien asetukset ja testaaminenHUOM! useimmat ohjelmat pitää uudelleenkäynnistää, että ääniasetukset astuisivat voimaan.
XMMSAvaa XMMS ja mene asetuksiin. Valitse (suomennetussa) tulostesovelmaksi ALSA ja valitse asetukset. Kirjoita äänilaite kohtaan:
stereo (eli otetaan käyttöön virtuaaliplugi-> stereo). XMMS käyttää nyt virtuaalilaitetta stereo äänentoistamiseen. Asoundrc asetusten avulla stereo-ääni ohjataan dmixin kautta jokaiseen kanavaan.
Kokeile toistaa jotain kappaletta.
AmarokAvaa Amarok ja mene asetuksiin. Toistojäjestelmäksi xine ja alsa. Mono kohtaan kirjoita
mono, stereo kohtaan
stereo ja 6 kanavaa kohtaan
surround51, eli määritetään käytettävät virtuaali-plugit joita amarok käyttää kun vastaan tulee eri kanavaista musiikkia. Valitse vielä lopuksi kaiutin asetteluksi
surround 5.1.
Tallenna ja testaa.
xine movie playerAvaa XMP ja mene asetuksiin. Valitse configuration exp. level:ksi expert. Siirry audio välilehteen. Valitse audio driveriksi alsa ja kirjoita mono-output kohtaan
mono, stereo-output kohtaan
stereo ja 5.1-output kohtaan
surround51. Kaiutin asetteluksi valitse
surround 5.1.
Tallenna ja testaa esim. DVD:llä.
MplayerAvaa mplayer ja mene asetuksiin. Siirry audio välilehteen, valitse alsa ja configure driver. Kirjoita device kohtaan
surround51. Tallenna.
Muokkaa ~/.mplayer/config tiedostoa ja lisää sinne seuraava rivi:
channels=6
Tallenna ja testaa.
Huom! mplayerissä en ole saanut vielä channels=6 asetuksella automaattisesti 2 kanavaisia ääniraitoja toistumaan 6 kanavaisina. Jotta tämä onnistuisi, Mplayerin asetuksista täytyy aina device-kohtaan käsin muuttaa surround51 kohdalle stereo.
KaffeineAvaa kaffeine ja mene xine-moottorin asetuksiin. Valitse audio-välilehti ja sieltä asiantuntija asetukset. Mono output kohtaan kirjoita
mono, stereo kohtaan
stereo ja surround 5.1 kohtaan
surround51. Valitse vielä aloittelijan asetuksista kaiutin asetelmaksi
surround 5.1.
Tallenna ja testaa.
Linkit:
Lisätietoja PCM-plugineista:
http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.htmlLisätietoja .asoundrc:stä:
http://alsa.opensrc.org/.asoundrcLisätietoja DMix pluginistä:
http://alsa.opensrc.org/DmixPlugin