Kirjoittaja Aihe: Surround 5.1 ja DMixaus HOWTO [kysytty]  (Luettu 28256 kertaa)

chainx

  • Käyttäjä
  • Viestejä: 1
    • Profiili
Surround 5.1 ja DMixaus HOWTO [kysytty]
« : 30.05.06 - klo:16.07 »
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ä.

Koodia: [Valitse]
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ä:

Koodia: [Valitse]
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:
Koodia: [Valitse]
speaker-test -D<virtuaali-plugi> -c <kanavat>

Eli jos käytät ylläolevaa .asoundrc:tä:

Koodia: [Valitse]
speaker-test -Dsurround51 -c 6

Speaker-test toistaa kohinaa vuoronperään eri kanavaan.

Myös alsamixeriä kannattaa hyödyntää testaamisessa eli konsolissa komento:
Koodia: [Valitse]
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 testaaminen
HUOM! useimmat ohjelmat pitää uudelleenkäynnistää, että ääniasetukset astuisivat voimaan.

XMMS
Avaa 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.

Amarok
Avaa 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 player
Avaa 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ä.

Mplayer
Avaa 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:
Koodia: [Valitse]
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.

Kaffeine
Avaa 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.html
Lisätietoja .asoundrc:stä: http://alsa.opensrc.org/.asoundrc
Lisätietoja DMix pluginistä: http://alsa.opensrc.org/DmixPlugin
« Viimeksi muokattu: 16.08.08 - klo:13.30 kirjoittanut Kari Argillander »

Kadmium

  • Käyttäjä
  • Viestejä: 46
    • Profiili
Re: Surround 5.1 ja DMixaus HOWTO
« Vastaus #1 : 07.11.06 - klo:17.23 »
siis mä vaan tungen ton koodi-pätkän tonne .asoundrc - tiedostoon, ja sit menen XMMS-asetuksiin, Alsan äänilaitteeseen kirjotan stereo? EI kyllä toista mtn.

Tosin, kun laitan äänilaitteeseen default, ni toimii.
« Viimeksi muokattu: 07.11.06 - klo:17.25 kirjoittanut Kadmium »

Risto H. Kurppa

  • Käyttäjä
  • Viestejä: 3024
  • Useita Kubuntuja ajossa.
    • Profiili
    • http://risto.kurppa.fi
Vs: Surround 5.1 ja DMixaus HOWTO
« Vastaus #2 : 28.04.08 - klo:08.32 »
Voisiko ohjeen kirjoittaja/täydentäjät kirjoittaa viestin jossa vahvistavat että     

a) ohje on edelleen käyttökelpoinen Hardyssä (tuorein LTS, tuorein stable)
eli uudet ominaisuudet eivät ole poistaneet tarvetta ohjeelle tai että ohjeessa käytetyt työkalut jne ovat edelleen Hardyssä käytössä
b) antavat luvan ohjeen siirtämiseen Ubuntu Suomen wikiin (http://wiki.ubuntu-fi.org). Kts. Wikin lisenssistä jne lisätietoja täältä: http://wiki.ubuntu-fi.org/#head-867666147f48c6b667ec0f6be3f5f16852046770

Kiitos!


r
UUSI UBUNTUN KÄYTTÄJÄ: SÄÄSTÄ AIKAASI LUKEMALLA  -> TÄMÄ <-

juge

  • Käyttäjä
  • Viestejä: 35
    • Profiili
Vs: Surround 5.1 ja DMixaus HOWTO [kysytty]
« Vastaus #3 : 28.11.08 - klo:19.36 »
mikäs virka noilla neliöillä tossa rivien alussa on? aattelin nimittäin kokeilla josko tuo toimis.

Mippe

  • Käyttäjä
  • Viestejä: 482
    • Profiili
Vs: Surround 5.1 ja DMixaus HOWTO [kysytty]
« Vastaus #4 : 02.12.08 - klo:23.00 »
mikäs virka noilla neliöillä tossa rivien alussa on? aattelin nimittäin kokeilla josko tuo toimis.
Tarkoitatko #-merkkiä? Se kertoo ohjelmalle, että näitä rivejä ei lueta. # alkavia rivejä käytetään yleensä ohjeistukseen, mitä seuraava rivi tekee ja mihin se vaikuttaa. :)
AMD Athlon 64 5600+ || ATI Radeon 3650 || 2x 500Gb SATA|| 4Gb RAM || High Definition Audio
Blogi

juge

  • Käyttäjä
  • Viestejä: 35
    • Profiili
Vs: Surround 5.1 ja DMixaus HOWTO [kysytty]
« Vastaus #5 : 03.12.08 - klo:14.24 »
... juu eiku tossa oli ttablen edessä ihan neliöitä ... muta nyt ne on poissa ... liekö joku korjannu tai sitte oma kone sekoilee.

tein ton ohjeen mukaan mutta ei toiminu. mun äänikortissakin on itse asiassa vain neljä ulostulo kanavaa eli kaksi stereo linjaa ... yritin sen mukaan muokata mutta ei onnistunu silti. en oo tainnu käsittäny koko Dmixaus asiaa koko siihen ei löydy mitään viittauksia mun tietokoneelta.
siis /home/.asoundrc ? tollanenko tässä pitäs tehä? vai kelpaako tällanen  /usr/src/alsa/.asoundrc ?
« Viimeksi muokattu: 03.12.08 - klo:14.35 kirjoittanut juge »

JoniX

  • Käyttäjä
  • Viestejä: 34
    • Profiili
Vs: Surround 5.1 ja DMixaus HOWTO [kysytty]
« Vastaus #6 : 12.08.09 - klo:21.58 »
Miten tästä saisi 4.0 version? *edit* P.S. Voi olla vähän offtopic, mutta tukeeko ALSA 96 kHz näytteenottotaajuutta?*edit*
« Viimeksi muokattu: 12.08.09 - klo:22.00 kirjoittanut JoniX »