csak egy program szol...

Fórumok

csak egy program szol...

Hozzászólások

Nekem csak az itt a gond hogy en tok kezdo vagyok, es nem ertettem ebbol sokat.
Ha valaki szeretne segiteni (aminek nagyon orulnek) akkor keressen meg msn-en: naster@100mbmail.hu
de ide meg fel fogok nezni.

Nekem is ez problémám és kifogytam az ötletekből. Debian Etch (testing) és egy nForce2-es alaplapi hangkártya. Fordítottam saját kernelt, ALSA-t használ és modulokban van mindegyik része.
Ezek a hanghoz kapcsolódó modulok vannak betöltve:
[code:1:eb8d843c7a]snd_intel8x0 28992 4
snd_ac97_codec 78584 1 snd_intel8x0
snd_pcm_oss 47520 0
snd_mixer_oss 17152 1 snd_pcm_oss
snd_pcm 82312 4 snd_intel8x0,snd_ac97_codec,snd_pcm_oss
snd_timer 21252 2 snd_pcm
snd 45668 12 snd_intel8x0,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
snd_page_alloc 7812 2 snd_intel8x0,snd_pcm
[/code:1:eb8d843c7a]
Úgy tűnik, hogy az OSS emuláció lefoglalja a hangkártyát és elérhetetlen lesz.
Ha egyszer egy OSS emulációs program zenét játszik le, akkor semmi más nem tud.
Ha eindítok két vagy több XMMS-t és a kimenetüket ALSA-ra állítom, akkor működnek.
Az OSS kimenetes nem indul el, ha fut akár egy ALSA-s is, illetve az ALSA-sok sem indulnak el, ha egy OSS-es fut.

Rootként sem működik a hang a leírt esetekben, a felhasználóm az audio csoport tagja és a /dev könyvtárban (udev-et használok) a következő fileok vannak:
[code:1:eb8d843c7a]# ls -l /dev/{audio,*dsp*,mixer,snd/}
crw-rw---- 1 root audio 14, 12 2005-08-11 19:02 /dev/adsp
crw-rw---- 1 root audio 14, 4 2005-08-11 19:02 /dev/audio
crw-rw---- 1 root audio 14, 3 2005-08-11 19:02 /dev/dsp
crw-rw---- 1 root audio 14, 0 2005-08-11 19:02 /dev/mixer

/dev/snd/:
összesen 0
crw-rw---- 1 root audio 116, 0 2005-08-11 19:02 controlC0
crw-rw---- 1 root audio 116, 24 2005-08-11 19:02 pcmC0D0c
crw-rw---- 1 root audio 116, 16 2005-08-11 19:02 pcmC0D0p
crw-rw---- 1 root audio 116, 25 2005-08-11 19:02 pcmC0D1c
crw-rw---- 1 root audio 116, 18 2005-08-11 19:02 pcmC0D2p
crw-rw---- 1 root audio 116, 33 2005-08-11 19:02 timer
[/code:1:eb8d843c7a]
Próbáltam a /dev/dsp-t symlinkelni a /dev/adsp ill. a /dev/audio fileokra, de az előbbivel egyáltalán nem működött a hang, az utóbbi meg ugyanazokat a tüneteket mutatta, mint a /dev/dsp.

Bármilyen kapcsolódó ötletnek/linknek örülnék!

Zümi

Ez nekem is így van, és szerintem nem megoldható. Szóval használj ALSA-t. Az OSS már csöppet elavult. Bár elvileg van többszálú OSS, valamiért az artsd nem szerette. Nem volt hangom...

Persze pl Quake3, Enemy-Territory is OSS-t használ - szóval OSS is szükséges...

Biztos, hogy ez a természetes? Azt tudom, hogy az ALSA szoftveres mixert használ, ha nincs más, de nem kéne ezt tudnia az OSS emuláció esetében is?

Mivel így egy OSS-t használó program kilövi az egész gép hangját. :/
Nem lehet játszani és mondjuk TeamSpeak-en beszélgetni. Tényleg ez a dolgok rendje?

