Byla vydána nová verze 25.10.31 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
O víkendu probíhá konference OpenAlt 2025 (Stream). Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma.
Josef Průša představil novou velkoformátovou uzavřenou CoreXY 3D tiskárnu Prusa CORE One L a nový open source standard chytrých cívek OpenPrintTag i s novou přepracovanou špulkou.
Na GOG.com běží Autumn Sale. Při té příležitosti je zdarma hororová počítačová hra STASIS (ProtonDB: Platinum).
Ubuntu 25.10 má nově balíčky sestavené také pro úroveň mikroarchitektury x86-64-v3 (amd64v3).
Byla vydána verze 1.91.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Ministerstvo průmyslu a obchodu vyhlásilo druhou veřejnou soutěž v programu TWIST, který podporuje výzkum, vývoj a využití umělé inteligence v podnikání. Firmy mohou získat až 30 milionů korun na jeden projekt zaměřený na nové produkty či inovaci podnikových procesů. Návrhy projektů lze podávat od 31. října do 17. prosince 2025. Celková alokace výzvy činí 800 milionů korun.
Google v srpnu oznámil, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Iniciativa Keep Android Open se to snaží zvrátit. Podepsat lze otevřený dopis adresovaný Googlu nebo petici na Change.org.
Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
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.!defaultdefault 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 plugslave.pcm "dmixer"pcm.vystup {
type dmixipc_key 1024ipc_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:
) že tedy lze docílit, abych měl např. puštěný mp3blaster celou dobu a když chci volat přes IP telefonii, tak jen zastavím skladbu a můžu mluvit, protože se aplikace (konečně!) neblokují.
Co ale nevím, jestli lze na takové jednoduché zvukovce dosáhnout s ALSA třeba toho, že mi bude jedna aplikace nahrávat z Line-In do souboru a druhá používat nezávisle IO také, např. ta IP telefonie. to asi nejde, co? Resp. docílil bych neblokování, ale měl bych nahranou i tu komunikaci v IP telefonii a člověk na druhé straně by v "telefonu" slyšel, co nahrávám na Line-In... Je to tak? Nebo jinak?
Dík.
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.
Doufam, ze se bavime o zvukovem serveru arts a .asoundrc nemas.
- V nastaveni zvukoveho systemu kdyz zvolis "otestovat zvuk" - nehraje?
- V nastaveni systemovych hlaseni, nemas nahodou nastaven externi prehravac?
- rikas, ze "dokonce to hraje soucasne" ... ktere aplikace to jsou a jak mas u nich nastaven "audio vystup" ?
"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.