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.
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?
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
Huk napisał(-a):
[...]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.[...]
(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
vjfpl napisał(-a):
(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.
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
ilin napisał(-a):
vjfpl napisał(-a):
(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.
Skąd o tym wiesz ?
Ja myślę ,że jest inaczej.
[...]
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 116,7 0t0 3780 /dev/snd/pcmC0D0p
rhythmbox 2886 kacper 28r CHR 116,6 0t0 4622 /dev/snd/pcmC0D1p
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
Huk napisał(-a):
@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:
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?
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.
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