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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundację Dzieciom „Zdążyć z Pomocą”.
Więcej informacji na dug.net.pl/pomagamy/.

#1 2018-12-03 15:41:19

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

amixer "sset Master toggle" przełącza także Speaker/Headphone

Od paru tygodni, mute dźwięku w moim systemie nie działa jak należy. Na klawiaturze mam przyciski multimedialne i one są podpięte w volumeicon-alsa (volup/voldown/mute). Te przyciski działają dobrze, tj. ściszanie i zgłaśnianie dźwięku jest ok, podobnie mute wycisza dźwięki ale po ponownym przyciśnięciu klawisza mute, dźwięk nie powraca.

Do tej pory myślałem, że winnym całego problemu jest ten volumeicon-alsa i że nie potrafi on poprawnie odmutować dźwięku, przynajmniej patrząc po tym co się dzieje w podglądzie w alsamixer. W alsamixer mam w zasadzie 3 interesujące mnie w tej chwili kanały: Master i Speaker/Headphone (odpowiednio dla głośników i słuchawek po podpięciu). Po przyciśnięciu klawisza mute, oba kanały (Master/Speaker lub Master/Headphone) są wyciszane ale przy odmutowaniu, mute znika tylko z kanału Master.

W konfiguracji Openbox'a miałem wykomentowane te trzy przyciski, bo mogą być one podpięte jednocześnie tylko w jednej aplikacji. Postanowiłem zatem, że odhaczę te przyciski w volumeicon-alsa i włączę je w Openbox. Okazało się, że problem dalej istnieje.

Przycisk mute w Openbox miał przypisane poniższe polecenie:

amixer sset Master toggle

Czyli niby ma za zadanie przełączyć tylko i wyłącznie kanał Master. Podobnie pewnie ma volumeicon-alsa, tylko jak to się dzieje, że wydanie tego polecenia w terminalu przełącza także kanał Speaker/Headphone? Pół biedy gdyby to robił w obie strony. xD Co może powodować takie zachowanie?

---

Szukając info na necie, znalazłem to:

Kod:

amixer -D pulse set Master toggle

I ono już bez problemu przełącza oba kanały w obie strony. Ale chyba tego nie da rady wrzucić do volumeicon-alsa. xD

Widać, że to stary bug:
https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/878986

Ostatnio edytowany przez morfik (2018-12-03 16:07:01)

Offline

 

#2 2018-12-03 18:05:58

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Jeśli PA tworzy problemy nieznane w Alsie, to może zamiast Volumeicon odpal jakiś aplet do głośności zgodny z Pulse?


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#3 2018-12-03 19:05:39

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

No ale nie ma takiego chyba na Openbox. xD Jedyne co to ten volumeicon-alsa ale on chyba nie nadąża za rozwojem rzeczywistości i używa przestarzałych poleceń/narzędzi. Póki co to mam volup/voldown podpięte pod volumeicon-alsa by mieć notyfikacje przy ściszaniu i zgłaśnianiu, a mute mam w openbox zrobione. xD Póki co działa ale mogliby tego volumeicon-alsa fix'nąć. Chyba, że są jakieś bardziej modern narzędzia niż on, które potrafią współpracować z PA bez problemu?

Offline

 

#4 2018-12-03 20:23:26

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

To malutki program ten volumeicon, możesz zajrzeć do źródeł i cośtam fixnąć w razie czego.
On chyba ma troszkę krótszy kod nie Chromium. xD

Kompilacja takiego potwora jak volumeicon to nie jest jakaś tragedia.

Tu masz instrukcję kompilacji:
http://nullwise.com/volumeicon.html
A tu dużo miejsca na commity:
https://github.com/Maato/volumeicon

Jak obczaisz problem, to możesz wygenerować łatkę a nawet  dołączyć do Developerów projektu. xD

EDIT:
Nie trzeba nic kompilować ino skonfigurować Alsę poprawnie:
https://github.com/Maato/volumeicon/issues/57
:p

Pozdro

Ostatnio edytowany przez Jacekalex (2018-12-03 20:33:10)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#5 2018-12-03 22:19:32

wikingagressor
Użytkownik
Skąd: Józefów k.Błonia, mazowieckie
Zarejestrowany: 2015-02-03

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Sprawdzilem i u mnie na XFCE jest podobnie, tj. po zmutowaniu dzwieku z klawiatury nie daje sie go odmutowac i dopiero w pavucontrol moge to wlaczyc spowrotem.
Przetestuje sposob z ~/.asoundrc i dam znac czy cos to zmieni.


Edit: zmainy w ~/.asoundrc zadzialaly, teraz dzwiek sie mutuje i odmutowywuje z klawiatury bez problemow.

Ostatnio edytowany przez wikingagressor (2018-12-03 22:31:04)


Peace, Love and Debian for the World!!!

Offline

 

#6 2018-12-04 11:59:41

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

No technicznie to jest niby plik (a właściwie to link): /etc/alsa/conf.d/50-pulseaudio.conf i tam jest konfiguracja pulse ale bez:

Kod:

pcm.default pulse
ctl.default pulse

No i jak się je doda, to alsamixer widzi już tylko jeden kanał Master, a by zobaczyć więcej to trzeba w menu tam wybrać. Tak czy inaczej, to chyba nie ma innej opcji jak ustawienie urządzenia pulse jako domyślnego. xD

Ostatnio edytowany przez morfik (2018-12-04 12:07:21)

Offline

 

#7 2018-12-04 14:24:57

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Ustawianie kart w plikach konfiguracyjnych ma tą skromną wadę, że jest dosyć sztywne.

IMHO o wiele lepiej użyć zmiennych, np:


Kod:

pcm.!default {
    type plug
    slave.pcm {
        @func getenv
        vars [ ALSAPCM ]
        default "asymed"
    }
}

pcm.asymed 
{
    type asym
    playback.pcm "alsaout"
    capture.pcm  "alsain"
}



pcm.alsaout {
    type plug
    slave.pcm {
        @func getenv
        vars [ ALSAOUT ]
        default "nvidiadmix"
    }
}

pcm.alsain {
    type plug
    slave.pcm {
        @func getenv
        vars [ ALSAIN ]
        default "dsnooped"
    }
}

W ten sposób, jak potrzeba szybko przestawić jeden program czy powłokę na na inną kartę czy inny mikrofon, można to zrobić w 10 sekund bez majstrowania w konfigach czy martwienia się tym,że np Vlc i Smplayer też nie widzą wirtualnych kart Alsy,
a w MPV w ogóle nie ma gdzie wyklikać wyboru karty . ;)

Pozdro


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#8 2018-12-04 15:56:15

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

E w PA takie przełączanie się między kartami można zrobić via:

Kod:

$ which pa-list
pa-list () {
        pacmd list-sinks | awk '/index/ || /name:/'
}

$ which pa-set
pa-set () {
        inputs=($(pacmd list-sink-inputs | awk '/index/ {print $2}'))
        pacmd set-default-sink $1 &> /dev/null
        for i in ${inputs[*]}
        do
                pacmd move-sink-input $i $1 &> /dev/null
        done
}

Co wygląda mniej więcej tak:

Kod:

$ pa-list
  * index: 0
        name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
    index: 1
        name: <compressor>

$ pa-set 1

$ pa-list
    index: 0
        name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
  * index: 1
        name: <compressor>

To jest oczywiście dla wszystkich appek w systmie ale również można sobie zrobić aliasy na per-appa:

Kod:

$ which pa-playbacklist
pa-playbacklist () {
        echo "==============="
        echo "Running Apps"
        pacmd list-sink-inputs | awk '/index/ || /application.name /'
        echo "==============="
        echo "Sound Devices"
        pacmd list-sinks | awk '/index/ || /name:/'
}

$ which pa-playbackset
pa-playbackset () {
        pacmd set-default-sink "$2" &> /dev/null
        pacmd move-sink-input "$1" "$2" &> /dev/null
}

Ja mam tylko zwykły output i kompresor. Ale to bez problemu działa po HDMI, itp. xD

Offline

 

#9 2018-12-04 16:11:36

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Ja zamiast instalować PA wole wypierdolić Xorga i mieć wreszcie spokój z takimi SPOF.

Chociaż być może będę musiał wrzucić PA i puścić przez dmixa, bo np KDE już całe wymaga PA,
a Mate na Gtk3 to jest mała katastrofa (mniejsza niż Gnome3 co prawda).
W dodatku ani Mate ani Xfce jeszcze nie są gotowe na Waylanda, a utylizacja Xorga to dla mnie priorytet.

Pozdro

Ostatnio edytowany przez Jacekalex (2018-12-04 16:19:37)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#10 2018-12-04 16:19:38

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

PA to SPOF? Ja używam PA od samego początku jak na linux'a wlazłem i jakoś nie pamiętam, by mi coś nawaliło na dłużej niż parę minut, choć to z winy SID'a i bez problemu można było cofnąć do stanu sprzed awarii. A wszystkie te awarie były z winy nie aktualizowania na bieżąco innych pakietów, które operują dźwiękiem (tak jak ten volumeicon, który za parę dni będzie miał 4 lata od ostatniego update), także sam widzisz, to nie jest wina PA, które zawsze można wyłączyć, więc w czym problem? xD

Offline

 

#11 2018-12-04 16:23:41

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

morfik napisał(-a):

PA to SPOF? Ja używam PA od samego początku jak na linux'a wlazłem i jakoś nie pamiętam, by mi coś nawaliło na dłużej niż parę minut, choć to z winy SID'a i bez problemu można było cofnąć do stanu sprzed awarii. ...

Tu nie chodzi o to, czy coś działa czy nie, tylko o to, czy za dostęp do urządzeń odpowiada jeden program, który ma te urządzenia na wyłączność.

PA blokuje karty dźwiękowe w takim samym stopniu, co Xorg blokuje GPU.

Dlatego wolę Alsę i Waylanda, że oba działają w trybie nieblokującym (chociaż w Alsie to wymaga użycia dmixa).

PA u mnie działa, to taki sam argument jak Xorg u mnie działa.

