Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Ačkoliv nám konfigurace přináší spoustu výhod, není pro základní funkčnost nutná. Chcete-li pouze občas přehrát empétrojku a netrápí vás, že nebude možné na úrovni ALSA mixovat více zdrojů zvuku, používat více karet nebo provádět jiné pokročilejší úkony, nepotřebujete nic více, než bylo řečeno v minulém díle. Stačí uložit rozumné hlasitosti a zařídit, aby se ovladače automaticky natahovaly (nebo byly v jádře neustále) a je hotovo. Není to tak, že dokud se člověk nepovrtá v nějakém konfiguračním souboru, nebude nic fungovat (ve většině standardních případů).
Samozřejmě se tak ochudíte o množství možností, které ALSA nabízí.
Veškerá konfigurace systému ALSA je soustředěna do souboru
~/.asoundrc
(případně celosystémového ekvivalentu
/etc/asound.conf - v dalším textu budu používat pouze název
~/.asoundrc
, ale je jedno, ve kterém ze souborů budou údaje
nakonec uloženy). Syntaxe tohoto souboru není nijak extra složitá, ale pro
úplného začátečníka ani zcela triviální. Nevím, jestli bohužel nebo
bohudík, ale způsob zápisu je poměrně flexibilní, takže se můžete setkat s
mnoha podobami zápisu identické konfigurace.
Kompletní (přehledný a troufám si tvrdit, že i pro neangličtináře srozumitelný) popis syntaxe naleznete v dokumentaci: Configuration files. Zde se tedy zmíním jen o úplném základu, jenž by vám měl bez dalšího studia postačit k porozumění příkladů, které budou následovat, nebo které naleznete na odkazovaných stránkách.
Pro většinu jednoduchých ukázek bychom si měli vystačit se dvěma pojmy: přiřazení hodnoty a pole.
Přiřazení:
název = hodnota
název hodnota;
název hodnota,
Přičemž rovnítko může být nahrazeno pouhou mezerou. Oddělení více přiřazení může být buď pomocí čárky, středníku nebo jen nového řádku. Všechny uvedené zápisy jsou tedy totožné.
Složené přiřazení:
Položka konfiguračního souboru může obsahovat hodnotu, která se sama skládá z dalších hodnot. Zapíšeme je tedy takto:
název = { hodnota = 1 } název.hodnota 1
Oba zápisy jsou opět totožné.
Pole:
Pole lze zapsat podobně jako složené přiřazení (jen v případě použití závorek jsou tentokrát hranaté místo složených):
název [ hodnota "raz" hodnota "dva" ] název.1 = "raz" název.2 "dva"
V reálném konfiguračním souboru však doporučuji zvolit jeden druh zápisu a toho se držet - nebo v tom bude akorát zmatek.
Soubor ~/.asoundrc
definuje zvukové karty přítomné ve vašem
počítači a poskytuje zároveň přístup k ovládání a nastavení pluginů z
alsa-lib. Program podporující výstup na ALSA posílá svá data na tzv. PCM
zařízení. PCM zařízení mohou být buď přímo zvukové karty nebo definovaná
zařízení, která konfigurujeme pomocí parametrů a pluginů v
~/.asoundrc
. Každé PCM zařízení může obsahovat mnoho
virtuálních zařízení - ta je možné využívat k různým efektům. Pluginy jsou
tím, co především umožňuje provádět všelijaká kouzla s kartou obsluhovanou
ovladači ALSA.
Není-li definováno žádné virtuální zařízení, přistupují aplikace ke kartě pomocí zápisu
hw:0,0
kde první nula značí první kartu v systému, kdežto druhá nula označuje
první zařízení na dané kartě. Neexistuje-li soubor ~/.asoundrc
nebo není-li definováno žádné virtuální zařízení, používají všechny
aplikace právě toto zařízení. Znaky hw
jsou názvem základního
pluginu, pomocí kterého jsou data na kartu (respektive ALSA ovladači v
jádře) posílána tak, jak si přeje aplikace - nedochází k žádné úpravě na
úrovni ALSA. Pokud bychom tedy chtěli poslat data na toto zařízení (což se
normálně pochopitelně děje automaticky), zadali bychom např.:
aplay -D hw:0,0 soubor.wav
Pokud by však daný soubor měl jiné parametry, než jaké přesně karta očekává, zobrazí se chybová hláška:
$ aplay -D hw:0,0 GhostBusters.wav Playing WAVE 'GhostBusters.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo Warning: rate is not accurate (requested = 44100Hz, got = 48000Hz) please, try the plug plugin (-Dplug:hw:0,0)
Je nám doporučeno využít plugin "plug", což je pravděpodobně nejužitečnější všeobecný plugin. Zařídí, aby byla zvuková data automaticky převedena do požadovaného formátu (v našem případě jde o vzorkovací frekvenci).
A teď již k praxi. Následuje výčet několika pluginů, které při běžném použití nejčastěji využijete. Popis všech PCM pluginů, které jsou v alsa-lib k dispozici, najdete na PCM (digital audio) plugins. Praktické příklady jsou také na stránce o souboru asoundrc.
Mixování více proudů audia z několika zdrojů tak, aby mohly zvuková zařízení využívat všechny současně. Při běžném použití na desktopu se uplatní například v případě, že zatímco posloucháte rádio nebo písničky uložené na disku, pípne na vás ICQ nebo Jabber klient a dá vám tak vědět o nové příchozí zprávě. Kdyby multiplexing nefungoval, musela by aplikace, která se o použití zvukové karty přihlásí až jako druhá (třetí, čtvrtá, ...), čekat, až ji přestane používat aplikace, která ji předběhla. Kdyby šlo třeba o to rádio, mohlo by to trvat pěkně dlouho.
Stejný princip platí nejen pro výstup, ale i pro vstup. Uplatníme pro tento účel jiný plugin, ale nastavení se příliš lišit nebude. A finálním cílem je plně duplexní provoz, při kterém můžeme kartu využívat pro více zdrojů vstupu i výstupu zároveň.
Malá vsuvka: právě popisovanou funkčnost není nezbytně nutné řešit na úrovni ALSA. Stejných výsledků můžeme dosáhnout i pomocí tzv. zvukových serverů. Zvukový server je aplikace běžící na pozadí, která od programů požadujících přístup ke zvukové kartě tyto požadavky přebírá a sama softwarově zpracovává a pak teprve posílá již předžvýkaná data ovladači zvukové karty. Používáte-li ke své spokojenosti zvukový server, není nutné se zabývat nastavováním mixování přes ALSA.
Zvukové servery jsou např. esound (součástí GNOME), aRts (součástí KDE) nebo JACK. Všechny mají své výhody (v případě esound a aRts pohodlná provázanost s desktopovým prostředím) i nevýhody (představují další okliku na cestě, takže způsobují určité zatížení systému navíc - dříve se to týkalo především aRts). Nicméně je-li ve vaší distribuci již některý z těchto serverů používán a necítíte-li potřebu experimentovat, není důvod nutit se do překopávání systému.
Malá vsuvka číslo dvě: je také poměrně dost karet, které podporují multiplexing přímo hardwarově. Ani v takovém případě není pochopitelně nutné (a ani žádoucí) nosit dříví do lesa a cpát kartě softwarové mixování.
Ti z nás, kteří nemohou vystát aRts (třeba já) a jejich karta nepodporuje skoro nic, natožpak hardwarový multiplexing, si pomohou pluginem dmix. Před zapisováním do konfiguračního souboru můžete plugin vyzkoušet pomocí parametru na příkazové řádce. Zadáte-li ve více terminálech příkaz
aplay -D plug:dmix soubor.wav
mělo by to mít stejný efekt jako níže uvedené nastavení pro soubor
~/.asoundrc
.
Konfigurace je jednoduchá, horší to může být s bezbolestnou podporou ze
strany aplikací. Vysvětlím níže. Následujících několik řádek vložte do
souboru ~/.asoundrc
- nic víc není v současné chvíli
potřeba.
pcm.!default { type plug slave.pcm "vystup" } pcm.vystup { type dmix ipc_key 1024 slave { pcm "hw:0,0" period_time 0 period_size 1024 buffer_size 4096 rate 44100 } }
Postupný popis jednotlivých částí nastavení:
pcm.!default
default
je název, který je v knihovně ALSA předdefinován
jako výchozí zařízení. My toho využíváme a pomocí znaku !
konfiguračnímu souboru říkáme, že naše definice default
má
přednost před tou, která je definována standardně. Pokud byste se
rozhodli využít jiný název, nebude potřeba vykřičník. Ale také nebude
možné očekávat, že bude zařízení bráno jako výchozí. Museli byste pak
jeho název vložit jako parametr programu:
aplay -D název soubor.wav
Ačkoliv je default
definováno implicitně jako výchozí
zařízení, ne všechny aplikace to vědí/respektují, takže někdy se asi
nevyhnete nutnosti zařízení v parametrech definovat, i když název ponecháte
default
. Z programů, které jsou "slušné" a berou
default
jako default ;-), jmenuji třeba MPlayer a Xine. U
XMMS lze používané zařízení nastavit v dialogovém okně konfigurace
výstupního pluginu ALSA.
type plug
slave.pcm "dmixer"
pcm.vystup {
type dmix
ipc_key 1024
ipc_key_add_uid yes
. K
IPC klíči pak bude připočtena hodnota aktuálního UID (což má však
význam jen na víceuživatelských systémech).slave { pcm "hw:0,0" period_time 0 period_size 1024 buffer_size 4096 rate 44100 }
pcm
, který, jak jistě poznáváte, určuje zařízení, jehož
se celá věc týká. Parametr rate
udává vzorkovací
frekvenci.
Ostatní parametry by teoreticky neměly být potřeba, ale některé karty se bez nich neobejdou (ICE1712 a VT82xx - využívající ovladač snd-via82xx). U nich je nutné nastavit velikost vyrovnávací paměti menší, než jakou karta má.
Pokud nemáte kartu zmiňovanou v posledním bodě, mohli byste si vystačit i s úplně jednoduchým nastavením:
pcm.!default { type plug slave.pcm "dmix" }
A hotovo. Takto stručný konfigurační soubor jste určitě nečekali :-).
Ještě však zbývá jedna záležitost. Máte-li aplikace, které umí využívat jen OSS, nikoliv ALSA (např. většina her), budete ten konfigurační soubor přeci jen muset trochu natáhnout (chcete-li využívat výhod mixování i s nimi). Přihoďte tyto řádky:
pcm.dsp0 { type plug slave.pcm "dmix" }
Pokud používáte delší verzi souboru, musí vypadat třetí řádek takto
slave.pcm "vystup"
aby odkazoval na naše vytvořené podřízené zařízení.
Nejjednodušší je volat programy, které posílají zvuk na OSS, pomocí
kratinkého skriptu aoss
. Najdete jej v balíku alsa-oss.
Příklad:
aoss mpg321 GhostBuster.mp3
Plugin dsnoop je vlastně opakem pluginu dmix. Zatímco dmix skládá více
proudů do jednoho, dsnoop vytváří z jednoho více. Používá se při
nahrávání, tedy vstupu. Konfigurace je téměř stejná, využijeme však navíc
jeden nový parametr: bindings
. Parametr bindings
určuje, kam budou posílány jednotlivé kanály. Můžeme jej sice využít i u
dmix, ale většinou k tomu není důvod.
pcm.vstup { type dsnoop ipc_key 2048 slave { pcm "hw:0,0" channels 2 period_size 1024 buffer_size 4096 rate 44100 periods 0 period_time 0 } bindings { 0 0 0 1 } }
Rozdělíme tím vstup na dva kanály (0
namapujeme jak na
0
, tak na 1
).
Pomocí pluginu asym můžeme zkombinovat to, co jsme zatím vytvořili. Měli bychom tak získat plně duplexní PCM. Zápis je opravdu jednoduchý:
pcm.kombinace { type asym playback.pcm "vystup" capture.pcm "vstup" }
Díky tomuto nastavení můžete zároveň přehrávat i nahrávat. Podle reakcí v různých diskuzích nejsem sám, kdo si myslí, že podobná konfigurace by měla být nastavena jako výchozí... Proč uživatele trápit s editací konfiguračního souboru, když je to stejně očekávané normální chování zvukové karty? To se ostatně týká i softwarového mixování... I když... Je pravda, že jsem sám zmínil zvukové servery, které mnoha lidem dobře slouží (a které tyto funkce standardně poskytují). Hmmm, servery bych zrušil.
...se snad konečně dostanu ke skutečně praktickým záležitostem. Přehrávání MIDI, řešení problémů, jako jsou špatná kvalita zvuku, zadrhávání, zamítnutý přístup k zařízením atd.
Nemohl jsem si nevšimnout požadavku, který se několikrát objevil v diskuzi u prvního dílu - totiž návod ke konfiguraci karet SB Live s 5.1. Bohužel takovou kartu nemám a nevím, kde bych ji honem sebral, takže nebudu moci poskytnout vlastnoručně ověřený postup. Ale jako domácí úkol jsem poctivě shromažďoval všechny možné poznatky od jiných uživatelů, takže snad budu schopen dát dohromady alespoň základní popis a především co nejvíce odkazů na další zdroje informací.
Tímto zároveň prosím uživatele těchto karet, kteří byli při jejich konfiguraci částečně nebo zcela úspěšní, aby mi poslali své poznatky a vůbec všechny informace, ze kterých by šel sestavit pokud možno co nejucelenější návod pro všechny ostatní. Kdyby se někdo dokonce odhodlal sepsat o tom celý článek, vůbec bych se nezlobil a mnoho čtenářů by mu určitě poděkovalo. Mohli bychom tak k našemu článku o nastavení se systémem OSS přidat ještě nový o ALSA.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
pcm.!dmix
{
type plug
slave{
pcm surround51
channels 6
}
}
pcm.!default
{
type plug
slave.pcm "dmix"
slave.channels 6
route_policy duplicate
}
pcm.dsp0 { type plug slave.pcm "vystup" }Já jsem myslel (a z popisu to snad i vyplynulo), že je to pro mixování programů co nemají plugin pro ALSu a využívají jen OSS, aby mohli také mixovat...
Nemel bych nahodou treti radek nahradit s >>> slave.pcm "kombinace"Přesně tak. Když jsem četl ten předchozí komentář, nevšiml jsem si té chybky. Ten konfigurák vznikl zkopírováním jednotlivých částí ukázek z článku za sebe - ale zapomnělo se na to, že ta první ukázka ještě nepočítá s použitím pluginu dsnoop.
"Drivers" = "wineoss.drv"na
"Drivers" = "winealsa.drv"a pridat:
[winealsa] "UseMMap" = "N" "pcm0" = "dmix" "ctl0" = "default"
ALSA lib pcm_dmix.c:819:(snd_pcm_dmix_open) unable to open slave aplay: main:544: audio open error: Zařízení nebo zdroj jsou používányAk skusim spustit aoss mpg123 menofilu, dostanem:
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3. Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp. Uses code from various people. See 'README' for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! - using device duplex - using device duplex ALSA lib pcm.c:2099:(snd_pcm_open_noupdate) Unknown PCM duplex - using device duplex - using device duplex ALSA lib pcm.c:2099:(snd_pcm_open_noupdate) Unknown PCM duplex ALSA lib pcm_dmix.c:819:(snd_pcm_dmix_open) unable to open slave audio: Invalid argumentPripajam konfiguracny subor:
cat ~/.asoundrc pcm.!default { type plug slave.pcm "kombinace" } pcm.vystup { type dmix ipc_key 1024 slave { pcm "hw:0,0" format S32_LE period_time 0 period_size 1024 buffer_size 8192 rate 44100 } } pcm.dsp0 { type plug slave.pcm "vystup" } pcm.vstup { type dsnoop ipc_key 2048 slave { pcm "hw:0,0" channels 2 period_size 1024 buffer_size 4096 rate 44100 periods 0 period_time 0 } bindings { 0 0 0 1 } } pcm.kombinace { type asym playback.pcm "vystup" capture.pcm "vstup" }Zvukova karta je:
0000:00:1f.5 Multimedia audio controller: Intel Corporation 82801CA/CAM AC'97 Audio Controller (rev 02)kernel je 2.6.8-686 distribucny (Debian)
Stale sa mi vsak nedari presvedcit skype, aby spolupracoval. Ak sa ho snazim spustit:
aoss skypetak sa sice zvuky mixuju, ale pocas hovoru nie je pocut nic, ani volajuceho ani volaneho.