Sztereó hang felkeverése 5.1-re és low-pass filter beállítása az összes programban

Fórumok

Sziasztok!

Linux Mint 14 KDE alatt sikerült beállítanom, hogy a sztereó hang fel legyen keverve 5.1-re, ALSÁ-val és PulseAudioval egyaránt. Azonban a következő problémák léptek fel:

ALSA

  1. eddig csak a Clementine-ben és az Audaciousban tudtam kiválasztani a megfelelő hangeszközt (upmix_20to51), pedig szeretném az SMPlayerben és az AIMP-ban is használni (Wine-on keresztül)
  2. ha valamelyik zenelejátszó éppen használja ezt az eszközt, akkor más program nem ad ki hangot, hanem hibát ír ki, hogy az alapértelmezett eszköz nem elérhető
  3. ha kikommentelem a .asoundrc első 4 sorát (lásd lentebb), hogy ez legyen az alapértelmezett eszköz, akkor vagy nincs hang egyáltalán, vagy lefagynak a programok (pl. az Audacious, SMPlayer)

A .asoundrc tartalma:

#pcm.!default {
# type plug
# slave.pcm "upmix_20to51"
#}

pcm.upmix_20to51 {
type plug
slave.pcm lowpass_21to21
slave.channels 3
ttable {
0.0 1 # left channel
1.1 1 # right channel
0.2 0.5 # mix left and right ...
1.2 0.5 # ... channel for subwoofer
}
}

pcm.lowpass_21to21 {
type ladspa
slave.pcm upmix_21to51
path "/usr/lib/ladspa"
channels 3
plugins {
0 {
id 1098 # Identity (Audio) (1098/identity_audio)
policy duplicate
input.bindings.0 "Input";
output.bindings.0 "Output";
}
1 {
id 1672 # 4 Pole Low-Pass Filter with Resonance (FCRCIA) (1672/lp4pole_fcrcia_oa)
policy none
input.bindings.2 "Input";
output.bindings.2 "Output";
input {
controls [ 86 2 ]
}
}
}
}

pcm.upmix_21to51 {
type plug
slave.pcm surround51
slave.channels 6
ttable {
0.0 1 # front left
1.1 1 # front right
0.2 1 # rear left
1.3 1 # rear right
0.4 0.5 # center
1.4 0.5 # center
2.5 1 # subwoofer
}
}

PulseAudio

  1. nem tudom, hogyan kell a mélynyomónak beállítani a szűrőt (low-pass filter)
  2. olykor feltűnt, hogy késett a hang (pl. az LMMS nevű programban, bár ott írták a PulseAudiohoz, hogy "low latency!", YouTube-os videó lejátszása közben Flash-sel és Krusaderben figyelmeztetéseknél pl. törlés előtt)

A kérdésem, hogy tudtok a fenti problémákra megoldásokat?

Azt olvastam, hogy az ALSÁ-val kevesebb gond van stabilitás és kompatibilitás szempontjából (pl. a Wine alapból csak azt támogatja), mint a PulseAudio-val, úgyhogy az utóbbit csak akkor használnám, ha az ALSÁ-t nem lehet működésre bírni mindegyik programmal, úgy, hogy több is tudjon hangot kiadni egyszerre.

Szerk.: azt elfelejtettem megírni, hogy SB Live! 24-bit (7.1-s) hangkártyám van

Hozzászólások

Ezt bármelyik digitális erősítő alapból tudja (Dolby ProLogic). Miért szoftveresen szenvedsz ezzel, ha létezik rá céleszköz?

Az én erősítőm is ilyen, szóval át is lehetne dugni az egyik sztereó bemenetre, viszont akkor megszűnik az 5.1-s térhangzás néhány film és játék esetében. Emiatt van 5.1-ként bekötve és csak sztereó zene vagy film lejátszásánál van felkeverve a hang Windows alatt. Ugyanezt szeretném Linux alatt is.

Az SB Live! 24 nem a legszerencsésebb választás, tudom, mert nekem is van, viszont az alaplapi hangkeltőt használom éppen ezért. Nem tudom, hogy a CA0106 chip kernel oldali támogatása olyan, amilyen, vagy a Pulseaudio kezeli ezt szerencsétlenül, csodát még nem tudtam tenni vele. Az ne tévesszen meg, hogy elő tudsz csalni működő állapotot. Lehet ilyen úgy is, hogy egyes függvények nem a specifikációnak megfelelő értékekkel térnek vissza, s ezt mondjuk az ALSA semmire sem használja, így nem okoz gondot, míg a Pulseaudio használná, s ebből baj lesz. Emlékszem, amikor még sok gond volt a Pulseaudioval, mintha Lennart Poettering írta volna, hogy ez ALSA driver bug, s nem hajlandó elfedni a hibát, mert azt abban a rétegben kell kezelni, ahol előáll, nem pedig gányolni, s egészen máshol elfedni.

A mai napon megjelent 3.9.5-ös kernel forrásában megnéztem a CA0106-hoz tartozó kommentet. Ebből választ kaptam arra is, miért eszi a futásidőt a Pulseaudio, ha ezt a hangkártyát használom. Kiderült, hogy csak 48 kHz, 96 kHz és 192 kHz-es mintavételi frekvencia van implementálva lejátszáskor, felvételkor pedig csak 48 kHz, amelyből következik, hogy a többnyire 44.1 kHz mintavételű file-okat újra kell mintavételezni, s az interpoláció időigényes.

* BUGS:
* Some stability problems when unloading the snd-ca0106 kernel module.
* --
*
* TODO:
* 4 Capture channels, only one implemented so far.
* Other capture rates apart from 48khz not implemented.
* MIDI
* --

Továbbá:

* 0.0.10
* Enable playback 48000 and 96000 rates. (Rates other that these do not work, even with "plug:front".)

És:

* 0.0.16
* Implement 192000 sample rate.

44100 sample/sec sehol sincs benne. :(

Szerk.: illetve a kódot nézve az S/PDIF kimenet tudja a 44.1 kHz-es mintavételi frekvenciát, de az analóg kimenet nem.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE