Výběr zvukového výstupu/kanálu ze zvukové karty

Zde pokládejte dotazy či zkušenosti s "železem", ovladači a periferiemi
Odpovědět
Zpráva
Autor
NeffCz
Příspěvky: 5
Registrován: 13 čer 2017, 20:54

Výběr zvukového výstupu/kanálu ze zvukové karty

#1 Příspěvek od NeffCz » 07 zář 2017, 17:14

Ahoj,

Windows mne již dostatečně vytočil a tak jsem se rozhodl přejít k Linuxu na trvalo... Tudíž v Linuxu jsem začátečník.

Máme PC v obýváku, proto velmi často přepínám zvuk mezi sluchátky a reproduktory. Mám desku MSI Z97M Gaming. Na OS Win po připojení sluchátek do zvukového výstupu se mne SW od zvukové karty zeptal, co jsem připojil, zda sluchátka, nebo něco jiného. Případně se dala vyvolat nabídka a přepnout stero zvuk do patřičného jacku zapojeného do zvukovky.

Je možné toho dosáhnout i v Linuxu(jsem si jistý, že určitě je)? Mohl by mne někdo zkušenější nakopnout správným směrem? Vše co jsem zatím našel, tak se týkalo přepnutí zvuku z HDMI do jacku...

Předem děkuji za odpověď. NeffCz

Uživatelský avatar
redhawk
Velkovezír Mintu
Příspěvky: 1332
Registrován: 12 led 2016, 19:14
Bydliště: EU
Kontaktovat uživatele:

Re: Výběr zvukového výstupu/kanálu ze zvukové karty

#2 Příspěvek od redhawk » 07 zář 2017, 21:44

1. aky OS (verzia a desktop environment)
2. to sa meni v jednom vystupe?
3. detekuje sluchadla audio?
1. neviem = pýtam sa.
2. funguje to = nerýpem do toho
Zlaté pravidlo= všetko funguje = neupgradujte. Distribúciu ani kernel.

NeffCz
Příspěvky: 5
Registrován: 13 čer 2017, 20:54

Re: Výběr zvukového výstupu/kanálu ze zvukové karty

#3 Příspěvek od NeffCz » 08 zář 2017, 07:38

Pardon, tyto věci jsem úplně zapomněl uvést:

1.
Host: Kernel: 4.4.0-21-generic x86_64 (64 bit gcc: 5.3.1)
Desktop: Cinnamon 3.2.7 (Gtk 3.18.9-1ubuntu3.3) dm: mdm Distro: Linux Mint 18.1 Serena
Machine: Mobo: MSI model: Z97M GAMING (MS-7919) v: 1.0
2.
Vzadu na MB je 7.1 zvukovka. Ve winech jsem měl do dvou výstupů zapojené klasické stolní repro 2.0 a do druhého sluchátka. Pomocí aplikace od zvukovky jsem si dokázal zapnout zvuk do sluchátek a repro jsem normálně vypnul vypínačem.
3.
V Linuxu jsem to nenašel. Možná jsem jen špatně hledal.

Hrál jsem si s amixerem a zjistil, že když ztiším příslušné kanály, jsem schopen pouštět zvuk buď do sluchátek, nebo do repra. Takže si už jen napíšu nějaký scriptík a umístím na hlavní panel. Ale to budu řešit až po příchodu z práce.

lombardo1981
Poradce Mintu
Příspěvky: 370
Registrován: 25 lis 2014, 19:06

Re: Výběr zvukového výstupu/kanálu ze zvukové karty

#4 Příspěvek od lombardo1981 » 09 zář 2017, 12:05

Potrebuješ vykonať tieto dva príkazy. Prvým sa zakáže Auto-Mute Mode, ktorý spája výstup pre sluchátka a reproduktory. Druhým nastavenie uložíš, takže sa efekt prejaví aj pri nasledujúcom spustení systému.

Kód: Vybrat vše

/usr/bin/amixer -c 0 sset "Auto-Mute Mode" Disabled
sudo alsactl store
Potom už len stačí prepínať medzi výstupmi pomocou príkazov:

Kód: Vybrat vše

amixer set "Headphone" mute
amixer set "Speaker" unmute

Kód: Vybrat vše

amixer set "Headphone" unmute
amixer set "Speaker" mute
Plus existuje aj Sound Switcher Indicator, PPA.
Arch Linux (64-bit); Acer Aspire TC-705; i3wm; Intel Core i3-4160 CPU @ 3.6GHz; GeForce GTX 745; 8GB RAM DDR3
Arch Linux (64-bit); Acer Aspire V13 Aluminium; i3wm; Intel Core i5 5257U @ 2.7GHz; Intel Iris Graphics 6100 ; 8GB RAM DDR3L

NeffCz
Příspěvky: 5
Registrován: 13 čer 2017, 20:54

Re: Výběr zvukového výstupu/kanálu ze zvukové karty

#5 Příspěvek od NeffCz » 09 zář 2017, 20:44

Děkuji za rady, pozítří odjíždím na dovolenou, takže si s tím budu hrát posléze. Dám vědět, jak jsem to vyřešil, třeba se to bude někomu hodit.

NeffCz
Příspěvky: 5
Registrován: 13 čer 2017, 20:54

Re: Výběr zvukového výstupu/kanálu ze zvukové karty

#6 Příspěvek od NeffCz » 19 zář 2017, 21:23

Zdravím Vás,
takže máme po dovolené a já se tak trochu ponořil do mého problému... Postnu sem, co jsem vytvořil. Třeba to někomu dalšímu pomůže a Vy zkušenější, můžete mi prosím napsat svůj názor, zda jsem postupoval optimálně?