Zümi

Szerintem sem normális, de megszoktam már - lehet, hogy van rá megoldás, csak az már elve érdekes, hogy pl suséban nincs megoldva ez a probléma. Na most ott általában minden működik (ezek szerint kivéve ami nem :))

[quote:a816104da9="Panther"]Ez nekem is így van, és szerintem nem megoldható. Szóval használj ALSA-t. Az OSS már csöppet elavult. Bár elvileg van többszálú OSS, valamiért az artsd nem szerette. Nem volt hangom...

Persze pl Quake3, Enemy-Territory is OSS-t használ - szóval OSS is szükséges...

Egy kicsit láma vagyok a témához, de lenne egy-két észrevételem:

1, Nekem a Skype és más egyéb program egyidejű hangmegszólaltatására volt szükségem anno, így beizzítottam az alaplapi hangkártáyt is, amire a Skype-ot uszítottam rá, a többi alkalmazásra a másikat használom. Ha ilyen jellegű okból kell a topikindítónak a több program egyidejű hangkártyahasználata, akkor lehet, hogy ez jó megoldás lehet.

2, Nekem nincs fenn OSS, csak alsa és arts.

Az ET-t memóriaemulációval indítom:
artsdp -m /path/et...

OFF:
Az ET az évvégi legjobb Linux-os program kategóriában a HUP szavazásán megszégyenítően kevés szavazatot kapott, és már megint az a szerencsétlen Tuxracer nyert. Egy kicsit rettenetes, hogy a szavazók nem néztek utána egyátalán a potenciálisan választható programoknak mielőtt voksolnak. Én pl. innen hallottam először az ET-ről akkor... Utánanéztem... Kapott egy szavazatot. Majdnem leesett az állam, mikor a Tuxracer győzött. Totálisan nem authentikus volt a szavazás. Az ET a világ egyik legjobb játéka. No, mindegy nem mérgelődöm tovább. Bocs.
ON:

[quote:ad72fd1e97="Panther"]
1, Nekem a Skype és más egyéb program egyidejű hangmegszólaltatására volt szükségem anno, így beizzítottam az alaplapi hangkártáyt is, amire a Skype-ot uszítottam rá, a többi alkalmazásra a másikat használom. Ha ilyen jellegű okból kell a topikindítónak a több program egyidejű hangkártyahasználata, akkor lehet, hogy ez jó megoldás lehet.

Udv.
Nem azért de kiváncsi lennék rá melyik verzioju Skype-t használod, ugyanis az
1.2.xx-nél nagyobb.. például amit most lehet letölteni, megfogja a "hangkártyát",
kizárolagosan használja.
Ezt a problémát már mások is feltették a Skype-nak.. ugy tudom még nincs rá
megoldás.

Szóval igazából szoftveresen van valami elirva, aza elb.szva.
Ez igaz a föntiekre is.. szerintem nem fog menni..
szerintem nem az ALSA OOS emulációjában van a hiba..
mert a régebbi Skype-kkal tökéletesen mükszik a dolog.

Udv.
Fri

artsdsp -m : ez nekem nem jött be, mivel kb 1mp-et késett a hang a látványhoz képest.

egyszere csak egy program tudja hasznalnia a hangkartyamat. azt szertenem megkerdezni hogy be lehet valahogy alitani vagy egyaltalan nem lehet tobb programmal zajt kelteni.
egy asus a8n delux (nvidia 4 chip) alaplapba beepitete hagkartya. az nvidia oldalarol szedtem le drivert neki. az nvmixer(a driverrel jott) azt irja hogy:
codek gyaro: realtek
codek tipus: alc850
codek kepessege: egyetlen ac'97 8 csatorna
koszi
zero

amikor a dmixet az alsa configjaban bealitottad megadtad hogy az oss-sel a /dev/dsp-hez fordulo dolgok is keruljenek at a dmix pluginra? itten irtam iesmirol, es a baratnomnel hasznalt asound.conf -ot is mellekeltem: http://www.motd.hu/?p=38