Co nie zmienia faktu, że jeśli pojedynczy program chce cokolwiek monopolizować,
to u mnie dla niego miejsca nie ma,  od tej zasady ja na razie  tylko Eudev uzyskał amnestię. xD

Ostatnio edytowany przez Jacekalex (2018-12-04 16:27:48)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#12 2018-12-04 16:29:04

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Taka polityka linux'a przecie by jedno urządzenie było zajmowane tylko przez jeden proces  w danej chwili. Przecie jak na domyślnej konfiguracji bez PA byś próbował odpalić parę aplikacji odtwarzających dźwięk, to jedna ci zajmie dźwięk i na drugiej już go nie będziesz miał. To można oczywiście fix'nąć ale domyślnie może odpalać tylko jedna aplikacja.

Offline

 

#13 2018-12-04 17:14:58

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

morfik napisał(-a):

Taka polityka linux'a przecie by jedno urządzenie było zajmowane tylko przez jeden proces  w danej chwili. Przecie jak na domyślnej konfiguracji bez PA byś próbował odpalić parę aplikacji odtwarzających dźwięk, to jedna ci zajmie dźwięk i na drugiej już go nie będziesz miał. To można oczywiście fix'nąć ale domyślnie może odpalać tylko jedna aplikacja.

Właśnie po to powstała biblioteka dmix, żeby programy wiedziały, jak nie blokować urządzenia.
Jak coś jest zgodne z Alsą, to jest też zgodne z dmixem, innej drogi nie ma.

W przypadku Waylanda kompozytor ekranu też nie blokuje GPU, tylko określa współrzędne poszczególnych okien, a te sobie same gadają ze sterownikami.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#14 2018-12-04 17:48:19

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Cały „problem” sprowadza się do tego, że takie od wielu lat nie aktualizowane padliny jak volumeicon, czy jego odpowiednik w Xfce4, sterują bezpośrednio kanałami Alsy (czyli na poziomie niższym niż reszta systemu), zamiast przeprowadzać to na poziomie PA (z którego domyślnie korzystają współczesne narzędzia/środowiska graficzne). Operacje na poziomie Alsy powinny być zachowane jako opcja/fallback — tylko dla systemów bez uruchomionego Pulseaudio.

W systemie z PA zamiast amixer te operacje powinny być obsługiwane poprzez pactl:

Kod:

pactl set-sink-mute 0 1
pactl set-sink-mute 0 0

lub bezpośrednio:

Kod:

pactl set-sink-mute 0 toggle

I we współczesnych narzędziach nikt takiego problemu nie ma.

Offline

 

#15 2018-12-04 18:46:02

wikingagressor
Użytkownik
Skąd: Józefów k.Błonia, mazowieckie
Zarejestrowany: 2015-02-03

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Volumeicon potrafi obslugiwac pulseaudio. Wystarczy w jego configuracji zmienic alsa na pulse i jest git.


Peace, Love and Debian for the World!!!

Offline

 

#16 2018-12-04 20:51:45

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Ja w jego konfiguracji nie mam żadnego Pulse. xD

Offline

 

#17 2018-12-04 22:40:30

wikingagressor
Użytkownik
Skąd: Józefów k.Błonia, mazowieckie
Zarejestrowany: 2015-02-03

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Teoretycznie nie powinno to byc potrzebne. W poscie #4 z tego watku jest pokazana konfiguracja pliku ~/.asoundrc, ktora ustawia pulseaudio jako defaultowe wyjscie dla alsy. W preferencjach volumeicon wystarczy ustawic Device:default i powinno dzialac.


Peace, Love and Debian for the World!!!

Offline

 

#18 2018-12-04 23:16:39

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Genialne — graficzny konfigurator wymaga więcej ręcznej dłubaniny w plikach tekstowych niż samo ręczne ustawienia skrótu klawiaturowego :D

<keybind key="XF86AudioMute">
      <action name="Execute">
        <command>pactl set-sink-mute 0 toggle</command>
      </action>
</keybind>

PS Ręczna konfiguracja Alsy nie jest wymagana od czasów Debiana Jessie.

Offline

 

#19 2018-12-05 02:30:11

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Dobrze wiedzieć, że ten volumeicon ma plik konfiguracyjny -- myślałem, że chodzi o GUI. xD

Offline

 

#20 2018-12-05 19:50:58

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

A działa przy samej zmianie na card=pulse w ~/.config/volumeicon/volumeicon bez kombinowania z ~/.asoundrc?

Offline

 

#21 2018-12-05 20:11:24

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Tak, po prostu pojawia się dodatkowa pozycja, której wcześniej nie było -- pulse i ona ma do kontroli już tylko jeden kanał Master, czyli potrafi sterować jak należy, choć domyślnie nie wykrywa pulse. :]

Offline

 

#22 2018-12-05 20:14:34

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

Chodziło mi bardziej o obsługę mute toggle.

Offline

 

#23 2018-12-05 20:17:45

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: amixer "sset Master toggle" przełącza także Speaker/Headphone

No tak wszystko działa normalnie teraz.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)