Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam! Posiadam
Multimedia audio controller: Ensoniq 5880B [AudioPCI] (rev 02)
posiada ona
card 0: AudioPCI [Ensoniq AudioPCI], device 0: ES1371/1 [ES1371 DAC2/ADC] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: AudioPCI [Ensoniq AudioPCI], device 1: ES1371/2 [ES1371 DAC1] Subdevices: 0/1 Subdevice #0: subdevice #0
czyli 2 device. Tak się składa że niezależnie czy wyśle dźwięk do device 0 czy 1 i odtwarzane są na tym samym wyjściu.
[u]więc tu moje pytanie czy da się tak skonfigurować alse żeby w przypadku gdy device 1 jest zajęte kierowało dźwięk na device 0?[/u]
Do tego dochodzi pytanie co to dokładnie te subdevice?
@edit jak sprawdzić czy karta obsługuje hardware mixer?
Ostatnio edytowany przez vfjpl (2013-02-12 21:48:11)
Offline
Co rozumiesz pod pojęciem hardware mixer ?
Offline
hardware mixer czyli łączenie ścieżek w karcie dźwięĸowej zamiast w programie i wysyłanie potem do karty dziwięĸowej tylko jednej ścieżki dźwięku(software mixer).
Offline
Nadal nie łapię.
Czcesz łączyc cos w karcie i wysyłać do karty ?
Konkretny przyklad zastosowania podaj.
Offline
@vfjpl:
O ile karta ma hardware mixing to takie obejścia nie są potrzebne - zwykle karty tego typu mogą na raz grać od 4 do nawet 128 sygnałów jednocześnie - przy realnym wykorzystaniu od 1 do 4 bo powyżej tego raczej nikt nie słucha. Jeżeli karta podczas grania jednego sygnału jest zajęta to znaczy że nie ma HW mixera (jak 95% dzisiejszych kart) - zresztą w dzisiejszych czasach jest to wynalazek średnio przydatny.
Tego co chcesz osiągnąć raczej bez modyfikacji bibliotek ALSY się zrobić nie da - podkreślam słowo RACZEJ.
Pozdro.
Offline
[quote=Huk][...]Jeżeli karta podczas grania jednego sygnału jest zajęta to znaczy że nie ma HW mixera (jak 95% dzisiejszych kart) - zresztą w dzisiejszych czasach jest to wynalazek średnio przydatny.[...][/quote]
(1)z tym że alsa mi się domyślnie konfiguruje mi się na software mixer. Jak ją skonfigurować?
(2)"odtwarzam muzykę" idzie na device 1. podczas tego włączam film, device 1 jest zajęte więc dźwięk kieruje się na device 0. podczas odtwarzania filmu i muzyki odtwarzam coś w przeglądarce. device 1 i 0 zajęte więc nie gra przeglądarka. mam nadzeję że prosto wytłumaczone. ogólnie każdy dźwięk odtwarza się na innym device.
(3)co to są subdevice w karcie dźwięĸowej?
PS: dziękuję za zainteresowanie :D
Ostatnio edytowany przez vfjpl (2013-02-13 17:03:02)
Offline
[quote=vjfpl](2)"odtwarzam muzykę" idzie na device 1. podczas tego włączam film, device 1 jest zajęte więc dźwięk kieruje się na device 0.[/quote]
Skąd o tym wiesz ?
Ja myślę ,że jest inaczej.
adam@debian:~/Desktop$ lsof /dev/snd/* COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME volumeico 1344 adam 5u CHR 116,8 0t0 4022 /dev/snd/controlC0 deadbeef- 30170 adam mem CHR 116,5 2604 /dev/snd/pcmC0D0p deadbeef- 30170 adam 10r CHR 116,33 0t0 1951 /dev/snd/timer deadbeef- 30170 adam 11u CHR 116,5 0t0 2604 /dev/snd/pcmC0D0p deadbeef- 30170 adam 12u CHR 116,8 0t0 4022 /dev/snd/controlC0 vlc 30504 adam mem CHR 116,5 2604 /dev/snd/pcmC0D0p vlc 30504 adam 12r CHR 116,33 0t0 1951 /dev/snd/timer vlc 30504 adam 13u CHR 116,5 0t0 2604 /dev/snd/pcmC0D0p vlc 30504 adam 14u CHR 116,8 0t0 4022 /dev/snd/controlC0 adam@debian:~/Desktop$
Zarówno deadbeef jak i vlc korzystają z tego samego urządzenia.
Subdevice to urządzenie podrzędne ,których u Ciebie nie ma.
Offline
[quote=ilin][quote=vjfpl](2)"odtwarzam muzykę" idzie na device 1. podczas tego włączam film, device 1 jest zajęte więc dźwięk kieruje się na device 0.[/quote]
Skąd o tym wiesz ?
Ja myślę ,że jest inaczej.
[...][/quote]
sorki źle napisałem. chce żeby tak było ;D
Offline
To sie jeszcze zapytam skąd wiesz że te dwa urządzenia w tej karcie podają na to samo wyjście ?
Offline
pcm.!default { type hw card 0 device 1 subdevice 0 }
niezależnie czy wpiszę device 0 czy 1 idzie na to samo wyjście. I na dodatek powiem że jak muzyka leci z device 1 to flash sam się przełącza na device 0. niestety odwrotnie to nie działa :( to znaczy jak z flasha coś leci to muzyka nie przełączy się na device 0 :( i tu właśnie chcę coś zadziałać żeby gdy jeno device jest zajęte to przełączało się na drugie :D
edit: właśnie miałem wpisać w code :D
Ostatnio edytowany przez vfjpl (2013-02-13 19:35:41)
Offline
Nie wiem czy taki automat jekiego oczekujesz jest możliwy.
Natomiast
pcm.!default { type hw card 0 device 1 subdevice 0 }
Przy takim asoundrcu sprawdź za pomocą lsof z jakich urzadzeń korzystaja aplikacje podczas odtwarzania równocześnie.
Czy wszystkie nie lecą przez to samo urządzenie.
Offline
root@debian-kacper:/home/kacper# lsof /dev/snd/* COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mixer_app 1907 kacper 21r CHR 116,9 0t0 3782 /dev/snd/controlC0 firefox-b 2077 kacper mem CHR 116,7 3780 /dev/snd/pcmC0D0p firefox-b 2077 kacper 83u CHR 116,7 0t0 3780 /dev/snd/pcmC0D0p rhythmbox 2886 kacper mem CHR 116,6 4622 /dev/snd/pcmC0D1p rhythmbox 2886 kacper 28r CHR 116,6 0t0 4622 /dev/snd/pcmC0D1p ]
Jak mówiłem firefox sam się przełączył na device 0
Ostatnio edytowany przez vfjpl (2013-02-13 19:47:37)
Offline
Wszystko leci przez to samo urządzenie.
/dev/snd/pcmC0D0p
U mnie też :)
Offline
No tak przez kartę tą samą ale przez inne device(?)
/proc/asound/pcm
00-00: ES1371/1 : ES1371 DAC2/ADC : playback 1 : capture 1 00-01: ES1371/2 : ES1371 DAC1 : playback 1 01-03: HDMI 0 : HDMI 0 : playback 1
Ostatnio edytowany przez vfjpl (2013-02-13 19:49:39)
Offline
Rhytmbox też leci poprzez to samo device /dev/snd/pcmC0D0p
Offline
no przecież widzę wyraźnie :D
firefox-b 2077 kacper 83u CHR [b]116,7[/b] 0t0 3780 /dev/snd/pcmC0[b]D0[/b]p
rhythmbox 2886 kacper 28r CHR [b]116,6[/b] 0t0 4622 /dev/snd/pcmC0[b]D1[/b]p
Ostatnio edytowany przez vfjpl (2013-02-13 19:52:43)
Offline
Masz rację ja przeoczyłem.
To teraz sprawdx taką rzecz.
Puść dwa odtwarzacze na device 1.
Zobacz jak polecą czy na tym samym urządzeniu.
Offline
odpaliłem totem ;D dźwięk z niego nie jest odtwarzany a w lsof widać tylko Rhytmbox
Offline
Spróbuj mplayer lub vlc i rhytmenbox.
Chodzi o to by drugi odtwarzacz nie korzystał z gstreamera.
Offline
podczas grania rhytmenbox'a vlc wyświetla
Potential ALSA version problem: VLC failed to initialize your sound output device (if any). Please update alsa-lib to version 1.0.23-2-g8d80d5f or higher to try to fix this issue.
Offline
Wygląda to to tak że ta karta ma dwa urządzenia.
Przez każde może lecieć tylko jedno źródło sygnału.
Gdybyś w samym vlc ustawił na urzadzenie 0 to pewnie by zagrał.
Z alsą tu wiele nie zdziałasz.
Natomiast proponuję przetestować OSS4 tam powinno to znacznie lepiej działać.
Offline
@vfjpl:
Hmmm dziwna sprawa. O ile mnie pamięć nie myli to ES1371 to był chipset SoundBlastera 128 PCI, który jeszcze gdzies u mnie w szafie leży - ta karta nie ma sprzętowego miksera więc o tym zapomnij, dziwi mnie że standardowo nie masz skonfigurowanego dmix'a, spróbuj dać coś takiego do .asoundrc:
#Poniższe przekierowuje wyjście "default" do pluginu "asymed" pcm.!default { type plug slave.pcm "asymed" } #Plugin ten rozdziela odpowiednie zawołania do default, na kanał #grania i przełapywania pcm.asymed { type asym playback.pcm "dmixer" capture.pcm "dsnooped" } #Tutaj miksujemy sobie dźwięk - jeżeli dojdzie do "pierdzenia", #"syczenia" czy innych anomalii można zwiekszyć/zmniejszyć #period_size, periods itd pcm.dmixer { type dmix ipc_key 1025 slave { pcm "hw:0" period_time 0 period_size 256 #buffer_size 4096 periods 128 rate 44100 } } #Ten plugin suży do przełapywania dźwieku - podobnie jak w wypadku dmixera #jeżeli dojdzie do "pierdzenia","syczenia" czy innych anomalii #można zwiekszyć/zmniejszyć period_size, periods itd pcm.dsnooped { type dsnoop ipc_key 1026 slave { pcm "hw:0" channels 2 period_size 256 #buffer_size 4096 rate 44100 periods 0 period_time 0 } }
I potem przetestuj, pamiętaj żeby puszczać przez urządzenie "default" a nie "hw:0" czy coś podobnego.
Offline
[quote=Huk]@vfjpl:
Hmmm dziwna sprawa. O ile mnie pamięć nie myli to ES1371 to był chipset SoundBlastera 128 PCI, który jeszcze gdzies u mnie w szafie leży - ta karta nie ma sprzętowego miksera więc o tym zapomnij, dziwi mnie że standardowo nie masz skonfigurowanego dmix'a, spróbuj dać coś takiego do .asoundrc:[/quote]
domyślnie konfiguruje się. Ja właśnie chciałem zrobić taki oszukańczy hardware mixer z device 0 i 1
czym różni się oss od pulseaudio?
alsa komunikuje się bezpośrednio ze sprzętem?
chciałem wywalić to wszystko i zostawić itylko alse i doinstalować np JACK
aha oss i alsa to niskopoziomowe sterowniki a pulseaudio i jack to takie miksery które podają 1 ścieżkę do sterownika tak?
Ostatnio edytowany przez vfjpl (2013-02-13 20:48:54)
Offline
Spróbuj OSS4 i zdaj relację.
Tam jest to zupełnie inaczej rozwiązane.
czym różni się oss od pulseaudio?
alsa komunikuje się bezpośrednio ze sprzętem?[/quote]
Dokładnie OSS4 (nie mylić ze starym oss) to mniej wiecej odpowiednik alsy.
Sterowniki i biblioteki zupełnie inne niż w alsie.
Pulseaudio zas to softwarowa warstwa pomiędzy alsą czy oss4 a finalnym dźwiękiem.
[b]Problemy rozwiązujemy na forum nie na PW[/b] -> Niech inni na tym skorzystają.
[url=http://dug.net.pl/]Polski portal Debiana[/url]
Offline
@vfjpl:
Z tego co piszesz wynika że dmix nie chodzi - inaczej mógłbyś sobie puszczać na raz wszystko czego dusza zapragnie i nie doszło by do "device is busy". Pytanie czy Ty CHCESZ żeby ALSA tak dziwnie działała, czy też odtwarzanie wszystkiego na hw:0, z użyciem dmix'a Ci pasuje? Jak to drugie to spróbuj wpisu który podałem, jak to pierwsze to wytłumacz mi proszę po co Ci to i jak dokładnie by miało działać.
Jest jeszcze taka możliwość że karta sama przekierowuje do drugiego chipsetu i ja bym na to stawiał. Jako że dmix nie chodzi, próba ,odwołania się do hw:0 konczy się "device is busy", więc karta mądrze przekierowuje na drugi, wolny chipset, kiedy i tam jest wszystko zajęte to się zaczyna pierdzielić.
Rozumiem że na karcie masz normalną ilość wejść i wyjść (fizycznie, wejść słuchawkowych) a nie oddzielne dla hw:0, i hw:1? Jak tak to na 90% karta odpowiada za przełączanie urzadzeń.
Ostatnio edytowany przez Huk (2013-02-13 21:03:52)
Offline
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00006 | SET NAMES latin2 |
0.00182 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.143.237.140' WHERE u.id=1 |
0.00087 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.143.237.140', 1732789747) |
0.00051 | SELECT * FROM punbb_online WHERE logged<1732789447 |
0.00071 | SELECT topic_id FROM punbb_posts WHERE id=224403 |
0.00012 | SELECT id FROM punbb_posts WHERE topic_id=22945 ORDER BY posted |
0.00074 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=22945 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00184 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=22945 ORDER BY p.id LIMIT 0,25 |
0.00105 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=22945 |
Total query time: 0.00788 s |