Dustine, tenhle thread je to kvalitě zvuku na linuxu - proč je na stejném hw někdy horší než na Win. Bývá zvykem v diskusích trochu držet původní téma :-). Zdá se mi, že jsi trochu velký optimista a zatím argumentuješ jen velmi obecně.
To je vtipné - já argumentuji obecně a ani tentokrát jsem se na přímý dotaz nedozvěděl konkrétní model zvukovky. Tak kdo tu mluví obecně?
Která zvukovka zní hůř pod linuxem než ve windows? A jak to vůbec bylo určeno, co je hůře? Která zvukovka má ve windows více podporovaných HW featur než ve windows - vyjma PCIe Creative, Lynx a PCI Creative, Lynx a E-MU které nikdy neuvolnily žádné dokumentace. Pojďme se bavit konkrétně, na obecné hlášky o nepodpoře a horším zvuku nemám náladu.
Jestli máš "přesně opačnou zkušenost", poděl se, jakou kartu používáš a co všechno funguje (monitor při nahrávání, přístup hw mixeru, současný výstup na analog v 48kHZ a SPDIF ve 192kHz, duplex alespoň při 24bit/96 kHz atd..).
Která karta umí současně analog 48kHz a SPDIF ve 192kHz ve windows? Která karta ti dělá problém v duplexu více než 48kHz? Mluv konkrétně, ty si stěžuješ, ne já.
Moje zkušenost je taková, že k lepším kartám, když už fungují, citelně chybí control panely, které na Win zpřístupňují možnosti hw - právě monitor, hx mixer atd
Aha, takže se nebavíme o podpoře HW, ale o klikátkách pro jednotlivé karty, jako to máš ve windows. To ale s podporou HW nemá nic společného, protože všechny (a obvykle i více než ve windows) čudlíků máš vytažené do controls a standardizovanou cestou přístupné přes CLI i GUI nástroje na jejich ovládání. Jo, nejsou to omalovánky a u některých karet si musíš nastudovat, co který ovládací prvek dělá.
- čestnou výjimkou jsou na linuxu karty postavené na Envy24, které mají aspoň něco (http://alsa.opensrc.org/Envy24control nebo lépe http://code.google.com/p/mudita24/). Z mých oblíbených PCI/PCIe karet Esi funguje jen Juli@ a to tak, že prostě jen "hraje".
Přesně jak říkám, chybí ti ovládací GUI pro karty a nazýváš to nepodporou HW. Mimochodem ten driver pro Juli jsem psal, takže mě těší, že ti funguje. A druhé mimochodem, ani envy24control ani mudita24 nefunguje s ICE1724, ale jen pro ICE1712, tedy ani s tvou oblíbenou Juli. Tak nevím, jak moc to používáš...
K resamplingu - to je jasné, že se musí resamplovat, aby šlo míchat. Problém je, jak kvalitně. Dmix umí dvě kvality resamplingu: mizernou a méně mizernou. Pulse audio umí vybrat pouze mezi dvěmi frekvencemi: default-sample-rate (default je 44,1kHz) a alternate-sample-rate (default je 48kHz) to se dá sice nastavit v /etc/pulse/daemon.conf, ale pořád jsou to jen dvě :-(, takže když si nastavím alternate samplerate na 96kHz, tak se trvale resampluje všechen 48kHz zvuk z videa.
A jak jinak má míchat streamy, než je sjednotit na společnou fs? Jak bys chtěl přehrávat video na 48kHz a flacy na 192kHz přes jeden finální stream do zvukovky?
U PA nastavit i kvalitnější resampler resample-method = src-sinc-best-quality , ale ten proklatě "žere CPU".
Jistě. Kdybys o tom věděl víc, věděl bys, že src = libsamplerate a to je ve vyšších kvalitách nenažrané. Stejně jako dmix v alse.
A kdyby ses o to opravdu zajímal, věděl bys, že nedávno vznikla v rámci audacity implementace knihovny rate soxu libsoxr a k ní implementace binárně kompatibilní náhrady libsamplerate jménem libsoxr-lsr. Zkoušel jsem ji přes triviální LD_PRELOAD podstrčit alsa-lib (tedy dmix) a fungovalo
http://blog.ivitera.com/pavel/linux-audio/simple-use-of-libsoxr-lsr-in-alsa-using-ld_preload . Jestli chceš místo stěžování něco užitečného udělat, můžeš stejný princip otestovat i pro pulseaudio. Je mi úplně jasný, že to stejně neuděláš...
Otázka je proč to máme řešit, když karta má umět hwmix?
Která? Karet s HW mixem je zatraceně málo a těch, které umí mixovat streamy s různým fs je nevím kolik, žádnou takovou neznám.
Když použiji třeba hw:0,0 přímo v Alse musí odpovídat sampleformat zdroje přesně možnostem karty a přehraji jen jeden stream
Samozřejmě, chtěl jsi plnou podporu HW, nic jiného tvoje karta neumí. Když chceš jiné formáty, použij plugin plug - plughw:0,0. Když chceš více streamů, zmixuj si je softwarově - dmix, PA, jack, ...
i když PA použije přímo hw:0,0 stále provádí resampling, se všemi nevýhodami uvedenými výše.
A jak jinak by to mělo fungovat? Spíš to vidím tak, že jsi typický uživatel černé skřínky windows - o svém HW víš velké kulové a netušíš, co ti dělá windowsí ovladač a co umí vlastní HW. Přesně jak jsem o tom mluvil...