amikor a dmixet az alsa configjaban bealitottad megadtad hogy az oss-sel a /dev/dsp-hez fordulo dolgok is keruljenek at a dmix pluginra? itten irtam iesmirol, es a baratnomnel hasznalt asound.conf -ot is mellekeltem: http://www.motd.hu/?p=38

[quote:29c73de578="zero"]egyszere csak egy program tudja hasznalnia a hangkartyamat. azt szertenem megkerdezni hogy be lehet valahogy alitani vagy egyaltalan nem lehet tobb programmal zajt kelteni.

Hasznalj ALSA-t, az szoftveresen megoldja ha a kartyad nem tudja hardveresen...

Na, miután Panther úgy gondolta, hogy nincs megoldás, szétnéztem még egy kicsit, és ráakadtam az alsa-oss csomagra. Ez elhiteti a programmal, hogy oss-t használ, de valójába az alsa meghajtóra irányítja, ami alapvetően jól hangzik.

A gond az, hogy a TeamSpeak ill. a Skype is segfaultol, ha aoss-sel indítom őket, mivel valami olyan módon érik el a /dev/dsp-t, amit az aoss nem kezel. De az XMMS-t például sikerült így két OSS kimenettel megszólaltatnom. ... aminek nincs sok értelme, mert az XMMS-nek eleve van ALSA kimenete is, de legalább valamilyen elvi megoldást és megnyugvást nyújtott a dolog számomra. :)

Itt lehet szétnézni kártyaspecifikus ~/.asoundrc beállításfileokért:
http://gentoo-wiki.com/HOWTO_ALSA_sound_mixer_aka_dmix

Köszi az ötleteket, végülis Panther válasza inspirálta a megoldást. :)

Zümi

Az ET (vagy Q3) + TS témában:
Az a baj, hogy az Enemy Territory kizárólagosan lockolja az oss sound device-t. A teendők:

1. Megyőződni arról, hogy a különböző sound daemonok (artsd, esd stb.) nem futnak. Ha futnak, le kell állítani őket.

2. A hangkártyának rendelkeznie kell legalább 2 független digitális csatornával (1 kimeneti és 1 ki - és bemenetivel). Az alaplapi szutykok és a C-Media chipes olcsó kártyák NEM ilyenek, de pl. a SoundBlaster 128 vagy SoundBlaster Live! ilyenek.

3. Rá kell beszélni az ALSA-t, hogy ne foglalkozzon az enemy territory/q3 kizárólagos lockjával. Ehhez le kell futtatni a következő scriptet:
[code:1:9928f64ef9]
PROGS="quake3.x86 et.x86"
for i in /proc/asound/card*/pcm0c/oss; do
echo "erase" >> $i
for j in $PROGS; do
echo "$j 0 0 disable" >> $i
done
done

for i in /proc/asound/card*/pcm0p/oss; do
echo "erase" >> $i
for j in $PROGS; do
echo "$j 0 0 direct" >> $i
done
done
[/code:1:9928f64ef9]

Bármilyen más megoldásnak (artsd, esd, aoss stb.) az a hátránya, hogy egyrészt a processzort használja a mixeléshez, ezért erőforrást fog, másrészt a processzort használja a mixeléshez, ezért késik a hang.

Az SB Live! ha jól tudom 1600 szálat tud egyszerre "futtatni", és mind eredeti OSS, mind ALSA, mind ALSA OSS emulációval képes minden bütykölés és asoundrc nélkül a többszálú működésre, ET mellett is (nekem ilyen van)

Érdekes hogy a Creative kidobta az emu10k1 chipeket, a SB Live 7.1 ca0106-ja már csak egyszálas... Mert Winbe ugye fölösleges, ott alapból van sw mixelés, ha kell ha nem :P

Hm, nekem egyik megoldás sem müxik. asound + aoss esetén az et recseg, elnyomva az eredeti hangokat. A másik eleve nem megy: proc piszkálása, xmms-t is beraktam a listába - ha azt elindítom, mellette az et nem megy.
A hangkártyám:
Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03)

