Portál AbcLinuxu, 1. května 2025 15:51
Minule jsem se pustil do konfigurace ALSA a včera jsem si našel chvilku abych konečně dokončil snažení a přinutil všechno spolupracovat s alsou.
No všechno, víceméně to důležité, tedy hudba a video už s ní spolupracovaly, takže šlo spíše o flash (přes nspluginwrapper, mám amd64) UT2004, quake3, wine a cokoli co mixuje do OSS ;).
to poslední je samozřejmě prkotina, máme přeci
aoss aplikace_co_nema_rada_alsa
no jo, ale co s 32 bitovými aplikacemi :), ano první ze série balíčků který vznikl při tomto snažení. Potom stačí jen
aoss32 32_bit_aplikace_co_nema_rada_alsa
Jenže na cestě z plugu to kterého se mixuje mám i ladspa pluginy, a to se 32 bitovým knihovnám nelíbilo a tak tu máme druhý a třetí balíček.
Ale ejhle ani tak nebyl můj obsolentní binární proprietární a kdoví jaký ještě quake3 sto hrát nějak slušně. Strýček google nakonec poradil ioquake3 který je pro nedočkavce i 64 bit :) a pro odvážnější si ho zkompilují (mě kompilace skončila na prapodivné chybě). Pak už stačí jen
export SDL_AUDIODRIVER="alsa" export AUDIODEV="default" #nebo něco jiného dle libosti
a máme tu quake3 přes ALSA.
Ve wine jde vnutit zvukový výstup, a stejně tak nspluginwrapper se chová slušně má li potřebné 32 bit knihovny, takže už jen zbýval Unreal Tournament a tedy OpenAL.
Pro začátek jsem naivně zkusil binárku pro amd64, ale nepochodil jsem, stabilita byla velmi velmi autentická, 32 bit verze je skálopevná, a přinutit OpenAL ke spolupráci je otázkou pár řádků v souboru ~/.openalrc
(define devices '(alsa)) (define alsa-out-device "openal") (define speaker-num 4)
ano ten jeden apostrof tam patří a jako alsa-out-device můžete dát libovolné zařízení, ovšem když ho máte. Vzhledem k tomu, jak jsem si odzkoušel, že UT2004 (nebo openal???) si neporadí s více než 4 kanály, zvolil jsem to co jsem zvolil (na konci zápisku je můj ~.asoundrc).
Tak a co zbylo? no arts by možná chtělo duplex ;) a je to snad vše…
A na závěr slíbený .asoundrc, od posledně přibyl highpass filtr, jako lowpass filtr používám jiný plugin, pro zjištění jaké pluginy jsou dostupné se používá
listplugins
a co který dělá se dá zjistit pomocí
analyseplugin knihovna_obsahujici_plugin
.asoundrc i s občasným komentářem
pcm.dsp0 "duplex20" # pro aoss pcm.dsp1 "duplex20" pcm.default "duplex20" # výchozí zařízení je duplexní pro arts pcm.openal { # openal zařízení 4 kanály type plug slave.pcm "mix40" } pcm.duplex20 { # duplex je upmix sterea a hardware type asym playback.pcm "mix20" capture.pcm "hw:0,0" } # tady jsou upmix zařízení všechno na 5.1 pcm.mix10 { type route slave.pcm "volume_upmix" slave.channels 6 ttable { 0.0 1 0.1 1 0.2 1 0.3 1 0.4 1 0.5 1 } } pcm.mix20 { type route slave.pcm "volume_upmix" slave.channels 6 ttable { 0.0 1 1.1 1 0.2 1 1.3 1 0.4 0.5 1.4 0.5 0.5 0.5 1.5 0.5 } } pcm.mix40 { type route slave.pcm "volume_mix" slave.channels 6 ttable { 0.0 1 1.1 1 2.2 1 3.3 1 0.4 0.5 1.4 0.5 0.5 0.25 1.5 0.25 2.5 0.25 3.5 0.25 } } pcm.mix41 { type route slave.pcm "volume_mix" slave.channels 6 ttable { 0.0 1 1.1 1 2.2 1 3.3 1 0.4 0.5 1.4 0.5 0.5 0.25 1.5 0.25 2.5 0.25 3.5 0.25 4.5 1 } } pcm.mix50 { type route slave.pcm "volume_mix" slave.channels 6 ttable { 0.0 1 1.1 1 2.2 1 3.3 1 4.4 1 0.5 0.2 1.5 0.2 2.5 0.2 3.5 0.2 4.5 0.2 } } pcm.mix51 { type route slave.pcm "volume_mix" slave.channels 6 ttable { 0.0 1 1.1 1 2.2 1 3.3 1 4.4 1 5.5 1 0.5 0.2 1.5 0.2 2.5 0.2 3.5 0.2 4.5 0.2 } } pcm.mix71 { type route slave.pcm "volume_mix" slave.channels 6 ttable { 0.0 1 1.1 1 2.2 1 3.3 1 4.4 1 5.5 1 0.5 0.14 1.5 0.14 2.5 0.14 3.5 0.14 4.5 0.14 6.5 0.14 7.5 0.14 6.0 0.5 6.2 0.5 7.1 0.5 7.3 0.5 } } # upmixované mono a stereo je děsně uřvané pcm.volume_upmix { type softvol slave.pcm "volume_mix" control.name "Master (upmix)" control.card 0 } # ovládání celkové hlasitosti pcm.volume_mix { type softvol slave.pcm "frequency_filter_in" control.name "Master (mix)" control.card 0 } # vstup pro frekvenční filtr, čert ví proč to tam musí být ;) pcm.frequency_filter_in { type plug slave.pcm "frequency_filter" slave.channels 6 } # frekvenční filtr pcm.frequency_filter { type ladspa slave.pcm "frequency_filter_out" path "/usr/lib/ladspa" channels 6 plugins { 0 { # tohle ořeže hloubky v satelitech id 1052 policy duplicate input.bindings.0 "Input" output.bindings.0 "Output" input.controls [ 120 ] } 1 { # tohle ořeže výšky v subwooferu id 1051 policy none input.bindings.5 "Input" output.bindings.5 "Output" input.controls [ 120 ] } 2 { # subwoofer je potřeba trochu zesílit :) # ať mají sousedi občas radost id 1048 policy none input.bindings.5 "Input" output.bindings.5 "Output" input.controls [ 5 ] } } } # výstup na kartu, stejná poznámka jako u frequency_filter_in pcm.frequency_filter_out { type plug slave.pcm "surround51" slave.channels 6 }
Tiskni
Sdílej:
Pro začátek jsem naivně zkusil binárku pro amd64, ale nepochodil jsem, stabilita byla velmi velmi autentická, 32 bit verze je skálopevná, a přinutit OpenAL ke spolupráci je otázkou pár řádků v souboru ~/.tam asi chyba nazov suboru. ma to zaujimavu syntax, som zvedavy comu to patri ;)
define
bych rekl, ze je to skutecny Scheme ;)
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.