Na mé 7.1 zvukové kartě mám do dvou výstupů zapojené sluchátka a stereo reproduktory. PC máme v obýváku a já často potřebuji přepnout zvuk z repro do sluchátek. Proto jsem si vytvořil tento scriptík(je to můj první pokus v bashi), nakopíroval do /usr/local/bin a v nastavení klávesnice jsem si k němu přiřadil klávesovou zkratku.

Kód: Vybrat vše

#!/bin/bash
#

#####################################################################
# Front:    Repro
# Side:     Headphones
#####################################################################
# Is headphone on?
function headphone_on()
{
    mixer=$(amixer -c 1 get Side | grep 'Front Left:' | cut -d ' ' -f 7 | tr -dc '0-9')
    if [ $mixer -eq 100 ] 
    then
        echo true
    else
        echo false
    fi
}

# echo $(date -u)
# echo sluchatka:  $(amixer -c 1 get Side | grep 'Front Left:' | cut -d ' ' -f 7 | tr -dc '0-9')
# echo repro:  $(amixer -c 1 get Front | grep 'Front Left:' | cut -d ' ' -f 7 | tr -dc '0-9')
# echo h = $(headphone_on)

if [ $(headphone_on) = true ] ; then #headphone on?
# headphone off, speaker on
    #echo přepínám na repro
    printf "\n"
    amixer -c 1 set Front playback 100% unmute
    amixer -c 1 set Side playback 0% unmute
    
else
# headphone on, speaker off
    #echo přepínám na sluchátka
    printf "\n"
    amixer -c 1 set Front playback 0% unmute
    amixer -c 1 set Side playback 100% unmute    
fi

lombardo1981
Poradce Mintu
Příspěvky: 370
Registrován: 25 lis 2014, 19:06

Re: Výběr zvukového výstupu/kanálu ze zvukové karty

#7 Příspěvek od lombardo1981 » 20 zář 2017, 22:50

Len taká otázka. Načo si tam strčil toto?

Kód: Vybrat vše

printf "\n"
Plus ja by som pridala notify-send. Má dve formy zápisu:

Kód: Vybrat vše

notify-send 'Popis, čo sa stalo'
notify-send "Popis, čo sa stalo"
Arch Linux (64-bit); Acer Aspire TC-705; i3wm; Intel Core i3-4160 CPU @ 3.6GHz; GeForce GTX 745; 8GB RAM DDR3
Arch Linux (64-bit); Acer Aspire V13 Aluminium; i3wm; Intel Core i5 5257U @ 2.7GHz; Intel Iris Graphics 6100 ; 8GB RAM DDR3L

NeffCz
Příspěvky: 5
Registrován: 13 čer 2017, 20:54

Re: Výběr zvukového výstupu/kanálu ze zvukové karty

#8 Příspěvek od NeffCz » 24 zář 2017, 09:22

Kód: Vybrat vše

printf "\n"
Tento řádek byl pouze pro debug. Měl jsem ho hodit nahoru před ten "If".

Notify-send se mi líbí, ale nedá se zrušit to zapisování do historie? Prostě aby se pouze zobrazil popup, zmizel a hotovo? Díky Za odpověď.

lombardo1981
Poradce Mintu
Příspěvky: 370
Registrován: 25 lis 2014, 19:06

Re: Výběr zvukového výstupu/kanálu ze zvukové karty

#9 Příspěvek od lombardo1981 » 24 zář 2017, 11:06

Ten riadok tam ani nie je potrebný. Plus... je trochu zložitý. Predpokladám, že výstup tohto príkazu je špecifický a v oboch prípadoch je rozdielny:

Kód: Vybrat vše

mixer=$(amixer -c 1 get Side | grep 'Front Left:' | cut -d ' ' -f 7 | tr -dc '0-9')
Preto by sa to dalo napísať bez tej deklarácie true or false. Príklad:

Kód: Vybrat vše

if [ "$mixer" != "on" ]; then
if [ "$mixer" =~ "on" ]; then
if [[ $mixer != "on" ]]; then
if [[ $mixer =~ "on" ]]; then
Ale keď to funguje, tak je to jedno.

Zvolený čas na zobrazenie notifikácie (čas sa stanovuje v milisekundách):

Kód: Vybrat vše

notify-send -t 2000 'Popis, čo sa stalo'
notify-send -t 2000 -u normal 'Popis, čo sa stalo'
Umožňuje použitie aj HTML tagov:

Kód: Vybrat vše

notify-send -t 2000 Popis '<i>čo sa stalo</i>'
notify-send -t 2000 Popis '<b>čo sa stalo</b>'
notify-send -t 2000 Popis '<font size=16 color=blue><i>Hello World</i></font>'
Umožňuje vypísať obsah súboru ako oznámenie:

Kód: Vybrat vše

notify-send -t 2000 Obsah "`tail /home/lombardo/.config/dunst/dunstrc`"
notify-send -t 2000 Obsah_súboru "`tail /home/lombardo/.config/dunst/dunstrc`"
notify-send -t 2000 'Obsah súboru' "`tail ~/.config/dunst/dunstrc`"
Pomoc pre notify-send:

Kód: Vybrat vše

notify-send --help
Ja na zobrazovanie oznámení používam dunst (plne konfigurovateľný) a pri ňom sa dá klikom na bublinu oznámenie zatvoriť. Určite sa to dá aj pri tvojom.
Arch Linux (64-bit); Acer Aspire TC-705; i3wm; Intel Core i3-4160 CPU @ 3.6GHz; GeForce GTX 745; 8GB RAM DDR3
Arch Linux (64-bit); Acer Aspire V13 Aluminium; i3wm; Intel Core i5 5257U @ 2.7GHz; Intel Iris Graphics 6100 ; 8GB RAM DDR3L

Odpovědět