[quote:7673e8d904="Frimen"]
Nem azért de kiváncsi lennék rá melyik verzioju Skype-t használod, ugyanis az
1.2.xx-nél nagyobb.. például amit most lehet letölteni, megfogja a "hangkártyát",
kizárolagosan használja.
Ezt a problémát már mások is feltették a Skype-nak.. ugy tudom még nincs rá
megoldás.

1.2.0.11 De mindig is naprakész voltam. Azt mondom, hogy egy hangkártyát KIZÁRÓLAG a Skype-nak tartok fönn. (Inkább úgy fogalmazom, hogy az alaplapi használaton kívüli kártyát engedélyeztem, és a Skype-nak "adtam", így már nem okoz fennakadást a működése.)

[quote:25c91e3e95="Panther"]artsdsp -m : ez nekem nem jött be, mivel kb 1mp-et késett a hang a látványhoz képest.

Hm.. Nem hinném, hogy az én korábbi vasam bitangabb lenne, mint a tiéd, pedig azon is tökéletesen futott, nem volt csúszás. Pedig az egy 800 MHz-es gépecske volt, egy SB128-as gerjesztetette a zengezeteket...

[quote:61b722113a="johans"]
2. A hangkártyának rendelkeznie kell legalább 2 független digitális csatornával (1 kimeneti és 1 ki - és bemenetivel). Az alaplapi szutykok és a C-Media chipes olcsó kártyák NEM ilyenek, de pl. a SoundBlaster 128 vagy SoundBlaster Live! ilyenek.

Aha, szóval nekem azért nem csúszik a hang... ;)

[quote:ffc04e8a4e="pepo"][quote:ffc04e8a4e="Panther"]artsdsp -m : ez nekem nem jött be, mivel kb 1mp-et késett a hang a látványhoz képest.

Hm.. Nem hinném, hogy az én korábbi vasam bitangabb lenne, mint a tiéd, pedig azon is tökéletesen futott, nem volt csúszás. Pedig az egy 800 MHz-es gépecske volt, egy SB128-as gerjesztetette a zengezeteket...

Ha az xmms-t nem használom + nem fut az artsd, akkor artsdsp -m ./et.x86 esetén nem késik a hang. Amint elkezdek mp3-at hallgatni, egyből kell az artsd az artsdsp-nek, és késik a hang. Az biztos, hogy a processzorral nincs gond, mert 1800MHzen ketyeg, és így is késik a hang. Ha meg simán az et-et indítom, akkor meg 600MHz elég neki. Kezdem nem érteni.

[quote:026398d916="Panther"]
Ha az xmms-t nem használom + nem fut az artsd, akkor artsdsp -m ./et.x86 esetén nem késik a hang. Amint elkezdek mp3-at hallgatni, egyből kell az artsd az artsdsp-nek, és késik a hang. Az biztos, hogy a processzorral nincs gond, mert 1800MHzen ketyeg, és így is késik a hang. Ha meg simán az et-et indítom, akkor meg 600MHz elég neki. Kezdem nem érteni.

Ez a több-szál-egy-szál probléma. Egy szál esetén a késleltetés kicsi (van késleltetés, mert átmegy az artsd-n, de rögtön tud továbbmenni a hangkártya felé.) Több szál esetén az a probléma, hogy nem lehet "bitenként" mixelni, össze kell várni egy kisebb "csomagot" (néhány század másodpercet, de extrém beállításoknál ez akár 1-2 másodperc is lehet), és amikor ez összejött, akkor a mixer nekiáll és összekeveri őket (ez megint + idő és processzor load). Ha kész van, kiküldi a hangkártyára. Ebből a szempontból tehát lényegtelen, hogy milyen processzort raksz alá, egy közel konstans értékkel mindenképpen késni fog a hang ha egyszerre több program akar a csak egy I/O csatornát kezelő hangkártya felé kommunikálni.