Portál AbcLinuxu, 1. května 2025 01:24
OSSv4 používám nějaký ten čas a nepotřebuji žádné speciálně zkompilované programy. Nedávno při nové instalaci jsem zkoušel nahodit Alsu, ale nefungovala, tak jsem zůstal u OSS.
Ve zkratce OSSv4 je lépe navržené, ale na Alse pracuje více lidí.
/dev/dsp_out
, cili jednoduseji to snad ani nejde.
ossmix
ani ossxmix
zadny takovy vystup nezobrazuje, ossinfo
obsahuje ale (mimo jine) tohle a vidim tam spdifout1
:
Audio devices HD Audio play pcm1 /dev/oss/oss_hdaudio0/pcm0 (device index 0) HD Audio play pcm2 /dev/oss/oss_hdaudio0/pcm1 (device index 1) HD Audio play pcm3 /dev/oss/oss_hdaudio0/pcm2 (device index 2) HD Audio play pcm4 /dev/oss/oss_hdaudio0/pcm3 (device index 3) HD Audio play pcm5 /dev/oss/oss_hdaudio0/pcm4 (device index 4) HD Audio play spdifout1 /dev/oss/oss_hdaudio0/spdout0 (device index 5) HD Audio rec mix7 /dev/oss/oss_hdaudio0/pcmin0 (device index 6) HD Audio rec mix6 /dev/oss/oss_hdaudio0/pcmin1 (device index 7)Jestli s/pdif zobrazoval ALSA mixer, uz nevim.
lspci
u te moji desky, kde jsou videt 2 zvukovky:
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02) 03:00.1 Audio device: nVidia Corporation High Definition Audio Controller (rev a1)Muze to nekdo vysvetlit? Ze by nVidia byl ten S/PDIF vystup a Intel vse ostatni? A nebo ma graficka karta nVidia ION v sobe i zvukovku, ktera ale neni nikam vyvedena na desce?
PulseAudio je další proces běžící na pozadí, užírající systémové prostředky.Jakože ten dmix to resampluje a mixuje z vesmírné energie, ne? Jen se to nepřipočítává k modré, ale k červené barvě. Nevím jak nový, ale starý OSS pro jistotu nemixoval a neresamploval vůbec.
Já nevím, ale řekl bych, že cesta aplikace → Pulse Audio → ALSA userspace (nemyslím, že by to šlo přímo do ALSA v kernespace, protože by to rozbilo vše ostatní) → kernel sežere víc prostředků než aplikace → ALSA userspace → kernel.V případě, že je všechno připraveno jak má, tak ani moc ne. PA je Zero-copy architektura. V případě, že je potřeba zpracovávat, mixovat a tak už samozřejmě žere, ale nic co by i na Celeru o 2.8Ghz stálo za řeč. Když se to přepne na 333Mhz, tak už to je samozřejmě cítit víc, ale to není nic jednoduššího než aplay -D front a PA se bypassne (což stejně většinou způsobí, že mu třeba nesedí vzorkovací frekvence a tak je potřeba převzorkovat někde bokem ať to nežere čas během přehrávání).
Když si otevřeš ossxmix (GUI), tak ve spodní částí jsou „hejbátka“, kterými nastavuješ hlasitosti jednotlivých aplikací. Jak se to nastavuje přes CLI nevím, ale rád bych to zjistil. Chtěl bych totiž zařídit, abych mohl přes WM nastavovat zvuk. (např. stiskem klávesy dát mute pouze aktivnímu oknu aplikace)
vmix0.pcm8 [<leftvol>:<rightvol>] (currently 25.0:25.0 dB) ("pragha")
vmix0.pcm9 [<leftvol>:<rightvol>] (currently 25.0:25.0 dB) ("mplayer")
Pak uz je to jen otazka casu a trochy usili, si sestavit jednoduchy skript na ovladani hlasitosti aplikace s urcitym nazvem. Jak to ale udelat pro aktivni okno, to me ted nenapada, cesta ale urcite bude.
xroot -root
, ve výpisu najdi řádek co obsahuje text _NET_ACTIVE_WINDOW(WINDOW)
, ulož to ID do proměnné WNDID, spusť xroot -id $WNDID
, ve výpisu najdi řádek
_NET_WM_PID(CARDINAL) = 3025Přes readlink přečti ten link, dej to do skriptu, přidělej úpravy, ...
xroot
má být xprop
xprop -root
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x819706
(Cislo za # se nejakym zpusobem vytahne, pak nasleduje:)
xprop -id 0x819706
_NET_WM_PID(CARDINAL) = 1624
(Cislo se opet vytahne a nasleduje:)
ps -p 1624 -o comm=
Vypise nazev programu.
Mozna tam mam taky nejakou chybu, nutno doladit.
readlink /proc/PID/exe
, ale ps je asi taky ok.
Neumožňuje nastavování hlasitosti pro jednotlivé aplikace.Vzhledem k tomu, ze mam alsu nastavenou tak, aby zvuk z jabber klienta byl nahlas slyset z reproduktoru a potichu ve sluchatkach, tak bych rekl, ze to jde (hledejte klicove "type softvol").
OSS je mrtev ... a je jedno jaka verze ... proste sve pozice uz neziska... ad chromium a jedno api ... jede mi pres ALSU i PA a no problem
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.